Skip to content

feature: Messages stuck in TEMP/ERROR status indefinitely without auto-retry after app restart/network recovery #6928

@deepak0x

Description

@deepak0x

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 ERROR state
  • 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:

Image

Steps to Reproduce

Scenario 1: Stuck TEMP Messages

  1. Open a chat room and send a message.
  2. Force close the app while the message is still in "Sending..." state.
  3. Re-open the app and navigate back to the room.

Result:

  • Message remains permanently in TEMP state.

Scenario 2: No Auto-Retry After Reconnection

  1. Enable Airplane Mode (offline).
  2. Send a message.
  3. Disable Airplane Mode (online).
  4. 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

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions