Skip to content
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

Bridging read receipts fails with Conduit as the homeserver #27

Open
viiru- opened this issue Dec 12, 2024 · 4 comments
Open

Bridging read receipts fails with Conduit as the homeserver #27

viiru- opened this issue Dec 12, 2024 · 4 comments
Labels
bug Something isn't working

Comments

@viiru-
Copy link

viiru- commented Dec 12, 2024

When using Conduit as the homeserver the bridge fails when trying to sync read receipts. On the bridge (version 0.5.2) side the log looks like this:

Failed to bridge read receipt error="failed to POST /_matrix/client/v3/rooms/<room id redacted>/read_markers: M_BAD_JSON (HTTP 400): M_BAD_JSON: Failed to deserialize request." action="handle remote event" bridge_evt_type=RemoteEventReadReceipt event_loop_index=2

And on the homeserver side (Conduit version 0.9.0) it looks like this:

WARN conduit::api::ruma_wrapper::axum: try_from_http_request failed: Deserialization(Json(Error("server name is not a valid IP address or domain name", line: 1, column: 102)))
@viiru- viiru- added the bug Something isn't working label Dec 12, 2024
@tulir
Copy link
Member

tulir commented Dec 12, 2024

All the relevant info is in the request log line which includes the request content, but I'd guess it's either a conduit bug or someone holding the bridge wrong

@viiru-
Copy link
Author

viiru- commented Dec 13, 2024

A log line which includes request content wasn't logged. Perhaps that depends on some setting somewhere.

The last several cases of "this works on Synapse but not Conduit" that I have seen have been caused by Conduit being a lot more strict about exact adherence to the spec (not sending fields that Synapse always sends but are marked as optional in the spec, not accepting things that are just slightly out of spec that Synapse accepts and so on). Are you sure this isn't one of those?

@tulir
Copy link
Member

tulir commented Dec 13, 2024

The log is on the debug level, debug logs are basically always required when looking at logs

@viiru-
Copy link
Author

viiru- commented Dec 13, 2024

req_body={"com.beeper.read.extra":{"ts":1734090916841},"m.read":"$fake::oBYGilVUDg4UskeKOIY4AfDbf7BeP6buHutU1"}

Based on the error message on the Conduit side I'd guess the problem might be with parsing the m.read field which doesn't to my eye match the examples in the spec (https://spec.matrix.org/v1.3/client-server-api/#post_matrixclientv3roomsroomidread_markers).

Of course the spec doesn't mention the other field (com.beeper.read.extra) at all, Conduit could be so strict as not to allow it (but I'd find that surprising)..

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Development

No branches or pull requests

2 participants