Element clients hide from the user why a rageshake was rejected
The rageshake server can decide from which apps and under which conditions it should accept a rageshake. It also explains why in the response message.
For example: if a user tries to send their recovery key in their description of the rageshake it will say something like:
This server did not accept the rageshake because it matches a rejection condition: the description matches a recovery key and recovery keys are private. See https://github.com/matrix-org/rageshake/blob/master/docs/blocked_rageshake.md
Similarly, it could say the following for a forked application:
This server did not accept the rageshake because it matches a rejection condition: app or user text rejected. See https://github.com/matrix-org/rageshake/blob/master/docs/blocked_rageshake.md
Element-Web and Element X do not present this information to the user and instead show a generic message:
Failed to send logs: HTTP 400
This does not help the user understand why the bug report was rejected. They could (rightfully so if you ask me) believe that the rageshake feature simply does not work.
Noting that I spoke to @davidegirardi about trying to make the error response return a JSON object to line up with our other APIs, improving extensibility & potentially allowing for an errcode which would make this error easier to translate in the client.
Could we just give a better error message in the mean time? Something in the veil of:
The server rejected the submission. It could not accept reports from this application or the content of the report contains sensitive content.
It's not 100% accurate but it's more helpful than:
Failed to send logs: HTTP 400
I've decided to jump on this and fix this properly https://github.com/matrix-org/rageshake/pull/90. I will do the subsequent EWeb PR next.
- Rageshake server 1.15.0 now supports rejection reasons & is deployed to production.
- Element Web 1.11.96 (expected) will support showing a reason for rejection.