Describe the bug
On Buzz Mobile for iOS, a reply that arrives while its thread is already open is stored by the relay but does not appear in the thread UI. Agent Activity updates, confirming the phone is receiving other live events, but the signed channel reply remains invisible.
Sending any reply from the phone immediately makes the accumulated remote replies appear. This makes an agent look as though it has not answered until the user sends another message.
This was reproduced in both an existing long thread and a new, short diagnostic thread.
Steps to reproduce
- On an iPhone, open a channel thread and leave it open.
- From another client or an agent, publish a reply to that thread.
- Observe that agent Activity updates, but the new channel reply does not appear in the open thread.
- Wait at least 30 seconds. The reply still does not appear.
- Send any reply from the iPhone in that thread.
- Observe that the missing remote reply appears immediately alongside the local send.
Expected behavior
A remote reply should appear in the open thread as soon as it is received, without requiring a local send or reopening the view.
Version and platform
- Buzz version: v0.4.12 (fresh App Store install; App Store shows Open, not Update)
- OS: iOS, physical iPhone
- Relay: self-hosted Buzz relay
Logs / additional context
Relay-side verification was performed before the local send: the missing reply was already present in the thread query, so publication and persistence succeeded. The same controlled result occurred in a brand-new thread, ruling out thread length and an old scroll position.
Attempts that did not reliably surface the reply included leaving and reopening the thread, pulling to refresh, and force-closing/reopening the mobile app. A local send consistently revealed the backlog.
The likely failure boundary is the live-message-to-thread-query handoff:
threadRepliesProvider performs a one-shot authoritative query.
channelMessagesProvider is expected to receive a live threaded reply and invalidate threadRepliesProvider for its root/parent.
- The open thread does not rebuild for the remote arrival.
- A local send updates local reply state and/or its relay echo wakes the rebuild path.
A useful regression test would:
- Mount/watch an already-hydrated thread replies provider.
- Deliver a remote threaded reply through the channel live-event callback.
- Assert that the watched thread refetches and renders the reply without adding any local reply.
Related but distinct:
No private relay URL, channel identifiers, pubkeys, or message contents are included in this report.
Describe the bug
On Buzz Mobile for iOS, a reply that arrives while its thread is already open is stored by the relay but does not appear in the thread UI. Agent Activity updates, confirming the phone is receiving other live events, but the signed channel reply remains invisible.
Sending any reply from the phone immediately makes the accumulated remote replies appear. This makes an agent look as though it has not answered until the user sends another message.
This was reproduced in both an existing long thread and a new, short diagnostic thread.
Steps to reproduce
Expected behavior
A remote reply should appear in the open thread as soon as it is received, without requiring a local send or reopening the view.
Version and platform
Logs / additional context
Relay-side verification was performed before the local send: the missing reply was already present in the thread query, so publication and persistence succeeded. The same controlled result occurred in a brand-new thread, ruling out thread length and an old scroll position.
Attempts that did not reliably surface the reply included leaving and reopening the thread, pulling to refresh, and force-closing/reopening the mobile app. A local send consistently revealed the backlog.
The likely failure boundary is the live-message-to-thread-query handoff:
threadRepliesProviderperforms a one-shot authoritative query.channelMessagesProvideris expected to receive a live threaded reply and invalidatethreadRepliesProviderfor its root/parent.A useful regression test would:
Related but distinct:
No private relay URL, channel identifiers, pubkeys, or message contents are included in this report.