-
Notifications
You must be signed in to change notification settings - Fork 51
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Meta: Specification lies/omissions/ambiguity #182
Comments
Federation should always be referring to the state before/after an event, not "at" an eventSpecifically for the PDU checks on https://matrix.org/docs/spec/server_server/latest#checks-performed-on-receipt-of-a-pdu
|
Backfill clarity
|
Terminology of dropped vs rejectedPDU checks mention this https://matrix.org/docs/spec/server_server/latest#checks-performed-on-receipt-of-a-pdu but do not clarify what they mean. @richvdh says:
When asked why it is stored in the database, @erikjohnston replied:
|
Clarify
|
Clarify behaviour of "soft failed"The spec says two contradictory statements:
and
@erikjohnston clarified with:
What remains unclear is that does this means all non-state events marked as soft-failed are NEVER sent to the client (as only state events which pass state res can be sent to the client)? |
Clarify why
|
Clarify how events should be fetched in
|
Clarify which events can be returned in
|
Clarify which limits receiving servers can modifyBoth backfill and get_missing_events accept a It's worth noting that at least 1 sytest REQUIRES that a blunt |
DMs are really light on details in the specThe CS API spec defines |
Room alias grammarSpecifically, there is none. However, Synapse seems to disallow whitespace cf https://github.com/matrix-org/synapse/blob/6b22921b195c24762cd7c02a8b8fad75791fce70/synapse/handlers/directory.py#L68 - we need to write up a grammar, even if it's just "EVERYTHING IS ALLOWED :DDDD" |
Clarify when to return errors on federation /sendSpecifically we SHOULD NOT do this for 'rejected' events aka ones which:
Synapse will return an error for a PDU for:
|
E2E keys: spec should never state 'object' without any extra info
What is def _exception_to_failure(e):
if isinstance(e, SynapseError):
return {"status": e.code, "errcode": e.errcode, "message": str(e)}
if isinstance(e, CodeMessageException):
return {"status": e.code, "message": str(e)}
if isinstance(e, NotRetryingDestination):
return {"status": 503, "message": "Not ready for retry"}
# include ConnectionRefused and other errors
#
# Note that some Exceptions (notably twisted's ResponseFailed etc) don't
# give a string for e.message, which json then fails to serialize.
return {"status": 503, "message": str(e)} This clearly has structure and hence should be in the specification. |
Federated device list updates stream IDsShould be made clear that this is NOT a monotonically increasing integer (though really it should be!). https://matrix.org/docs/spec/server_server/latest#device-management |
This is not true. https://matrix.org/docs/spec/server_server/latest#get-matrix-federation-v1-user-devices-userid returns a stream ID, not https://matrix.org/docs/spec/server_server/latest#post-matrix-federation-v1-user-keys-query which is annoying as it doesn't allow batching of requests for multiple users unlike /keys/query :/ |
Handling invalid state events in /send_join responseThe spec doesn't say what to do when the |
Federation: E2E key APIs are fiddly and not optimalThere are two ways you can fetch a snapshot of a remote user's device keys:
Ideally there would just be 1 endpoint which allowed for batching AND returned a
The actual cost to me personally is that I've wasted a day trying to make sytests pass and I'm at the point where I'm failing to get this all to work because some tests expect certain outbound calls. Proposal:
|
Cross-SigningRedundant base 64 key data - see matrix-org/dendrite#1953 (comment) |
This issue tracks all issues we've found in the spec where the spec is:
If people are feeling particularly inclined, please PR on https://github.com/matrix-org/matrix-doc/pulls these issues and xref them here so we know it's done. Thanks!
The text was updated successfully, but these errors were encountered: