When a Chat delivery fails, the message stays pending. Nothing retries it. Only a new message or a page reconnect starts the next delivery.
One way to get there: Bridge.start() (backend/druks/chat/bridge.py) waits 10 seconds for the bridge to answer a ping, then raises TimeoutError:
File "/app/backend/druks/chat/service.py", in get_sandbox
await Bridge(host).start()
File "/app/backend/druks/chat/bridge.py", in start
async with asyncio.timeout(10):
TimeoutError
The user sees the chat stuck, and the error tells them to connect again. But if the page cannot connect, or the message came from Slack, nothing retries.
Expected
A failed delivery retries on its own, with a backoff, or the message moves to a failed state that the user can see and retry.
When a Chat delivery fails, the message stays pending. Nothing retries it. Only a new message or a page reconnect starts the next delivery.
One way to get there:
Bridge.start()(backend/druks/chat/bridge.py) waits 10 seconds for the bridge to answer a ping, then raisesTimeoutError:The user sees the chat stuck, and the error tells them to connect again. But if the page cannot connect, or the message came from Slack, nothing retries.
Expected
A failed delivery retries on its own, with a backoff, or the message moves to a failed state that the user can see and retry.