Bridging read receipts fails with Conduit as the homeserver
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)))
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
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?
The log is on the debug level, debug logs are basically always required when looking at logs
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)..