{"name":"CLAUDE_CODE_STARTUP_FAILURE_RESULTS","slug":"claude-code-startup-failure-results","family":"env","title":"Environment variables","noun":"environment variable","description":"Version-mismatch startup failures now return structured JSON for SDK-driven sessions","description_source":"entry","described_by":{"version":"2.1.274","anchor":"cli-too-old-failure-now-emits-structured-json-in-stream-json"},"presence":{"first_seen":"2.1.274","removed_in":null,"in_current_build":true,"newest_mined":"2.1.319","builds":42,"mined_builds":159,"first_cited":{"version":"2.1.274","released_at":"2026-09-16 22:36:09","spans":2}},"aliases":[],"entries":[{"version":"2.1.318","anchor":"headless-startup-failure-result-now-always-written-for-three","heading":"Three organization and config startup failures now always report a result","line":"Every stream-json run now writes a startup-failure result for three org and config failures, without needing an opt-in variable","released_at":"2026-11-03 21:55:17","reason":"found in this entry's text, named in this entry"},{"version":"2.1.274","anchor":"cli-too-old-failure-now-emits-structured-json-in-stream-json","heading":"CLI-too-old failure now emits structured JSON in stream-json\/SDK mode","line":"Version-mismatch startup failures now return structured JSON for SDK-driven sessions","released_at":"2026-09-16 22:36:09","reason":"found in this entry's text"},{"version":"2.1.274","anchor":"startup-failure-result-payload-gated-behind-claude-code-star","heading":"Startup-failure result payload gated behind CLAUDE_CODE_STARTUP_FAILURE_RESULTS","line":"Startup failures can emit a structured result message when CLAUDE_CODE_STARTUP_FAILURE_RESULTS is set","released_at":"2026-09-16 22:36:09","reason":"named in this entry, found in this entry's text"}],"entries_total":3,"docs":[{"source":"claude-code","path":"agent-sdk\/typescript","title":"Agent SDK reference - TypeScript","documented":false}],"docs_total":1,"gates":[],"related":[{"name":"CLAUDE_CODE_3P_PROBE_WROTE_HAIKU_DEFAULT","slug":"claude-code-3p-probe-wrote-haiku-default","description":"If your cloud account cannot use a model, Claude Code can step down to the next one; `CLAUDE_CODE_DISABLE_MODEL_ACCESS_FALLBACK` turns this off"},{"name":"CLAUDE_CODE_3P_PROBE_WROTE_OPUS_DEFAULT","slug":"claude-code-3p-probe-wrote-opus-default","description":"Internal marker on third-party providers. When Claude Code itself writes `ANTHROPIC_DEFAULT_OPUS_MODEL` into its environment (the model availability probe on Bedrock, Vertex or Mantle, or a move down the model fallback ladder), it sets this variable to the same model ID. An `ANTHROPIC_DEFAULT_OPUS_MODEL` equal to it is treated as Claude Code's own choice rather than a user pin: it does not count as pinned, the probe does not skip it, and the fallback ladder may move it."},{"name":"CLAUDE_CODE_3P_PROBE_WROTE_SONNET_DEFAULT","slug":"claude-code-3p-probe-wrote-sonnet-default","description":"On third-party providers, Haiku model names are no longer skipped by the check that sets up the Sonnet default model"},{"name":"CLAUDE_CODE_3P_SEEDED_OPUS_DEFAULT","slug":"claude-code-3p-seeded-opus-default","description":"If your cloud account cannot use a model, Claude Code can step down to the next one; `CLAUDE_CODE_DISABLE_MODEL_ACCESS_FALLBACK` turns this off"},{"name":"CLAUDE_CODE_3P_SEEDED_SONNET_DEFAULT","slug":"claude-code-3p-seeded-sonnet-default","description":"If your cloud account cannot use a model, Claude Code can step down to the next one; `CLAUDE_CODE_DISABLE_MODEL_ACCESS_FALLBACK` turns this off"},{"name":"CLAUDE_CODE_ACCESSIBILITY","slug":"claude-code-accessibility","description":"Set to `1` to keep the native terminal cursor visible and disable the inverted-text cursor indicator. Allows screen magnifiers like macOS Zoom to track cursor position"},{"name":"CLAUDE_CODE_ACCOUNT_TAGGED_ID","slug":"claude-code-account-tagged-id","description":"Overrides the `user.account_id` attribute Claude Code attaches to its OpenTelemetry data. It applies only when an account UUID is known and `OTEL_METRICS_INCLUDE_ACCOUNT_UUID` is not turned off (default on); when unset or empty, `user.account_id` is derived from the account UUID as a tagged ID of the form `user_01...`."},{"name":"CLAUDE_CODE_ACCOUNT_UUID","slug":"claude-code-account-uuid","description":"The device bridge is skipped entirely when the host's account UUID doesn't match the stored one."},{"name":"CLAUDE_CODE_ACT_DONT_REDERIVE","slug":"claude-code-act-dont-rederive","description":"Three existing feature gates moved position; their defaults are unchanged."},{"name":"CLAUDE_CODE_ACTION","slug":"claude-code-action","description":"Marks a run as coming from the Claude Code GitHub Action. A truthy value (`1`, `true`, `yes` or `on`) makes Claude Code set `CLAUDE_CODE_ENTRYPOINT` to `claude-code-github-action`, but only when `CLAUDE_CODE_ENTRYPOINT` is not already set and the command is not `claude mcp serve`. It is also reported as `isClaudeCodeAction` in the environment details attached to telemetry."}],"url":"https:\/\/changelogs.core-directive.com\/reference\/env\/claude-code-startup-failure-results","family_url":"https:\/\/changelogs.core-directive.com\/reference\/env.json"}