Skip to content

Messages silently lost when WebSocket disconnects (no UI indication or failure feedback) #582

@RickeyRen

Description

@RickeyRen

Describe the bug
When the WebSocket connection is disconnected, there is no clear indication in the UI. This causes messages to be silently lost. Specifically, the last message I type in the chat input box is often not sent successfully without me realizing it.

This typically happens when the network is unstable and the WebSocket connection drops.

To Reproduce
Steps to reproduce the behavior:
1. Open the web interface
2. Use an unstable network or wait for the WebSocket connection to drop
3. Type a message in the chat input box and send it
4. Notice that the UI shows no response for a long time
5. Refresh the page
6. Observe that the last message does not appear in the conversation history

Expected behavior
There should be a clear visual indicator when the WebSocket connection is disconnected.

Additionally, when a message fails to send, the UI should explicitly notify the user that the message was not delivered (e.g., a failed state, retry option, or error message).

Messages should either:
• fail with an explicit error notification, or
• be queued and retried automatically after reconnection

This would prevent users from unknowingly losing messages.

Screenshots
N/A

Error message
No error message is shown when the issue occurs.

Desktop (please complete the following information):
• OS: macOS
• Browser: All browsers tested
• Version: Latest

Smartphone (please complete the following information):
• Device: Various devices
• OS: Various
• Browser: All browsers tested

Additional context
This issue occurs consistently across all tested devices and browsers, indicating it is likely not platform-specific but rather a general issue with WebSocket connection handling under unstable network conditions.

In practice, this leads to a frustrating user experience. I often type a long message, and after refreshing the page, the entire message is gone because it was never actually sent. Since there is no draft-saving or failure indication, the input is completely lost.

Because of this, I have developed a habit of manually copying my message to the clipboard before sending it, just to avoid losing it. This is not an ideal workflow and highlights the severity of the issue.

Additionally, this problem occurs much more frequently when accessing the service via Tailscale or reverse proxy setups, while it rarely happens when connecting directly via a local network IP. This suggests the issue may be related to connection stability or proxy/WebSocket handling.

From a UX perspective, the lack of feedback when a message fails to send is particularly problematic, as users may assume the message was delivered successfully when it was not. A connection status indicator, draft preservation, and message delivery/failure feedback mechanism would greatly improve reliability and user experience.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No fields configured for Bug.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions