Skip to content

[Bug]: iOS messages queued as "Sends on reconnect" are not sent while the target environment shows Connected #13995

Description

@gmelvill

Before submitting

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

Area

apps/mobile

Steps to reproduce

  1. In the iOS app (1.3.0), connect to a desktop environment directly over a private HTTPS address. Also have two T3 Connect environments enabled whose machines are currently powered off.
  2. Send messages to threads on the directly connected environment during a brief connection drop.
  3. The messages appear under Unsent as "Sends on reconnect".
  4. Wait for the environment to reconnect.

Expected behavior

Queued messages send as soon as their target environment is connected again.

Actual behavior

At 05:03–05:04 (UTC+10) the Environments sheet showed the target environment as Connected, while two messages to it were still listed as "Sends on reconnect". A persistent "Reconnecting 2 environments" banner was showing because the two T3 Connect machines were offline. The host then restarted for an update (unreachable 05:05:58–05:08:27). The first queued message only reached the host at 05:13:57, about 5½ minutes after the host was back and about 10 minutes after it was written.

Possible cause (a guess, not verified in the client code): the outbox may wait for all environments to reconnect, so offline T3 Connect machines hold back messages for an environment that is online.

Impact

Major degradation or frequent failure

Version or commit

iOS app 1.3.0 (85); desktop 0.0.43-nightly.20260927.2344

Environment

iPhone, iOS 27; Windows 11 host over Tailscale Serve HTTPS; two T3 Connect environments offline

Logs or stack traces

Host server trace (UTC+10):

  • 05:03:26 SessionStore.recordClientConnection / markConnected for the phone. No orchestration.dispatchCommand follows.
  • 05:05:58 → 05:08:27 backend restart for the desktop update.
  • 05:08:27 onward: repeated client reconnects succeed.
  • 05:13:57 first orchestration.dispatchCommand / startThreadTurn for a held message.

Workaround

None found; the messages eventually sent on their own.

Activity

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

    bugSomething is broken or behaving incorrectly.via-triageFiled through npx t3 triage

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions