Resuming a phone conversation on the Mac silently discards what you type there

Status Open
Reported on v2.1.272
Maintainer reply None cached
Activity 0 comments · opened Sep 15, 2026

Preflight Checklist

  • [x] I have searched existing issues and this hasn't been reported as a bug yet (closest: #75525 stale/archived mobile listing and #51267 mobile hang recoverable by local Esc — both distinct, neither involves work being discarded)
  • [x] This is a single bug report
  • [x] I am using the latest version of Claude Code

What's Wrong?

A conversation started in the Claude phone app, then resumed locally on the Mac, silently discards everything typed on the Mac as soon as the phone is used again.

The phone's next turn resumes the conversation from the branch as it stood before the Mac picked it up. The Mac's turns are not on that branch. The model answers as though they never happened, nothing warns, nothing errors, and neither interface shows that the two devices are on different branches.

There is a lockout first (the phone spins and its turn never arrives), which is visible. The discard underneath it is not.

What Should Happen?

Either the phone's turn continues from the conversation's current head, or the cloud session ends when the conversation is resumed locally. Failing both, some signal that the conversation has moved, so a person can avoid the tap that loses their work.

Error Messages/Logs

No error is produced. That is the problem.

Session 436160f2-f25d-55d6-99af-25046ea4cbb8, cloud id cse_016hhPLpVnviBpoJE4YpQ63U. The transcript, read at 14:12:55 local, held six spoken records:

19:02:28  user       Remember the word MERCURY. Reply with just: ok     (phone)
19:02:31  assistant  ok
19:05:13  user       Say ok again.                                      (phone)
19:05:16  assistant  ok
19:10:32  user       Remember the word NEPTUNE. Reply with just: ok     (MAC)
19:10:35  assistant  ok

A message was then sent from the phone. It did not arrive; the phone spun indefinitely. After the Mac's session process ended, the phone's message landed:

19:14:44  user       List every word I have asked you to remember       (phone)
19:14:49  assistant  MERCURY — that's the only one.

Its parentUuid resolves to the record at 19:05:16, the last one written before the Mac took over. Afterwards NEPTUNE appears in that transcript only inside a last-prompt metadata record, and a sweep of every file under ~/.claude/projects finds Remember the word NEPTUNE in zero conversation turns.

Steps to Reproduce

  1. Start a conversation in the Claude phone app. Send a message.
  2. On the Mac, resume that conversation locally (claude --resume <session-id>, or any handoff that does so).
  3. Send a message at the Mac and let it answer.
  4. Send one more message from the phone.

The phone's turn hangs, and once the Mac's process exits it lands on the pre-handoff branch. Step 3's work is gone from the conversation.

What it is not

Three explanations were tested and ruled out.

Not a stale local session. A conversation started on the Mac and joined from the phone stays on one branch: 10 spoken records, one root, zero forks, and the Mac's session knew the word sent from the phone.

Not a missing --remote-control flag. The resumed session ran as claude --remote-control --permission-mode bypassPermissions --resume 436160f2.... The phone was still locked out.

Not a lost bridge binding. claude remote-control --session-id cse_016hhPLpVnviBpoJE4YpQ63U, run once while the phone owned the session and once after it was resumed on the Mac, returned the identical message both times:

Error: Environment env_01VmpuCpzAmrK6eSg7MYeDgL is already being served by another
`claude remote-control` instance (pid 43793)

The environment exists and is served in both states.

Additional context

Reproduced three times (dad4233a…, e2fa932c…, 436160f2…), same signature each time. Only the third was instrumented on both sides of the handoff.

There is also no way for a user to route around this: resuming locally stops every local process holding the session, including the bridge, but does not end the cloud session, and nothing ends one. claude stop and claude rm both answer No job matching for a session uuid and for a cse_ id, and no other subcommand covers it. So the phone keeps a live handle on a conversation it can only damage, indistinguishable in its list from any other.

Environment

  • Claude Code 2.1.272, macOS (Darwin 25.6.0), Apple Silicon
  • claude remote-control installed as a LaunchAgent
  • Claude iOS app, same account

View original on GitHub ↗