Remote session (mobile app): image-only paste uploads the attachment but never submits the prompt

Status Fixed / completed
Reported on v2.1.198
Maintainer reply None cached
Activity 1 comment · opened Jul 17, 2026 · closed Aug 19, 2026

Environment

  • Claude Code CLI 2.1.198 on Linux (NixOS, aarch64), session running in tmux
  • Session remote-controlled from the claude.ai mobile app ("Code" tab, iOS) — session shows Connected
  • Text-only prompts and text+image prompts from the app work normally

Bug

Pasting an image into the mobile app composer and sending it without any accompanying text silently does nothing on the CLI side:

  • The attachment is uploaded — the file appears in ~/.claude/uploads/<session-id>/ on the host with a fresh mtime
  • But no turn is ever submitted — nothing arrives in the session transcript, the TUI composer stays empty, the model is never invoked
  • There is no error or feedback in the app; from the user's perspective the session looks stuck/unresponsive

The orphaned attachment is then silently attached to the next text prompt: when the user later sends a normal text message, the previously-pasted image arrives with it.

Repro

  1. Open a connected remote session in the mobile app
  2. Paste a screenshot into the composer, press send, with no text
  3. Observe: upload lands on the host (ls -lat ~/.claude/uploads/<session-id>/), but no transcript entry / no response
  4. Send any text message ("hi") — it arrives carrying the image from step 2

Reproduced 3 times in one session (uploads at 03:09, ~03:24, confirmed via file mtimes vs transcript contents); 100% correlation with empty message text. Same images with text attached deliver instantly.

Expected

An image-only prompt should submit a turn (or the app should require/insert text and say so). Silent deferral reads as a hung session.

🤖 Filed by a Claude Code session on behalf of its user (@jmatsushita) after diagnosing the delivery gap from the host side.

View original on GitHub ↗

This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗