Logs show that a batch of (150) to-device messages received over federation was stored by the encryption worker, but never sent out to users by the synchrotrons. Obviously this led to unable-to-decrypt errors.
It looks like the batch was correctly INSERTed into Postgres, but the replication logic failed to find it, and instead of sending out an RDATA with the necessary data, we instead sent an empty POSITION command. The synchrotrons therefore did not attempt to read the messages from the database, and ended up just deleting them when the user made the next sync request.
Logs show that a batch of (150) to-device messages received over federation was stored by the
encryptionworker, but never sent out to users by the synchrotrons. Obviously this led to unable-to-decrypt errors.It looks like the batch was correctly INSERTed into Postgres, but the replication logic failed to find it, and instead of sending out an
RDATAwith the necessary data, we instead sent an emptyPOSITIONcommand. The synchrotrons therefore did not attempt to read the messages from the database, and ended up just deleting them when the user made the next sync request.