-
Notifications
You must be signed in to change notification settings - Fork 1.4k
Open
Description
The application lacks a robust offline and sync queue mechanism, leading to critical reliability issues when the app process ends (crash or force kill) or when network connectivity fluctuates.
Messages that are valid but in-flight or failed are not properly reconciled on app restart or reconnection, resulting in permanently stuck or failed messages.
Environment Information
Rocket.Chat Server Version: All
Rocket.Chat App Version: 4.69.0 and earlier
Device: All
Operating System: All
Observed Issues
Issue 1: Stuck TEMP Messages
If the app crashes or is killed while a message is in TEMP (sending) state, the message remains stuck indefinitely after app restart.
- Message stays in "Sending..." state
- No transition to Sent or Error
- No reconciliation with server state
Issue 2: No Auto-Retry for ERROR Messages
If a message fails due to lack of connectivity:
- The message enters
ERRORstate - When connectivity is restored, no automatic retry occurs
- User must manually tap the retry button
Screenshot
The following screenshot demonstrates messages stuck in TEMP / ERROR state without automatic recovery:
Steps to Reproduce
Scenario 1: Stuck TEMP Messages
- Open a chat room and send a message.
- Force close the app while the message is still in "Sending..." state.
- Re-open the app and navigate back to the room.
Result:
- Message remains permanently in TEMP state.
Scenario 2: No Auto-Retry After Reconnection
- Enable Airplane Mode (offline).
- Send a message.
- Disable Airplane Mode (online).
- Wait for the app to reconnect.
Result:
- Message remains in ERROR state indefinitely.
Expected Behavior
Scenario 1
On app restart:
- Detect TEMP messages older than a defined threshold
- Verify their existence on the server
- Automatically resend, mark as sent, or move to ERROR state
Scenario 2
On network reconnection:
- Automatically identify failed (ERROR) messages
- Retry sending them without requiring user interaction
Actual Behavior
- TEMP messages remain stuck forever after app restart
- ERROR messages are never retried automatically
- Users receive no feedback that messages are permanently stuck
Metadata
Metadata
Assignees
Labels
No labels