This repository has been archived by the owner on Apr 26, 2024. It is now read-only.
Overly strict validation of /sync filters #14365
Labels
A-Push
Issues related to push/notifications
A-Sync
defects related to /sync
A-Threads
Threaded messages
O-Frequent
Affects or can be seen by most users regularly or impacts most users' first experience
S-Major
Major functionality / product severely impaired, no satisfactory workaround.
T-Defect
Bugs, crashes, hangs, security vulnerabilities, or other reported issues.
This caused a nasty Element Android bug where initial syncs could not complete: element-hq/element-android#7516
For forward compatibility reasons, it's important for homeservers to ignore unrecognized fields in requests. Synapse does not do this for /sync filters, and returns an error to clients when there are unrecognized fields present.
Note that on the client side, clients are generally supposed to determine whether new fields are supported, based on the supported spec versions and unstable features in the
/_matrix/client/versions
response.(thanks to richvdh and babolivier for clarifying how forward compatibility is supposed to work)
We'll want to set
"additionalProperties": True
in all of our filter schemas.synapse/synapse/api/filtering.py
Lines 73 to 95 in a4ecb8e
The text was updated successfully, but these errors were encountered: