What it says on the tin. Most notably, the empty data introduction (T214674) brought the following breaking changes for existing abuse filters:
# Only variables for the current action are available. Which means, during an edit you cannot use e.g. `moved_from_namespace` or `accountname`, during an account creation you cannot check `added_lines`, and so on. I recommend to use the `action` variable for safety, and I'll probably introduce a function to check whether a variable is set.==Summary for people coming here from Tech News==
Recently, there have been some changes to the AbuseFilter parser (T214674). This changed the way variables are handled. The most important changes are:
# V# Only variables defined inside a branch may not bfor the current action are available outside of the branche. For instanceWhich means, if you have: `user_age > 0 & (my_var := 'foo');during an edit you cannot use e.g. added_lines contains my_var``moved_from_namespace` or `accountname`, the variable `my_var` is used outside of the branch (= pair of parentheses) where it's declared.during an account creation you cannot check `added_lines`, Trying to doand so could fail in certain caseson. [More precisely:I recommend to check the assignment will be skipped in short-circuit evaluation,`action` variable when using action-specific variables; which in this case happens when user_agin the future, we'll introduce a new function to check whether a variable is <= 0.]set.
# Maybe something else?Custom variables defined inside a branch may not be available outside of the branch. For instance, if you have: `page_namespace == 0 & (my_var := 'foo'); added_lines contains my_var`, the variable `my_var` is used outside of the branch (= pair of parentheses) where it's declared. Trying to do so could produce unexpected results in certain cases. [More precisely: the assignment will be skipped in short-circuit evaluation, which in this case happens when `page_namespace` is non-zero.]
This can and willould affect existing abuse filters, making them not match some actions. This bug is quite easy to spot: if you see an edit that an existing AF should have matched, head to Special:AbuseFIf you see that a filter/test and check the edit against the filter. has not been matching anything for a long time, If it says that the edit would have matchedwhile it used to match constantly, chances are you've just found this bug.
In order to fix the issue,please check that it's not affected by this bug. you'll generally only need to edit the filter according to point 1.In the vast majority of the cases, above.
Unfortunately,checking point 1. a list of affected filters is NOT availableabove is enough.
We need to put a summary of the above in tech newsIn the future, we may be able to provide a list of affected filters. If you're interested in such a list, please {nav icon=plus-circle,name=Subscribe} to this task.