Skip to content

[Bug]: A failed send stays in the thread as a sent message when I have typed my next message #35001

Closed

Description

@only21mil

Before submitting

  • I searched existing issues and did not find a duplicate.
  • I included enough detail to reproduce or investigate the problem.

Area

apps/web

Steps to reproduce

On Linux, web client, dev build with the Replay provider. Two ways the send fails; in both I type my next message while the first one is still sending.

A new thread's first message, when the connection drops:

  1. Open a new thread and type a message.
  2. Pause the server process (kill -STOP <pid>), press Enter, then type a second message.
  3. Wait until the composer shows "reconnecting" (about 15 s).

A send the server rejects:

  1. In a thread, attach an image and type a message.
  2. Make the upload unavailable before the send reaches the server (I paused the server process, removed the uploaded image file from the server's attachments folder, and resumed it), and press Enter.
  3. Type a second message while the first is sending. The server answers Attachment 'sample.png' cannot be sent: attachment not found (removed or expired).

Expected behavior

The failed message leaves the timeline, my second message stays in the composer, and I can still get the failed text back.

Actual behavior

The failed message stays in the timeline as if it had been sent. It never gets a reply, and it only goes away when I leave the thread or reload. After a reload, the rejected message's text is gone: it was not sent and is not in the composer. For the new thread, no notice says the send did not go through. With nothing typed in the composer, the failed text does come back into the composer and the message leaves the timeline.

Impact

Minor bug or occasional failure

Version or commit

main 6ba3de70af

Environment

Linux, web client, dev build from source, Replay provider. The desktop app built from the same commit shows the same on macOS and Linux.

Logs or stack traces

The server's own trace for the two sends (time, RPC, command id, result):

07:15:36.687 dispatchCommand 984da3b5 Failure OrchestrationV2DispatchCommandError: Attachment 'sample.png' cannot be sent: attachment not found (removed or expired).
07:17:02.643 launchThread 5479fd70 Interrupted

Screenshots, recordings, or supporting files

A send the server rejects: the rejected message with its image stays under the error banner while my next message is in the composer.

A send the server rejects: the rejected message with its image stays under the error banner while my next message is in the composer.

A new thread's first message after the connection dropped: the message still shows, with no notice, while the client reconnects.

A new thread's first message after the connection dropped: the message still shows, with no notice, while the client reconnects.

Workaround

Leave the thread and come back, then retype the message.

A fix is in #32732.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

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