Skip to content

Remove "send-in-progress" outbox placeholder when the message appears in a fetch #2397

Description

@chrisbobbe

A user reports:

#mobile > Mobile client on iOS - poor performance @ 💬

On a weak connection the mobile app (Flutter, iOS) leaves a sent message showing a "sending" state for a long time — sometimes appearing as a second, un-acknowledged copy under the delivered one — so it reads as stuck or duplicated.

This can happen when the event stream has gotten "stuck" or delayed (see e.g. #1884, #514 for ways this can happen) but send-message request and message fetches are succeeding. In particular, if events aren't coming in, you can send a message → the request succeeds but no event yet → you leave and re-enter the message list, triggering a fetch → the sent message arrives in the fetch, but the outbox-placeholder copy is still present.

I think this should be straightforward to fix: the send-message success response contains the message ID, which we can record on the OutboxMessage object. Then we can drop the outbox message in reconcileMessages.

Metadata

Metadata

Assignees

Labels

a-msglistThe message-list screen, except what's label:a-content

Type

No type

Projects

Status
In Progress

Relationships

None yet

Development

No branches or pull requests

Issue actions