Unclear Whether this field is always sent is not confirmed.
What
A hook is a user-set command that runs at certain moments, for example when you submit a prompt. When a hook fails, Claude Code now records more about why.
- A hook that fails because there is no Git Bash is now blocked, and the log says "no Git Bash". Before, there were only two block reasons.
- Blocking errors now carry a
noVerdictofhook_timed_outorhook_failed. - The SDK system message format has a new internal
prompt_submit_outcomeobject. Its kinds areblocked_by_hook,stopped_by_hook,dropped_by_hook,not_passed_onandno_verdict.no_verdictcarries ano_verdict_kindsuch asremote_run_failedorhook_timed_out. The object also hasprompt_keptandreason, and covers plugin 'code module' outcomes.
Why
Programs built on Claude Code can tell why a UserPromptSubmit hook ended a prompt without matching message text. On Windows, a hook that cannot run because Git Bash is missing now blocks.
Names in the bundleprompt_submit_outcomeUserPromptSubmit
The entry above is what we published on the day. These lines were added later, as Anthropic's own pages caught up, and they sit beside the original rather than replacing it.
Confirmed since
Anthropic's documentation has since written up UserPromptSubmit, on Intercept and control agent behavior with hooks.
* `UserPromptSubmit` and [`UserPromptExpansion`](/docs/en/hooks#userpromptexpansion): Claude Code blocks the prompt with a message naming the hook and the timeout, and the session continues. Before v2.1.208, Claude Code ended the query wit…agent-sdk/hooks see the edit
Something disagreesSomething we can check disagrees with this entry, or the writer said they could not settle it.
The writer flagged doubt
Whether this field is always sent is not confirmed.
Anthropic's documentation agrees
Anthropic's documentation has since written up UserPromptSubmit, on Intercept and control agent behavior with hooks.
Anthropic's release notes agree
Fixed Edit and Retry in Cowork and claude.ai cloud sessions failing on a message stopped while its UserPromptSubmit or mod prompt.submit…