If you call /sendToDevice to a remote user, and that user's HS is temporarily down (not offline long enough to be blacklisted), it will not be sent. It will be stored in the device outbox federation table. If you then restart Synapse, it does not try to empty that table at startup. I waited 30s for it to do something.
This happens on sqlite, postgres and worker mode.
If the user sends another to-device event, the outbox is then cleared.
Description
If you call
/sendToDevice
to a remote user, and that user's HS is temporarily down (not offline long enough to be blacklisted), it will not be sent. It will be stored in the device outbox federation table. If you then restart Synapse, it does not try to empty that table at startup. I waited 30s for it to do something.This happens on sqlite, postgres and worker mode.
If the user sends another to-device event, the outbox is then cleared.
Steps to reproduce
Run this complement test and remove the "kick" event which happens after 10s in a goroutine: https://github.com/matrix-org/complement/pull/694
Logs for HS1 (the one which gets restarted) running Postgres (no worker mode) attached. postgres-hs1.log
Homeserver
Local
Synapse Version
v1.95
Installation Method
Docker (matrixdotorg/synapse)
Database
PostgreSQL
Workers
Single process
Platform
complement
Configuration
No response
Relevant log output
Anything else that would be useful to know?
No response