[BUG] Remote Control: sending from mobile silently fails (message disappears), reading works fine
Preflight Checklist
- [x] I have searched existing issues and this hasn't been reported yet
- [x] This is a single bug report (please file separate reports for different bugs)
- [x] I am using the latest version of Claude Code
What's Wrong?
When using claude remote-control, messages typed and sent from the phone (mobile web session) never reach the CLI. Desktop -> phone works fine (I can read Claude's replies live on the phone), but anything typed and sent from the phone just disappears: no error shown, no queued/pending state, nothing arrives on the desktop side.
Cleared app data on the phone and started a brand new remote-control session, got the exact same failure both times.
Also tested on two completely different networks (restaurant wifi and mobile carrier 5G data) with identical results, which rules out a local firewall/network issue like the one identified as the root cause in #62284 (antivirus blocking traffic).
What Should Happen?
Messages sent from the phone during a Remote Control session should reach the CLI and appear in the conversation, the same way messages typed on the desktop reach the phone.
Error Messages/Logs
Steps to Reproduce
- On desktop, run
claude remote-controlinside a project folder. - Scan the QR code with the phone to connect.
- From the desktop, type a message; confirm it shows up and gets a reply visible on the phone (read direction works).
- From the phone, type any message and send it.
- Message disappears from the phone's input with no error, and never appears on the desktop CLI session.
Reproduced on a brand new remote-control session after clearing the phone app's data, and on two different networks (restaurant wifi, mobile 5G).
Claude Model
None
Is this a regression?
Yes, this worked in a previous version
Last Working Version
_No response_
Claude Code Version
2.1.236 (Claude Code)
Platform
Anthropic API
Operating System
Windows
Terminal/Shell
Windows Terminal
Additional Information
Related reports with similar symptoms but a different confirmed root cause (local network/antivirus), which I've ruled out by testing on two unrelated networks: #62284, #34619, #45946.
Native Windows install (claude.exe at %USERPROFILE%\.local\bin), not the npm package.
3 Comments
Same bug here, and I can add a few things that may narrow it.
Windows 11, Claude Code in the VS Code extension, Max plan, phone app rather than mobile web. Started around 12 September, the same date as this report. It worked reliably before that and nothing changed on my side.
One difference worth noting. You see the message disappear with no queued state. I see what looks like the same failure presented the opposite way. My phone shows a stuck turn:
1m 22s · almost done thinking…Queue for after this turn…against a desktop session that is completely idle. Three parts of the UI agree a turn is running. None of it is true. The same inbound failure rendering differently in the app and in mobile web points at the server side rather than either client.
The phone appears to believe the session is permanently mid-turn, so it queues rather than sends, and never flushes, because the turn it is waiting on does not exist.
Eliminated by test on my side, beyond what you covered:
/loginwith claude.ai, noANTHROPIC_API_KEY, noANTHROPIC_AUTH_TOKEN,CLAUDE_CODE_USE_BEDROCKandCLAUDE_CODE_USE_VERTEXunset, default base URL/remote-controldisconnect and re-enable, repeatedlyOutbound mirroring works perfectly throughout every one of those, on the same pairing, in the same second.
Anthropic support has been through this with me and ruled out the known changelog fix about messages sent while Claude is mid-turn, correctly, since my tests ran on fully idle sessions. Their own read was server-side routing.
Separately, and I think it matters more than the cause: a queued message that cannot be delivered should say so. Right now it renders as sent. I spent several days composing and sending instructions believing they had landed. A silent drop that looks like a success is worse than an outage.
If there is a client-side log or debug flag that captures what happens to an outbound message, name it and I will run it and post the output the same day.
One elimination that may save someone time.
v2.1.269, published 11 September — the day before this started — changed how remote sessions report turn state:Given my symptom is the phone believing a turn is permanently in flight, and the dates line up exactly, that looked like the regression. It shipped its own reversal switch, so I tested it.
Set
CLAUDE_CODE_BG_TASKS_REPORT_RUNNING=0, full restart, confirmed it was live in the running process rather than assuming it, reconnected, sent one message from the phone.Still fails. So reverting that change is not the fix, and it can be crossed off.
I also read every release from
2.1.261to2.1.274. Several touch Remote Control — forked sessions, a context-window-usage refusal, a stale permission mode, a session-title bug, a 30-day credential expiry — and none of them describes an inbound message path. Nothing shipped so far addresses this.Still reproducing today, day six, on the latest build. Outbound mirroring remains perfect in the same second that an inbound send is swallowed.
If anyone lands here with the same symptom, the useful detail to add is which client you are on — mobile web or the phone app — because the two present differently (silent disappearance vs a stuck turn with a timer) and that difference is the strongest argument so far that the fault is on neither client.
Resolved for me on
v2.1.281.Updating the VS Code extension from
2.1.278to2.1.281fixed it. Messages from the phone arrive again, including with the desktop session fully idle, which is the exact condition that failed every time for the previous fifteen days.I cannot tell you which change did it.
2.1.281carries five Remote Control fixes and none of them names the inbound-message path, so this is a correlation and not a cause. Recording it anyway, because the version number is the actionable part.For anyone landing here with the same symptom, two things worth knowing.
Check your actual installed version before anything else. Mine was on
2.1.252while the current release was2.1.278— twenty-six behind, with auto-update enabled and no update ever offered in the UI. I only found it by looking at the extensions folder on disk. Going to2.1.278did not fix it;2.1.281did.If the in-app update fails, use the command line. VS Code gave me a bare "Error while installing 'Claude Code for VS Code' extension" with no detail — almost certainly file locks, since Claude sessions were running in the extension at the time. This went through:
then a full restart of VS Code, not just a window reload.
One diagnostic that may still be useful to whoever picks this up, since the underlying cause was never identified: while it was broken, the failed messages never reached the desktop machine in any form. I checked the session transcripts — no
userevent, and noqueue-operationevent carrying the prompt text either. That distinguishes it from #95992, where the prompt does arrive and is stored as aqueue-operationbut never becomes a user turn. Theirs is a message that arrives and is not rendered; this one never arrived at all.Leaving this open rather than closing it, since the original reporter has not confirmed and no cause was ever established.