The AbuseFilter lets users specify arbitrary strings which are then emitted as error codes over the API.
Example:
- Filter: https://test.wikipedia.org/wiki/Special:AbuseFilter/152
- Serves a "totallyrandommessage" error code
This is a headache for app developers and API consumers (like the mobile apps, and VisualEditor), as a random user can effectively make breaking API changes at a whim. It makes it hard to develop an app when there is no contract as to what kind of information the API can return.
The AbuseFilter shouldn't do this.