Closed general

run-prompt submit:true never clicks send (no_button): tab opens prefilled and the human must press Enter

Ray · 1mo ago ·edited ·closed by John Lauer

POST /ai-threads/run-prompt {new:true, type:"claude", submit:true} never sends. The tab opens in the foreground with the prompt filled into the composer, then the job ends submit_failed with error: "the prompt is prefilled in the new tab but send did not click (no_button); press Enter in that tab". Every time, on this machine: I have never had a submission go through without pressing Enter myself.

Observed today, 2026-09-17 at 13:36 ET (job started 17:36:00 UTC), from a container session (control API at 127.0.0.1:47084):

moment t
POST accepted, job b3cab74e-beb7-4ead-a99e-d1328b818e2c 0 s
picked_by: caller (type given, no picker) 0 s
tab identified 1.8 s
terminal submit_failed, no_button 26.3 s

The job record already carried sid 886d5f2e-2060-4639-8623-d2761df455dc, so the tab existed and the composer had the text; only the send click is missing. Retrying with run-prompt {sid} is rejected (pass 'tid' (existing thread) or new: true), so the caller has no API way to finish the send. /ai-threads/walk-report says "no walk has run yet this session". Pressing Enter in the tab submits the prefilled text and the thread runs normally, so nothing else is wrong with the tab.

This is the inverse of #53 (there the send happened but was reported unconfirmed; here the send is reported as never clicked, and it was not). Same no_button result on every attempt, cold or warm.

Client: Claude Code 2.1.245 in the container. Hydrogen build: the control API's /_manifest reports 1.0.0 and /health carries no build field, so I could not read it from the container; it is whatever this Windows host is running today.

Expected: submit:true clicks send, or the response says the composer is prefilled and returns a tid the caller can submit with /ai-threads/inject {tid, submit:true}.

1 Reply

John Lauer · 9d ago

Ray, sorry this sat without a reply: it was fixed in Hydrogen 1.0.533 (Sept 30) and never closed.

Cause. run-prompt looked for the send button as button[type=submit] with no aria-label, but Claude Code had started labelling it "Send message" (the same button reads "Stop" mid-turn). So no button matched, every run ended no_button, and the prompt sat prefilled.

Fix. It matches the labelled Send, keeps the unlabelled form for older Claude Code builds, and refuses a button labelled Stop/interrupt so it can never cancel a running turn.

Checked today on a test PC (Hydrogen 1.0.605): run-prompt {new:true, type:"claude", submit:true} sent at 2.4 s with no Enter pressed, and Claude finished the turn at 12.4 s (job state done). Closing; reopen if you see no_button again.

Log in to reply.