> ## Documentation Index
> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Referensi kesalahan

> Cari pesan kesalahan runtime Claude Code dengan arti masing-masing dan cara memperbaikinya.

Halaman ini mencantumkan kesalahan runtime yang ditampilkan Claude Code dan cara memulihkan dari masing-masing, ditambah apa yang harus diperiksa ketika respons tampak tidak normal tanpa kesalahan. Untuk kesalahan instalasi seperti `command not found` atau kegagalan TLS selama penyiapan, lihat [Troubleshoot installation and login](/docs/id/troubleshoot-install).

Kecuali untuk [Wrapper and IDE errors](#wrapper-and-ide-errors), yang dicetak oleh program peluncur daripada Claude Code itu sendiri, kesalahan dan perintah pemulihan ini berlaku di seluruh CLI, [Desktop app](/docs/id/desktop), dan [cloud sessions](/docs/id/claude-code-on-the-web), karena ketiganya membungkus CLI Claude Code yang sama. Untuk masalah spesifik surface lainnya, lihat bagian pemecahan masalah di halaman surface tersebut.

<Note>
  Claude Code memanggil Claude API untuk respons model, jadi sebagian besar kesalahan runtime memetakan ke kode kesalahan API yang mendasar. Halaman ini mencakup apa arti setiap kesalahan di dalam Claude Code dan cara memulihkan. Untuk definisi kode status HTTP mentah, lihat [Claude Platform error reference](https://platform.claude.com/docs/en/api/errors).
</Note>

<h2 id="find-your-error">
  Temukan kesalahan Anda
</h2>

Cocokkan pesan yang Anda lihat dengan bagian di bawah ini.

| Pesan | Bagian |
| :- | :- |
| `API Error: 500 Internal server error` | [Server errors](#api-error-500-internal-server-error) |
| `API Error: Repeated 529 Overloaded errors` | [Server errors](#api-error-repeated-529-overloaded-errors) |
| `Opus is experiencing high load` / `Fable is experiencing high load` | [Server errors](#api-error-repeated-529-overloaded-errors) |
| `Request timed out` | [Server errors](#request-timed-out), atau [Network](#unable-to-connect-to-api) jika pesan menyebutkan koneksi internet Anda |
| `API Error: No response from API` | [Server errors](#no-response-from-api) |
| `Server error mid-response. The response above may be incomplete.` | [Server errors](#the-response-above-may-be-incomplete) |
| `Connection lost mid-response` / `Your computer went to sleep mid-response` / `The response stopped arriving` | [Server errors](#the-response-above-may-be-incomplete) |
| `Connection closed mid-response` / `Response stalled mid-stream` | [Server errors](#the-response-above-may-be-incomplete) |
| `Part of the response never arrived` / `The response stream was malformed` | [Server errors](#the-response-above-may-be-incomplete) |
| `API Error: Content block not found` / `API Error: Content block already closed` / `API Error: Stream event unreadable` | [Server errors](#the-response-above-may-be-incomplete) |
| `Connection lost before a response was produced` / `Your computer went to sleep before a response was produced` / `The response stalled before a response was produced` | [Automatic retries](#automatic-retries) |
| `Connection closed while thinking` / `Response stalled while thinking` | [Automatic retries](#automatic-retries) |
| `Connection lost while your computer was asleep` | [Automatic retries](#automatic-retries) |
| `<model> is temporarily unavailable, so auto mode cannot determine the safety of...` | [Server errors](#auto-mode-cannot-determine-the-safety-of-an-action) |
| `Auto mode could not evaluate this action and is blocking it for safety` | [Server errors](#auto-mode-cannot-determine-the-safety-of-an-action) |
| `Not run · auto mode's check had no usable answer` | [Server errors](#auto-mode-cannot-determine-the-safety-of-an-action) |
| `Auto mode classifier transcript exceeded context window` | [Server errors](#auto-mode-cannot-determine-the-safety-of-an-action) |
| `Agent aborted: auto mode classifier request refused by the safety safeguard` | [Server errors](#auto-mode-cannot-determine-the-safety-of-an-action) |
| `The server-side auto mode classifier gave no verdict` | [Server errors](#the-server-returned-no-safety-verdict) |
| `Auto mode is unavailable — the server returned no safety verdict for the last 10 responses` | [Server errors](#the-server-returned-no-safety-verdict) |
| `Agent terminated early due to an API error` | [Server errors](#agent-terminated-early-due-to-an-api-error) |
| `You've hit your session limit` / `You've hit your weekly limit` / `You've hit your Opus limit` / `You've hit your Sonnet limit` | [Usage limits](#youve-hit-your-session-limit) |
| `Usage credits required for 1M context` | [Usage limits](#usage-credits-required-for-1m-context) |
| `the prompt to confirm went unanswered — nothing was sent` | [Usage limits](#the-prompt-to-confirm-went-unanswered) |
| `Server is temporarily limiting requests` | [Usage limits](#server-is-temporarily-limiting-requests) |
| `Request rejected (429)` | [Usage limits](#request-rejected-429) |
| `Credit balance is too low` | [Usage limits](#credit-balance-is-too-low) |
| `You've hit your monthly spend limit` / `You've hit your individual spend limit` / `You've hit your org's monthly spend limit` / `You've hit your channel's monthly spend limit` / `You've hit your team's shared budget` / `You've hit your individual usage limit` | [Usage limits](#youve-hit-your-monthly-spend-limit) |
| `Could not update your spend limit` | [Usage limits](#could-not-update-your-spend-limit) |
| `spend limit reached` / `spend limit unavailable` | [Usage limits](#spend-limit-reached) |
| `Not logged in · Please run /login` | [Authentication](#not-logged-in) |
| `Couldn't save your login` | [Authentication](#couldnt-save-your-login) |
| `Authentication required · Sign in again to continue` | [Authentication](#not-logged-in) |
| `Could not resolve authentication method` | [Authentication](#could-not-resolve-authentication-method) |
| `Invalid API key` | [Authentication](#invalid-api-key) |
| `Your apiKeyHelper script is failing` | [Authentication](#your-apikeyhelper-script-is-failing) |
| `Invalid auth token · Fix external auth token` | [Authentication](#invalid-request-header-value) |
| `Invalid ANTHROPIC_CUSTOM_HEADERS · Fix the environment variable` | [Authentication](#invalid-request-header-value) |
| `Invalid request header from the environment · Fix the environment variable` | [Authentication](#invalid-request-header-value) |
| `This organization has been disabled` | [Authentication](#this-organization-has-been-disabled) |
| `Your organization has disabled API key authentication` | [Authentication](#your-organization-has-disabled-api-key-authentication) |
| `Your organization has disabled Claude subscription access` | [Authentication](#your-organization-has-disabled-claude-subscription-access) |
| `Routines are disabled by your organization's policy` | [Authentication](#routines-are-disabled-by-your-organizations-policy) |
| `Remote Control is only available when using Claude via api.anthropic.com` | [Authentication](#remote-control-requires-the-anthropic-api) |
| `OAuth token refresh failed — run /login to re-authenticate` | [Authentication](#remote-control-couldnt-refresh-your-login) |
| `JWT refresh failed: no OAuth token — run /login` | [Authentication](#remote-control-couldnt-refresh-your-login) |
| `Claude.ai login expired` | [Authentication](#remote-control-couldnt-refresh-your-login) |
| `Claude.ai login was rejected — run /login, then /remote-control` | [Authentication](#remote-control-couldnt-refresh-your-login) |
| `OAuth token unavailable — run /login to restore Remote Control` | [Authentication](#remote-control-couldnt-refresh-your-login) |
| `Signed out of Claude — run /login, then /remote-control` | [Authentication](#remote-control-couldnt-refresh-your-login) |
| `Remote Control could not renew this computer's connection` | [Authentication](#remote-control-could-not-renew-this-computers-connection) |
| `signed-in claude.ai account or organization changed on this machine` | [Authentication](#remote-control-stopped-because-the-signed-in-account-changed) |
| `Remote Control stopped — the app running this session is now signed in to a different Claude account` | [Authentication](#remote-control-stopped-because-the-app-running-the-session-signed-out-or-switched-accounts) |
| `Remote Control stopped — the app running this session is signed out of Claude` | [Authentication](#remote-control-stopped-because-the-app-running-the-session-signed-out-or-switched-accounts) |
| `Couldn't verify your organization's policy for remote control` | [Troubleshoot Remote Control](/docs/id/remote-control#couldnt-verify-your-organizations-policy-for-remote-control) |
| `Remote Control is disabled by your organization's policy` | [Troubleshoot Remote Control](/docs/id/remote-control#remote-control-is-disabled-by-your-organizations-policy) |
| `Remote Control was turned off by your organization's policy` | [Troubleshoot Remote Control](/docs/id/remote-control#remote-control-was-turned-off-by-your-organizations-policy) |
| `OAuth token revoked` / `OAuth token has expired` | [Authentication](#oauth-token-revoked-or-expired) |
| `Failed to authenticate: OAuth token revoked` | [Authentication](#oauth-token-revoked-or-expired) |
| `Your account does not have access to Claude. Please login again or contact your administrator.` | [Authentication](#oauth-token-revoked-or-expired) |
| `API Error: 401 Invalid authentication credentials` | [Authentication](#api-error-401-invalid-authentication-credentials) |
| `Login expired · Please run /login` | [Authentication](#login-expired) |
| `Failed to start OAuth callback server` | [Authentication](#failed-to-start-oauth-callback-server) |
| `Claude login not accepted · Run /login, then try again` | [Authentication](#claude-login-not-accepted) |
| `Artifacts need a claude.ai login` | [Authentication](#artifacts-need-a-claude-ai-login) |
| `Not signed in to the Cloud gateway — run /login.` | [Authentication](#administrator-policy-requires-a-cloud-gateway-sign-in) |
| `Administrator policy requires a Cloud gateway sign-in on this machine` | [Authentication](#administrator-policy-requires-a-cloud-gateway-sign-in) |
| `Failed to authenticate: OAuth session expired and could not be refreshed` | [Authentication](#login-expired) |
| `Could not refresh your login because another Claude Code process is refreshing it` | [Authentication](#could-not-refresh-your-login) |
| `Failed to refresh OAuth token: another Claude Code process is refreshing it or exited mid-refresh` | [Authentication](#could-not-refresh-your-login) |
| `Your account is on hold and can't use Claude Code. View details or appeal: https://claude.ai/restricted` | [Authentication](#your-account-is-on-hold) |
| `Your account is on hold and can't sign in to Claude Code. View details or appeal: https://claude.ai/restricted` | [Authentication](#your-account-is-on-hold) |
| `Anthropic profile login expired · Re-authenticate your Anthropic profile` | [Authentication](#anthropic-profile-login-expired) |
| `Login expired · Run /login to sign in again, or re-authenticate your Anthropic profile` | [Authentication](#anthropic-profile-login-expired) |
| `Anthropic profile login expired · Run /login to use your claude.ai account instead, or re-authenticate the profile` | [Authentication](#anthropic-profile-login-expired) |
| `does not meet scope requirement user:profile` | [Authentication](#oauth-scope-requirement) |
| `claude.ai rejected the session token` / `session token rejected` | [Authentication](#claude-ai-rejected-the-session-token) |
| `MCP server "<name>" needs you to sign in again (run /mcp to re-authenticate)` | [Authentication](#mcp-server-needs-you-to-sign-in-again) |
| `rejected the credential from its headersHelper` / `rejected the Authorization header in its config` | [Authentication](#mcp-server-needs-you-to-sign-in-again) |
| `MCP server "<name>" needs additional permissions (scope: "<scope>") — run /mcp to re-authenticate` | [Authentication](#mcp-server-needs-you-to-sign-in-again) |
| `MCP server "<name>" requires re-authorization (token expired)` | [Authentication](#mcp-server-needs-you-to-sign-in-again) |
| `This server's URL is missing or not a valid URL, so sign-in can't start` | [Authentication](#mcp-server-url-is-missing-or-not-a-valid-url) |
| `Issuer mismatch in authorization response (RFC 9207)` | [Authentication](#issuer-mismatch-in-authorization-response) |
| `Refusing to send credentials to non-https token endpoint` / `<short-name> from the MCP SDK for <server-url>` | [Authentication](#refusing-to-send-credentials-to-non-https-token-endpoint) |
| `Cloud gateway session expired — run /login to reconnect.` | [Authentication](#cloud-gateway-session-expired) |
| `Cloud gateway <url> no longer accepts this session` | [Authentication](#cloud-gateway-session-expired) |
| `Sign-in timed out while waiting for you to continue. Try again.` | [Authentication](#sign-in-timed-out-while-waiting-for-you-to-continue) |
| `AWS credentials expired or invalid` | [Authentication](#aws-credentials-expired-or-invalid) |
| `AWS authentication failed` | [Authentication](#aws-authentication-failed) |
| `Google Cloud credentials expired or invalid` | [Authentication](#google-cloud-credentials-expired-or-invalid) |
| `Google Cloud authentication failed` | [Authentication](#google-cloud-authentication-failed) |
| `Microsoft Foundry authentication failed` | [Authentication](#microsoft-foundry-authentication-failed) |
| `Gateway refused the request` | [Authentication](#gateway-refused-the-request) |
| `Could not load AWS credentials` / `Could not load Google Cloud credentials` | [Authentication](#could-not-load-aws-or-google-cloud-credentials) |
| `AWS default-chain credential resolve timed out` | [Authentication](#aws-default-chain-credential-resolve-timed-out) |
| `Timed out after 60s waiting for AWS` | [Authentication](#bedrock-setup-verification-timed-out-waiting-for-aws) |
| `A request to AWS timed out. Check your network and proxy settings, then try again.` | [Authentication](#bedrock-setup-verification-timed-out-waiting-for-aws) |
| `Could not load the default credentials` pada Google Cloud's Agent Platform | [Authentication](#could-not-load-aws-or-google-cloud-credentials) |
| `Unable to connect to API` | [Network](#unable-to-connect-to-api) |
| `Connection refused —` / `Can't reach the API server —` / `No internet route —` / `Couldn't connect through your proxy` / `Connection dropped`, masing-masing dengan kode kesalahan dalam tanda kurung | [Network](#unable-to-connect-to-api) |
| `Unable to connect to Anthropic services` selama penyiapan | [Network](#unable-to-connect-to-anthropic-services) |
| `Socket is closed` | [Network](#socket-is-closed) |
| `Waiting for API response · will retry in` | [Automatic retries](#automatic-retries), atau [Network](#unable-to-connect-to-api) jika terus berlanjut |
| `API returned an empty or malformed response` | [Network](#api-returned-an-empty-or-malformed-response) |
| `Streaming response ended before any complete data was received` | [Network](#streaming-response-ended-before-any-complete-data-was-received) |
| `Bedrock streaming response has content-type "..."; expected "application/vnd.amazon.eventstream"` | [Network](#bedrock-streaming-response-has-an-unexpected-content-type) |
| `SSL certificate verification failed` | [Network](#ssl-certificate-errors) |
| `SSL certificate error (...)` selama login atau startup | [Network](#ssl-certificate-errors) |
| `unable to get local issuer certificate` | [Network](#ssl-certificate-errors) |
| `403` dengan `x-deny-reason: host_not_allowed` dalam sesi cloud atau routine | [Network](#host-not-allowed-in-a-cloud-session) |
| `proxy refused the connection` | [Network](#the-proxy-refused-the-connection) |
| `403` dengan `GitHub GraphQL is not available from Claude Code sessions` dalam sesi cloud | [GitHub proxy](/docs/id/cloud-environments#github-proxy) |
| `The cloud environments service returned an empty response` / `The cloud environments service returned a response in an unexpected format` | [Network](#the-cloud-environments-service-returned-an-empty-or-unexpected-response) |
| `Failed to fetch session from Sessions API: Failed to fetch session logs` | [Network](#failed-to-fetch-session-from-sessions-api) |
| `Couldn't reconnect to your Remote Control session` | [Network](#couldnt-reconnect-to-your-remote-control-session) |
| `N sessions ended while this machine was offline — the environment was cleaned up on the server and can't be resumed.` | [Network](#sessions-ended-while-this-machine-was-offline) |
| `Couldn't share the transcript.` | [Network](#couldnt-share-the-transcript) |
| `Couldn't send feedback` | [Network](#couldnt-send-feedback) |
| `Prompt is too long` / `Input is too long for requested model` | [Request errors](#prompt-is-too-long) |
| `Prompt is too long · automatic compaction failed:` | [Request errors](#prompt-is-too-long) |
| `Prompt is too long · this conversation is a single exchange` / `A single-exchange conversation cannot be compacted` | [Request errors](#prompt-is-too-long) |
| `Context limit reached · /compact or /clear to continue` | [Request errors](#prompt-is-too-long) |
| `Context limit reached · /clear to continue` | [Request errors](#prompt-is-too-long) |
| `capability_rejected: prompt_too_long` pada sesi gateway aplikasi Claude | [Request errors](#prompt-is-too-long) |
| `upstream rejected the request` / `request too large for this upstream` pada sesi gateway aplikasi Claude | [Upstream error messages](/docs/id/claude-apps-gateway-config#upstream-error-messages) |
| `upstream rate limit exceeded` pada sesi gateway aplikasi Claude | [Upstream error messages](/docs/id/claude-apps-gateway-config#upstream-error-messages) |
| `all upstreams failed (N attempted)` pada sesi gateway aplikasi Claude | [Upstream error messages](/docs/id/claude-apps-gateway-config#upstream-error-messages) |
| `Claude Code may not be enabled for your organization` setelah login gateway aplikasi Claude | [Claude apps gateway troubleshooting](/docs/id/claude-apps-gateway-deploy#troubleshooting) |
| `Context exceeds the ...-token limit by ... tokens` dalam output `/context` | [Request errors](#context-exceeds-the-token-limit) |
| `Request too large` | [Request errors](#request-too-large) |
| `Request too large for the API's 32MB request limit` | [Request errors](#request-too-large) |
| `Image was too large` | [Request errors](#image-was-too-large) |
| `API Error: an image in the conversation could not be processed and was removed` | [Request errors](#image-was-too-large) |
| `Unable to resize image` | [Request errors](#unable-to-resize-image) |
| `Request rejected as unprocessable by the model` | [Request errors](#request-rejected-as-unprocessable-by-the-model) |
| `PDF too large` / `PDF is password protected` / `pdftoppm is not installed` | [Request errors](#pdf-errors) |
| `Extra inputs are not permitted` | [Request errors](#extra-inputs-are-not-permitted) |
| `API Error: 400 ... tools.N.custom.input_schema: JSON schema is invalid` / `Property keys should match pattern` | [Request errors](#tool-input-schema-is-invalid) |
| `Tool "mcp__<server>__<tool>" is not sent to Claude: its name has <N> characters and the API accepts at most 128` | [Request errors](#mcp-tool-name-over-128-characters) |
| `tools.N.custom.name: String should have at most 128 characters` | [Request errors](#mcp-tool-name-over-128-characters) |
| `tool_use.name: String should have at most 200 characters` | [Request errors](#tool-use-name-over-200-characters) |
| `There's an issue with the selected model` | [Request errors](#theres-an-issue-with-the-selected-model) |
| `Model ... is not a recognized model id` | [Request errors](#model-is-not-a-recognized-model-id) |
| `Model ... not found` | [Request errors](#model-not-found) |
| `Couldn't confirm model ... with the API` | [Request errors](#couldnt-confirm-model-with-the-api) |
| `API error: ... · model not changed` | [Request errors](#api-error-model-not-changed) |
| `Claude Opus is not available with the Claude Pro plan` | [Request errors](#claude-opus-is-not-available-with-the-claude-pro-plan) |
| `Claude Code ... does not support this model; version ... or newer is required` | [Request errors](#claude-code-does-not-support-this-model) |
| `Claude Code ... is older than the minimum version required by your organization's policy` | [Request errors](#claude-code-does-not-support-this-model) |
| `Model ... is restricted by your organization's settings` | [Request errors](#model-is-restricted-by-your-organizations-settings) |
| `Model ... is not available. Your organization restricts model selection.` | [Request errors](#model-is-restricted-by-your-organizations-settings) |
| `Can't switch to the default model` | [Request errors](#cant-switch-to-the-default-model) |
| `Model switch ... blocked by a PreModelSwitch hook` | [Request errors](#model-switch-was-blocked-by-a-premodelswitch-hook) |
| `couldn't save it as your default` / `couldn't confirm it was saved as your default` | [Request errors](#couldnt-save-it-as-your-default) |
| `is less capable than the current main model` / `Advisor will not activate on the main model` / `cannot advise` | [Request errors](#advisor-is-less-capable-than-the-current-main-model) |
| `thinking.type.enabled is not supported for this model` | [Request errors](#thinking-type-enabled-is-not-supported-for-this-model) |
| `Effort '<level>' isn't available with thinking turned off on this model` | [Request errors](#effort-isnt-available-with-thinking-turned-off) |
| `effort '<level>' is not supported when thinking is disabled` | [Request errors](#effort-isnt-available-with-thinking-turned-off) |
| `max_tokens must be greater than thinking.budget_tokens` | [Request errors](#thinking-budget-exceeds-output-limit) |
| `Claude's response exceeded the ... output token maximum` | [Request errors](#response-exceeded-the-output-token-maximum) |
| `API Error: 400 due to tool use concurrency issues` | [Request errors](#tool-use-or-thinking-block-mismatch) |
| `API Error: 400 orphaned tool_result in conversation history` | [Request errors](#tool-use-or-thinking-block-mismatch) |
| `API Error: 400 duplicate tool_use ID in conversation history` | [Request errors](#tool-use-or-thinking-block-mismatch) |
| `Invalid data in redacted_thinking block` | [Request errors](#invalid-data-in-redacted-thinking-block) |
| `[Unsupported tool content removed]` | [Request errors](#unsupported-tool-content-removed) |
| `role 'system' must precede an 'assistant' message` | [Request errors](#role-system-must-precede-an-assistant-message) |
| `Invalid encrypted_content in search_result block` / `Invalid encrypted_index in text block` / `Failed to decrypt web search result content` | [Request errors](#invalid-encrypted-content-in-search-result-block) |
| `Invalid encrypted_stdout in encrypted_code_execution_result block` | [Request errors](#invalid-encrypted-content-in-search-result-block) |
| `server_tool_use.name: Input should be` pada setiap giliran sesi yang dilanjutkan | [Request errors](#unsupported-tool-content-removed) |
| `<model> can't help with this. Start a new session to continue` | [Request errors](#usage-policy-refusal) |
| `Claude Code is unable to respond to this request, which appears to violate our Usage Policy` | [Request errors](#usage-policy-refusal) |
| `<model>'s safeguards flagged this message` | [Request errors](#safety-measures-flagged-a-cybersecurity-topic) |
| `<model>'s safeguards flagged this session` | [Request errors](#safety-measures-flagged-a-cybersecurity-topic) |
| `<model> has safety measures that flagged this message for a cybersecurity topic` | [Request errors](#safety-measures-flagged-a-cybersecurity-topic) |
| `` Details: `[reasoning_extraction]` `` | [Request errors](#safeguards-flagged-a-request-for-claudes-reasoning) |
| `API Error: Output blocked by content filtering policy` | [Request errors](#output-blocked-by-content-filtering-policy) |
| `Installation was killed before it could finish (exit code 137)` | [Troubleshoot installation and login](/docs/id/troubleshoot-install#installation-was-killed-before-it-could-finish) |
| `The connection dropped while downloading the update` | [Troubleshoot installation and login](/docs/id/troubleshoot-install#the-connection-dropped-while-downloading-the-update) |
| `Download timed out: exceeded the total deadline` | [Troubleshoot installation and login](/docs/id/troubleshoot-install#the-connection-dropped-while-downloading-the-update) |
| `--bg and --print conflict` | [Command-line errors](#conflict-between-bg-and-print) |
| `Couldn't tell whether --bg is a flag or text here, so nothing was started` | [Command-line errors](#couldnt-tell-whether-bg-is-a-flag-or-text) |
| `Error: Cannot use both --append-subagent-system-prompt and --append-subagent-system-prompt-file. Please use only one.` | [Command-line errors](#conflict-between-a-system-prompt-flag-and-its-file-form) |
| `Cloud sessions cannot be created from a --restricted session` | [Command-line errors](#cloud-sessions-cannot-be-created-from-a-restricted-session) |
| `Cloud sessions are disabled by your organization's policy` | [Command-line errors](#cloud-sessions-are-disabled-by-your-organizations-policy) |
| `Cloud sessions use your claude.ai login`, di akhir penolakan kebijakan yang menyebutkan kredensial | [Command-line errors](#cloud-sessions-use-your-claude-ai-login) |
| `Couldn't verify your organization's policy for cloud sessions` | [Command-line errors](#couldnt-verify-your-organizations-policy-for-cloud-sessions) |
| `Cloud sessions aren't available:` diikuti alasan mengapa kebijakan organisasi Anda tidak dapat dimuat | [Command-line errors](#couldnt-verify-your-organizations-policy-for-cloud-sessions) |
| `Cloud sessions need a claude.ai sign-in` | [Unable to get organization UUID](/docs/id/claude-code-on-the-web#unable-to-get-organization-uuid) |
| `Nothing was stashed: "<path>" is now a folder in place of a tracked file or link` / `are now folders in place of tracked files or links` | [Command-line errors](#nothing-was-stashed-because-a-folder-replaced-a-tracked-file) |
| `Error: --json-schema is not a valid JSON Schema` | [Command-line errors](#the-json-schema-value-is-not-a-valid-json-schema) |
| `Error: Invalid --agents configuration:` | [Command-line errors](#invalid-agents-configuration) |
| `Error: --agents takes a JSON object, or a file path only with --print (-p)` | [Command-line errors](#invalid-agents-configuration) |
| `Error: --agents file not found` | [Command-line errors](#invalid-agents-configuration) |
| `Error: Settings file exceeds the 2MiB limit` | [Command-line errors](#settings-file-exceeds-the-2mib-limit) |
| `The current directory no longer exists (it was deleted or moved)` / `Can't read the current directory` | [Command-line errors](#the-current-directory-no-longer-exists) |
| `Temp directory <dir> ... Refusing to use it` / `ENOSPC: no space left on device, mkdir '<dir>'` | [Command-line errors](#temp-directory-refused-or-cannot-be-created) |
| `couldn't be resolved to a real location, so its skills, commands, and agents weren't loaded` | [Command-line errors](#directory-couldnt-be-resolved-to-a-real-location) |
| `Error: Workspace not trusted` saat memulai Remote Control | [Command-line errors](#workspace-not-trusted-when-starting-remote-control) |
| `` `<flag>` before `remote-control` is not carried over to the sessions Remote Control starts `` | [Command-line errors](#not-carried-over-to-the-sessions-remote-control-starts) |
| `--sandbox is not supported by claude remote-control` / `--no-sandbox is not supported by claude remote-control` | [Command-line errors](#sandbox-is-not-supported-by-claude-remote-control) |
| `` `claude import` is not yet available in this build `` | [Command-line errors](#claude-import-is-not-yet-available-in-this-build) |
| `Could not read Claude Code config` | [Command-line errors](#could-not-read-claude-code-config) |
| `Could not import <server>: <reason>` | [Command-line errors](#could-not-import-a-server-from-claude-desktop) |
| `Cannot add MCP server to scope: managed` | [Command-line errors](#cannot-add-mcp-server-to-the-managed-scope) |
| `Cannot add MCP server: your organization's managed settings allow only MCP servers that plugins provide` | [Command-line errors](#cannot-add-mcp-server-when-managed-settings-allow-only-plugin-servers) |
| `is Anthropic-hosted and doesn't support local OAuth` | [Command-line errors](#anthropic-hosted-and-doesnt-support-local-oauth) |
| `Can't read .mcp.json: it isn't a regular file or is larger than 2097152 bytes` | [Command-line errors](#cant-read-mcp-json) |
| `MCP server "<name>" was not saved to` / `was not removed from` | [Command-line errors](#mcp-server-was-not-saved-or-removed) |
| `MCP server "<name>" may not have been saved` / `may not have been removed` | [Command-line errors](#mcp-server-may-not-have-been-saved-or-removed) |
| `Server rejected the Authorization header minted by the configured headersHelper` | [Command-line errors](#server-rejected-the-authorization-header-minted-by-the-configured-headershelper) |
| `Error: MCP tool <name> (passed via --permission-prompt-tool) not found` | [Command-line errors](#mcp-permission-prompt-tool-not-found) |
| `OAuth callback port <port> is already in use — another process may be holding it` | [Command-line errors](#oauth-callback-port-is-already-in-use) |
| `No available ports for OAuth redirect` | [Command-line errors](#no-available-ports-for-oauth-redirect) |
| `Shell command failed for pattern "..."`, dari `/security-review` atau skill apa pun yang menyuntikkan konteks dinamis | [Command-line errors](#security-review-fails-without-origin-head) |
| `Shell command permission check failed for pattern "..."`, dari skill yang menyuntikkan konteks dinamis | [Command-line errors](#security-review-fails-without-origin-head) |
| ``Skill <name> requires bash (`shell: bash` in frontmatter) but Git Bash was not found`` | [Command-line errors](#security-review-fails-without-origin-head) |
| `No shell command in <name> was run, because the <tool> tool does not accept one of them` | [Command-line errors](#no-shell-command-was-run) |
| `Input must be provided either through stdin or as a prompt argument when using --print` | [Command-line errors](#input-must-be-provided-when-using-print) |
| `Claude Code can't read the keyboard here: stdin is not a terminal` | [Command-line errors](#claude-code-cant-read-the-keyboard-here) |
| `Error: Input contained only whitespace` | [Command-line errors](#input-contained-only-whitespace) |
| `Blank prompt — the message was only whitespace, so nothing was sent to the model.` | [Command-line errors](#input-contained-only-whitespace) |
| `Error: stream-json input carried over 256M characters with no newline` | [Command-line errors](#stream-json-input-carried-over-256m-characters-with-no-newline) |
| `Unknown command: /<name>`, dengan atau tanpa saran `Did you mean` | [Command-line errors](#unknown-command) |
| `Diff is too large for ultrareview` / `PR #<N> is too large for ultrareview` | [Command-line errors](#diff-is-too-large-for-ultrareview) |
| `Could not find merge-base with <branch>` | [Command-line errors](#could-not-find-merge-base-with-the-base-branch) |
| `Your checkout has no branches (detached HEAD only)` | [Command-line errors](#your-checkout-has-no-branches) |
| `Ultrareview clones <owner>/<repo> in the cloud with the GitHub account connected to your Claude account, and none is connected` | [Command-line errors](#no-github-account-is-connected-to-your-claude-account) |
| `Your connected GitHub account can't see <owner>/<repo>` | [Command-line errors](#your-connected-github-account-cant-see-the-repository) |
| `The GitHub App preflight failed transiently (network or service hiccup) — retry in a moment to start from GitHub instead` | [Command-line errors](#the-github-app-preflight-failed-transiently) |
| `Not uploading this working tree` dengan `the upload cannot follow that setting` | [Command-line errors](#the-repository-upload-cant-follow-a-git-setting) |
| `GitHub isn't connected to your Claude account, so this repository can't be cloned in the cloud` | [Command-line errors](#github-isnt-connected-to-your-claude-account) |
| `Your GitHub organization has an IP allowlist that is blocking Claude` | [Command-line errors](#a-github-organization-policy-is-blocking-claude) |
| `Your GitHub organization requires single sign-on` | [Command-line errors](#a-github-organization-policy-is-blocking-claude) |
| `Your GitHub organization's identity provider (Microsoft Entra ID) has a Conditional Access policy that is blocking Claude` | [Command-line errors](#a-github-organization-policy-is-blocking-claude) |
| `Single sign-on authorization needed` | [Command-line errors](#single-sign-on-authorization-needed) |
| `Failed to resume the conversation` | [Command-line errors](#failed-to-resume-the-conversation) |
| `No conversation found with session ID: <session-id>` | [Command-line errors](#no-conversation-found-with-the-session-id) |
| `Windows reported an error (EBADF) when Claude Code read this session's transcript file` | [Command-line errors](#windows-reported-an-error-ebadf) |
| `Cannot switch renderers in this session` | [Command-line errors](#cannot-switch-renderers-in-this-session) |
| `Cannot switch renderers while work is running in the background` | [Command-line errors](#cannot-switch-renderers-in-this-session) |
| `Claude Code couldn't restart` | [Command-line errors](#claude-code-couldnt-restart) |
| `Couldn't open Claude Desktop` | [Command-line errors](#couldnt-open-claude-desktop) |
| `Failed to open Claude Desktop. Please try opening it manually.` | [Command-line errors](#couldnt-open-claude-desktop) |
| `Couldn't read your Zed keymap` / `Couldn't back up your Zed keymap` / `Couldn't update your Zed keymap` | [Command-line errors](#terminal-setup-left-your-zed-keymap-unchanged) |
| `Your Zed keymap isn't a readable list of keybindings` | [Command-line errors](#terminal-setup-left-your-zed-keymap-unchanged) |
| `Skill usage reports are not available on this connection.` | [Command-line errors](#skill-usage-reports-are-not-available-on-this-connection) |
| `Custom output styles can't be selected over Remote Control or from a relayed message` | [Command-line errors](#custom-output-styles-cant-be-selected-over-remote-control) |
| `Output styles are saved to local settings (.claude/settings.local.json), which this session doesn't load` | [Command-line errors](#output-styles-are-saved-to-local-settings-which-this-session-doesnt-load) |
| `/recap only runs when you ask for it yourself in this session` | [Command-line errors](#recap-only-runs-when-you-ask-for-it-yourself) |
| `` `plugin eval` is currently in early access `` / `` `plugin eval` is currently unavailable `` | [Plugin errors](#plugin-eval-is-currently-in-early-access) |
| `cannot be evaluated where sessions load it` | [Test plugins with evals](/docs/id/plugin-evals#cannot-be-evaluated-where-sessions-load-it) |
| `Marketplace "<name>" is registered from an untrusted source` | [Plugin errors](#marketplace-is-registered-from-an-untrusted-source) |
| `Claude Code refuses the marketplace name "<name>"` | [Plugin errors](#claude-code-refuses-the-marketplace-name) |
| `Marketplace name impersonates an official Anthropic/Claude marketplace` | [Plugin errors](#claude-code-refuses-the-marketplace-name) |
| `Marketplace "<name>" is already added from a different source` | [Plugin errors](#marketplace-is-already-added-from-a-different-source) |
| `"<name>" is another spelling of "<reserved>", a reserved marketplace name` | [Plugin errors](#marketplace-name-is-another-spelling-of-a-reserved-name) |
| `Cannot add marketplace "<name>": Claude Code cannot install plugins from a marketplace with this name` | [Plugin troubleshooting](/docs/id/plugins/troubleshooting#cannot-install-plugins-from-a-marketplace-with-this-name) |
| `Cannot add marketplace "<name>": Claude Code reserves this name and cannot register a marketplace under it` | [Plugin troubleshooting](/docs/id/plugins/troubleshooting#claude-code-reserves-this-name) |
| `Marketplace "<name>" is added but ignored` | [Plugin troubleshooting](/docs/id/plugins/troubleshooting#marketplace-is-added-but-ignored) |
| `Marketplace "<name>" is registered but was refused (see the debug log)` | [Plugin troubleshooting](/docs/id/plugins/troubleshooting#marketplace-is-added-but-ignored) |
| `references ${user_config.*} in a shell-form command` | [Plugin errors](#plugin-command-references-user-config) |
| `Monitor "<name>" from plugin <plugin> references ${user_config.*} in its command` | [Plugin errors](#plugin-command-references-user-config) |
| `headersHelper for MCP server '<name>' references ${user_config.*}` | [Plugin errors](#plugin-command-references-user-config) |
| `Plugin archive integrity check failed` | [Plugin errors](#plugin-archive-integrity-check-failed) |
| `An npm plugin source must name a registry package` | [Plugin troubleshooting](/docs/id/plugins/troubleshooting#an-npm-plugin-source-must-name-a-registry-package) |
| `The packages it lists are not installed` / `The packages it lists were not installed, because` | [Plugin troubleshooting](/docs/id/plugins/troubleshooting#the-packages-it-lists-are-not-installed) |
| `does not load (...), so Claude Code ignores the whole file` | [Plugin troubleshooting](/docs/id/plugins/troubleshooting#does-not-load-so-claude-code-ignores-the-whole-file) |
| `path escapes plugin directory` | [Plugin errors](#path-escapes-plugin-directory) |
| `path could not be checked` | [Plugin errors](#path-could-not-be-checked) |
| `its marketplace entry path does not stay inside the marketplace directory` | [Plugin errors](#marketplace-entry-path-does-not-stay-inside-the-marketplace-directory) |
| `Plugin source path refused` | [Plugin errors](#marketplace-entry-path-does-not-stay-inside-the-marketplace-directory) |
| `Failed to load marketplace configuration` | [Plugin errors](#failed-to-load-marketplace-configuration) |
| `Marketplace configuration file is corrupted` | [Plugin errors](#failed-to-load-marketplace-configuration) |
| `Plugin "<name>@synced" is required by your organization and can't be disabled here` | [Plugin errors](#plugin-is-required-by-your-organization) |
| `"<plugin>" was not uninstalled: it is still switched on in <file>` | [Plugin errors](#plugin-was-not-uninstalled) |
| `"<plugin>" was not uninstalled: <file> is there and could not be read` | [Plugin errors](#plugin-was-not-uninstalled) |
| `Plugin "<plugin>" was not uninstalled: installed_plugins.json` | [Plugin troubleshooting](/docs/id/plugins/troubleshooting#installed-plugins-json-holds-a-record-this-version-cannot-read) |
| `Plugin directory does not exist: <path>` | [Plugin troubleshooting](/docs/id/plugins/troubleshooting#plugin-directory-does-not-exist) |
| `Error: No such tool available: <tool name>` | [Tool errors](#no-such-tool-available) |
| `would be spawned with zero tools — refusing` | [Tool errors](#agent-would-be-spawned-with-zero-tools) |
| `File is covered by a Read deny rule in your permission settings` | [Tool errors](#file-is-covered-by-a-read-deny-rule) |
| `cannot contain null bytes (\0)` | [Tool errors](#path-cannot-contain-null-bytes) |
| `Path contains null bytes` | [Tool errors](#path-cannot-contain-null-bytes) |
| `subagent_type is required: the general-purpose agent is not available in this session` | [Tool errors](#subagent-type-is-required) |
| `Error: this write left the memory index at MEMORY.md at ..., over its ... read limit` | [Tool errors](#memory-index-is-over-its-read-limit) |
| `pkill: refusing to run` | [Tool errors](#pkill-pattern-matches-the-claude-code-process) |
| `Failed to write to <name>'s inbox — nothing was sent` | [Tool errors](#failed-to-write-to-a-teammate-inbox) |
| `Failed to write the plan approval request to the lead's inbox — plan not submitted` | [Tool errors](#failed-to-write-to-a-teammate-inbox) |
| `Its agent definition was not restored: the folder its definition file came from is not trusted` | [Tool errors](#teammate-agent-definition-not-restored) |
| `Message too large for cross-session delivery` | [Tool errors](#message-too-large-for-cross-session-delivery) |
| `Too many messages to this session just now` | [Tool errors](#too-many-messages-to-this-session-just-now) |
| `Cross-session message was dropped at the recipient session's inbox` | [Tool errors](#cross-session-message-dropped-at-the-inbox) |
| `Refusing to send: reply target is a symlink` / `Refusing to send: cannot vet reply target` | [Tool errors](#refusing-to-send-a-cross-session-message) |
| `Refusing to read <path>: its symlink resolution changed after permission was checked (<reason>)` / `Refusing to search <path>: its symlink resolution changed after permission was checked` | [Tool errors](#refusing-after-a-symlink-changed) |
| `Refusing to write <path>: its parent-directory symlink resolution changed after permission was checked` / `Refusing to write <path>: it is a symbolic link. Write to the link's target path instead` | [Tool errors](#refusing-after-a-symlink-changed) |
| `Refusing to write through symlink: <path>` / `Refusing to write into symlinked directory: <path>` | [Tool errors](#refusing-after-a-symlink-changed) |
| `Refusing to write <path>: where it leads on disk could not be determined` / `Refusing to read <path>: where it leads on disk could not be determined` | [Tool errors](#refusing-after-a-symlink-changed) |
| `Refusing to search <path>: a path one of its Read deny rules is written through changed while the search was being prepared` / `Refusing to search <path>: it could not be opened` | [Tool errors](#refusing-after-a-symlink-changed) |
| `its permission check expired before it ran (too many concurrent file operations)` / `ripgrep was found only by name on PATH` | [Tool errors](#refusing-after-a-symlink-changed) |
| `task output swap refused (tasks dir moved or linked)` | [Tool errors](#task-output-swap-refused) |
| `Command killed: its output file was replaced or could no longer be verified` | [Tool errors](#task-output-swap-refused) |
| `Your disk quota is full on the filesystem with Claude Code's temp directory <dir> (EDQUOT)` | [Tool errors](#disk-quota-or-temp-filesystem-is-full) |
| `The filesystem with Claude Code's temp directory <dir>, or your disk quota on it, is full (ENOSPC)` | [Tool errors](#disk-quota-or-temp-filesystem-is-full) |
| `Command output was lost: the temp filesystem at <dir> is full` / `is out of inodes` | [Tool errors](#disk-quota-or-temp-filesystem-is-full) |
| `File is not valid UTF-8. It may use a legacy encoding such as Windows-1252, Shift-JIS or GBK, or be binary` | [Tool errors](#file-is-not-valid-utf-8) |
| `the source file is not valid UTF-8 text` / `the source file is not valid UTF-16 text` | [Tool errors](#the-source-file-is-not-valid-utf-8-text) |
| `the source file has the replacement character U+FFFD` | [Tool errors](#the-source-file-is-not-valid-utf-8-text) |
| `Not published: that file is on a network share` | [Tool errors](#not-published-that-file-is-on-a-network-share) |
| `Reading a local file from outside this session's connected folders, or through a link, needs the approval card` | [Tool errors](#reading-a-local-file-from-outside-the-connected-folders) |
| `cannot read file_path (...) — the file could not be examined, and no one can answer the approval card` | [Tool errors](#reading-a-local-file-from-outside-the-connected-folders) |
| `WebFetch cannot fetch localhost or other hostnames without a dot` | [Tool errors](#webfetch-cannot-fetch-localhost) |
| `The safety check for domain ... is rate-limited` | [Tool errors](#webfetch-domain-safety-check-failed) |
| `The safety check for domain ... is temporarily rate-limited` | [Tool errors](#webfetch-domain-safety-check-failed) |
| `Unable to verify if domain ... is safe to fetch` | [Tool errors](#webfetch-domain-safety-check-failed) |
| `Can't open MCP settings while no terminal is attached to this background session` | [Background session errors](#commands-refused-in-a-background-session) |
| `Can't open MCP settings in a background session` | [Background session errors](#commands-refused-in-a-background-session) |
| `blocked because the path is spelled in a form that cannot be safely resolved` | [Background session errors](#write-or-command-blocked-because-the-path-cannot-be-safely-resolved) |
| `blocked because the path is network-shaped` | [Background session errors](#write-or-command-blocked-because-the-path-names-a-network-location) |
| `is isolated in the worktree <path>, but this command <reason>. Refusing to run it` | [Background session errors](#command-blocked-by-the-worktree-isolation-checks) |
| `too complex to verify that it stays inside the worktree` | [Background session errors](#command-blocked-by-the-worktree-isolation-checks) |
| `This session has no saved transcript` | [Background session errors](#this-session-has-no-saved-transcript) |
| `Can't open — this session is running in another terminal` | [Background session errors](#this-session-is-running-in-another-terminal) |
| `This conversation is already open in another running Claude session` | [Background session errors](#this-session-is-running-in-another-terminal) |
| `This session's saved conversation is no longer on disk` | [Background session errors](#this-sessions-saved-conversation-is-no-longer-on-disk) |
| `kept <id> — its worktree is still at <path>` | [Background session errors](#worktree-has-commits-that-are-not-pushed-anywhere) |
| `kept <id> — <n> unpushed commits on <branch>` | [Background session errors](#worktree-has-commits-that-are-not-pushed-anywhere) |
| `kept <id> — worktree has commits that are not pushed anywhere` | [Background session errors](#worktree-has-commits-that-are-not-pushed-anywhere) |
| `terminal host process died — press Enter to restart` / `This session's terminal host process died` | [Background session errors](#terminal-host-process-died) |
| `Session isn't responding` / `Press enter again to restart this session — it isn't responding` | [Background session errors](#session-isnt-responding) |
| `Session <id> was stopped while the respawn was in flight` | [Background session errors](#session-was-stopped-while-the-respawn-was-in-flight) |
| `This session was running agent '<name>', which is no longer available` | [Background session errors](#session-agent-no-longer-available) |
| `This session restarted <time> after its next /loop wakeup was due, so that wakeup will not fire` | [Background session errors](#restarted-after-its-next-loop-wakeup-was-due) |
| `CLAUDE_CODE_PROCESS_WRAPPER: launcher ...` | [Background session errors](#claude_code_process_wrapper-launcher-errors) |
| `EUNKNOWN: unknown error, uv_spawn` | [Background session errors](#eunknown-when-starting-a-background-session) |
| `EACCES: permission denied, posix_spawn` | [Background session errors](#eacces-when-starting-a-background-session) |
| `exited before it became reachable` | [Background session errors](#background-service-exited-before-it-became-reachable) |
| `Couldn't start a background session (working directory no longer exists or is not accessible: ...)` | [Background session errors](#working-directory-no-longer-exists-when-starting-a-background-session) |
| `Workspace not trusted.` saat memulai atau memulai ulang sesi latar belakang | [Background session errors](#workspace-not-trusted-when-dispatching-a-background-session) |
| `Claude Code is being updated by npm on this machine (still not runnable after 2 min, ...)` | [Background session errors](#eacces-when-starting-a-background-session) |
| `Claude Code process exited with code N` | [Wrapper and IDE errors](#claude-code-process-exited-with-code-n) |
| `The connection to Claude Code ended before this message completed` | [Wrapper and IDE errors](#the-connection-to-claude-code-ended-before-this-message-completed) |
| `Could not locate the Claude CLI on PATH` | [Wrapper and IDE errors](#could-not-locate-the-claude-cli-on-path) |
| `Restored the code, but skipped N files` | [Rewind warnings and errors](#restored-the-code-but-skipped-files) |
| `No files were restored: N files failed (backup missing, or the file could not be updated)` | [Rewind warnings and errors](#no-files-were-restored) |
| `Transcript writes are failing (...)` | [Session saving warnings](#transcript-writes-are-failing) |
| `Transcript saving is off — CLAUDE_CODE_SKIP_PROMPT_HISTORY is set` | [Session saving warnings](#transcript-saving-is-off-skip-prompt-history) |
| `Transcript saving is off — inherited CLAUDE_CODE_CHILD_SESSION marker` | [Session saving warnings](#transcript-saving-is-off-child-session-marker) |
| `Claude Code's fullscreen renderer didn't finish starting last time on this machine` / `Claude Code's fullscreen renderer has repeatedly failed to start on this machine` | [Fullscreen rendering](/docs/id/fullscreen#fullscreen-renderer-didnt-finish-starting) |
| `Claude Code exited after an unrecoverable interface error (...)` | [Configuration warnings](#exited-after-an-unrecoverable-interface-error) |
| `Agent descriptions are over the 15.0k-token limit` | [Configuration warnings](#agent-descriptions-are-over-the-15000-token-limit) |
| `hook needs quotes around a path with a space` | [Configuration warnings](#hook-needs-quotes-around-a-path-with-a-space) |
| `Instruction file not loaded` | [Configuration warnings](#instruction-file-not-loaded) |
| `Not loaded: rename <path>, then restart — its name uses "<name>", a name reserved for the skills synced from your claude.ai account` | [Configuration warnings](#a-skill-command-or-workflow-wasnt-loaded-because-its-name-is-reserved) |
| `N skill or command names refused: run with --debug to see which ([names]), rename, then restart` | [Configuration warnings](#skill-or-command-name-refused) |
| `Ignoring N permissions.allow entries from ... this workspace has not been trusted` | [Configuration warnings](#workspace-has-not-been-trusted) |
| `is a network path, which cannot be added as a working directory` | [Configuration warnings](#working-directory-is-a-network-path) |
| `Remote managed settings failed to load (<cause>)` | [Configuration warnings](#remote-managed-settings-failed-to-load) |
| `Managed settings were not approved; exiting without applying them.` | [Configuration warnings](#managed-settings-were-not-approved) |
| `Claude Code can't start: your organization's managed settings block the default model` / `Claude Code can't start: your organization allows only the models listed in "availableModels"` | [Configuration warnings](#managed-settings-block-the-default-model) |
| `Your organization's managed settings allow Claude Code to use: <providers>` | [Configuration warnings](#managed-settings-dont-allow-this-api-provider) |
| `Your organization's managed settings allow Claude Code to use no API provider at all` | [Configuration warnings](#managed-settings-dont-allow-this-api-provider) |
| `MCP server <name> is blocked by enterprise managed policy` | [Configuration warnings](#mcp-server-is-blocked-by-enterprise-managed-policy) |
| `"<name>" is a reserved MCP server name and was not loaded` | [Configuration warnings](#mcp-server-name-is-reserved) |
| `Managed settings document could not be parsed as a JSON object; none of its settings are in effect. Fix or remove it.` | [Configuration warnings](#managed-settings-document-could-not-be-parsed) |
| `Managed settings drop-in directory could not be read` | [Configuration warnings](#managed-settings-document-could-not-be-parsed) |
| `Unable to read managed policy settings` | [Configuration warnings](#unable-to-read-managed-policy-settings) |
| `Managed settings contain invalid entries, including PreToolUse/PermissionRequest hooks that are NOT loaded; fix or remove each entry:` | [Configuration warnings](#managed-settings-hooks-not-loaded) |
| `otelHeadersHelper failed; telemetry is not being exported. See /status: ...` | [Configuration warnings](#otelheadershelper-failed) |
| `"crossSessionInbound" must be one of "accept", "hold", "refuse"` | [Configuration warnings](#crosssessioninbound-must-be-one-of-accept-hold-refuse) |
| `API Error: ANTHROPIC_FOUNDRY_RESOURCE must be a Foundry resource name` | [Configuration warnings](#anthropic-foundry-resource-must-be-a-foundry-resource-name) |
| `headersHelper not run — this workspace has no persisted trust` | [Configuration warnings](#headershelper-not-run) |
| `Invalid permission rule "..." was skipped: Malformed Tool(content) rule` | [Configuration warnings](#malformed-tool-content-rule) |
| `... is not matched by file permission checks` | [Configuration warnings](#is-not-matched-by-file-permission-checks) |
| `... has a wildcard before the rest of the command` | [Configuration warnings](#has-a-wildcard-before-the-rest-of-the-command) |
| `Denying Bash also turns off the PowerShell tool, so Claude has neither` | [Configuration warnings](#denying-bash-also-turns-off-the-powershell-tool) |
| `CLAUDE_CODE_DISABLE_1M_CONTEXT is set, but the 200K limit isn't enforced` | [Configuration warnings](#the-200k-limit-isnt-enforced) |
| `Model "<model>" isn't recognized · context assumed to be 200k tokens` | [Correct the window for a gateway or custom model ID](/docs/id/model-config#correct-the-window-for-a-gateway-or-custom-model-id) |
| `Claude Code doesn't recognize the model "<model>", so it assumes a context window of 200k tokens` | [Correct the window for a gateway or custom model ID](/docs/id/model-config#correct-the-window-for-a-gateway-or-custom-model-id) |
| `[claude-code:unrecognized_model]` | [Configuration warnings](#unrecognized-model-id-on-a-request) |
| `is ignored — managed settings set allowManagedReadPathsOnly` / `is ignored — managed settings set allowManagedDomainsOnly` | [Configuration warnings](#sandbox-allow-entries-are-ignored-under-a-managed-lock) |
| `Stale sandbox mask files left by a killed session` | [Configuration warnings](#stale-sandbox-mask-files-left-by-a-killed-session) |
| Respons tampak berkualitas lebih rendah dari biasanya | [Response quality](#responses-seem-lower-quality-than-usual) |

<h2 id="automatic-retries">
  Retry otomatis
</h2>

Claude Code mencoba ulang kegagalan transien hingga 10 kali dengan exponential backoff sebelum menampilkan kesalahan kepada Anda. Claude Code tidak selalu mencoba ulang kegagalan yang tiba di tengah respons Claude. Ketika Anda melihat salah satu kesalahan di halaman ini, Claude Code telah melakukan retry apa pun yang berlaku untuk kegagalan tersebut.

Claude Code mencoba ulang kegagalan ini:

* Server errors, overloaded responses, dan request timeouts yang tiba sebelum respons Claude mulai streaming.
* Server error atau overloaded response yang tiba setelah Claude selesai berpikir tetapi sebelum memulai teks atau panggilan tool apa pun. Claude Code mencoba ulang server error pada titik itu hingga dua kali. Sebelum v2.1.284, Claude Code mengakhiri giliran dengan kesalahan tersebut pada titik itu.
* Dropped connections. Ketika koneksi terputus di tengah permintaan sebelum Claude menyelesaikan bagian mana pun dari responsnya, termasuk pemikirannya, Claude Code mengeluarkan kembali permintaan dengan backoff yang sama dan giliran berlanjut, bahkan jika beberapa teks telah mulai streaming. Ketika terputus setelah Claude selesai berpikir tetapi sebelum memulai teks atau panggilan tool apa pun, Claude Code malah mengeluarkan kembali permintaan hingga dua kali dengan cepat, dan mengakhiri giliran dengan `Connection lost before a response was produced` jika koneksi terus terputus pada titik itu.
* Koneksi yang Claude Code deteksi rusak karena komputer Anda tidur di tengah permintaan. Claude Code menghitungnya sebagai dropped connection sesuai aturan di atas; setelah label retry menyebutkan alasan spesifik, dibaca `Connection lost while your computer was asleep`, dan jika giliran berakhir setelah Claude selesai berpikir tetapi sebelum teks atau panggilan tool apa pun, pesan berbunyi `Your computer went to sleep before a response was produced`.
* Stalled response stream, ketika response headers telah tiba tetapi tidak ada respons Claude yang tiba, atau ketika Claude selesai berpikir tetapi belum memulai teks atau panggilan tool apa pun: Claude Code membatalkan koneksi yang macet dan melakukan streaming ulang permintaan paling banyak sekali. Jika respons macet untuk kedua kalinya setelah Claude selesai berpikir tetapi sebelum teks atau panggilan tool apa pun, Claude Code mengakhiri giliran dengan `The response stalled before a response was produced`.
* Streaming request yang API tidak pernah jawab dengan response headers, pada koneksi di mana [first-byte deadline berjalan](/docs/id/network-config#streaming-idle-watchdogs): Claude Code membatalkannya pada deadline dan mengirimnya kembali paling banyak sekali per model request, dalam anggaran retry, kemudian mengakhiri giliran dengan [No response from API](#no-response-from-api) jika percobaan itu juga tidak dijawab. Pada koneksi lain, permintaan menunggu `API_TIMEOUT_MS`. Ketika Anda menetapkan `CLAUDE_CODE_RETRY_WATCHDOG`, batas satu retry tidak berlaku.
* Respons streaming yang dihentikan oleh filter konten output API sebelum Claude selesai berpikir atau memulai teks atau panggilan tool apa pun. Claude Code mengirim kembali permintaan sekali, dalam anggaran retry, dan menampilkan [Output blocked by content filtering policy](#output-blocked-by-content-filtering-policy) jika filter juga menghentikan respons kedua.
* Temporary 429 throttles, tetapi bukan `429` spend-limit gateway, yang bukan throttle; lihat [Spend limit reached](#spend-limit-reached).
  * Ketika Anda masuk dengan langganan claude.ai, ini mencakup 429 throttles yang tidak membawa header kuota paket Anda. Sebelum v2.1.199, Claude Code hanya mencoba ulang throttles tersebut untuk kunci API dan Enterprise sign-ins.
* Permintaan ditolak karena input plus `max_tokens` melebihi context limit. Mengirimnya kembali tanpa perubahan akan gagal dengan cara yang sama, jadi Claude Code mencoba ulang dengan `max_tokens` yang dikurangi, dan berhenti mencoba ulang dan melakukan compact sebagai gantinya dalam dua kasus:
  * Ketika tidak ada pengurangan yang dapat muat, misalnya ketika percakapan itu sendiri hampir mengisi context window.
  * Ketika retry tidak dapat menyusutkan `max_tokens` lebih jauh. Sebelum v2.1.218, Claude Code dapat mengirim kembali permintaan yang dikurangi yang masih tidak muat, seperti ketika extended thinking budget melebihi context yang tersisa, sampai anggaran retry habis.
* Expired atau missing Google Cloud credential pada [Google Cloud's Agent Platform](/docs/id/google-vertex-ai), atau kredensial AWS yang gagal dimuat di mesin Anda. Claude Code membuang kredensial yang di-cache dan mencoba ulang hingga dua kali, kemudian melaporkan kesalahan sehingga Anda dapat re-authenticate segera, seperti dijelaskan di bawah [Could not load AWS or Google Cloud credentials](#could-not-load-aws-or-google-cloud-credentials). Sebelum v2.1.228, Claude Code mencoba ulang failing Google Cloud credential melalui anggaran retry penuh sebelum menampilkan kesalahan.
* `401` atau `403` dari Anthropic API, secara langsung atau melalui [LLM gateway](/docs/id/llm-gateway), sementara script [`apiKeyHelper`](/docs/id/settings-reference#apikeyhelper) menyediakan kredensial. Claude Code menjalankan kembali script dan mencoba ulang dengan output segar-nya, dalam anggaran retry penuh. Ketika script itu sendiri gagal pada re-run, Claude Code menampilkan [Your apiKeyHelper script is failing](#your-apikeyhelper-script-is-failing) sebagai gantinya.

Sebelum v2.1.227, `Connection lost before a response was produced` berbunyi `Connection closed while thinking, before producing a response` dan `The response stalled before a response was produced` berbunyi `Response stalled while thinking, before producing a response`.

Claude Code tidak mencoba ulang kegagalan ini:

* TLS certificate validation failure, seperti TLS-inspecting proxy, missing `NODE_EXTRA_CA_CERTS` bundle, atau expired certificate. Claude Code melaporkan kesalahan pada percobaan pertama, sehingga Anda dapat memperbaiki setup certificate dengan segera; lihat [SSL certificate errors](#ssl-certificate-errors). Claude Code masih mencoba ulang transient TLS conditions seperti handshake timeout. Sebelum v2.1.199, Claude Code mencoba ulang certificate failures melalui anggaran retry penuh sebelum menampilkan kesalahan.
* Server error, dropped connection, atau stalled stream yang tiba setelah Claude menyelesaikan blok teks atau panggilan tool, atau telah memulai satu setelah menyelesaikan pemikirannya, tetapi sebelum menyelesaikan respons. Claude Code tidak menjalankan kembali permintaan, karena itu dapat mengeksekusi panggilan tool yang sama dua kali. Ini menyimpan apa yang Claude selesaikan, menjalankan panggilan tool apa pun yang Claude selesaikan, dan melanjutkan giliran dari hasil mereka. Untuk apa yang Anda lihat dalam sesi interaktif dan non-interaktif, baca [The response above may be incomplete](#the-response-above-may-be-incomplete). Sebelum v2.1.199, Claude Code membuang output parsial dan melaporkan seluruh giliran sebagai kesalahan ketika server error tiba di tengah-tengah stream.
* Kegagalan yang tiba setelah Claude menyelesaikan respons: tidak ada yang perlu dicoba ulang, jadi Claude Code menyimpan respons lengkap dan mengakhiri giliran secara normal.
* [Amazon Bedrock streaming response dengan unexpected content-type](#bedrock-streaming-response-has-an-unexpected-content-type), karena gateway atau proxy yang menulis ulang respons akan menulis ulang retry dengan cara yang sama. Memerlukan Claude Code v2.1.208 atau lebih baru.
* Non-streaming retry dari failed streaming request yang mendapat success status tetapi [no Claude API message in the body](#api-returned-an-empty-or-malformed-response). Claude Code mengakhiri giliran dengan kesalahan itu.
* Permintaan yang policy check organisasi Anda tolak, yang muncul sebagai baris `API Error:` yang membawa pesan penolakan. Administrator organisasi Anda menyiapkan check dengan [Inference hooks](https://platform.claude.com/docs/en/manage-claude/inference-hooks), fitur Claude Enterprise, dan pesan berakhir dengan instruksi yang mereka konfigurasi, atau secara default memberi tahu Anda untuk menghubungi mereka. Claude Code tidak mengirim kembali permintaan yang ditolak ke model yang sama atau ke [fallback model](/docs/id/model-config#fallback-model-chains), karena penolakan adalah tentang konten permintaan daripada model. Sebelum v2.1.239, Claude Code dapat mengirim kembali permintaan yang ditolak, tanpa streaming atau pada fallback model yang dikonfigurasi, sebelum menampilkan penolakan kepada Anda.

<h3 id="what-you-see-while-claude-code-retries-or-waits">
  Apa yang Anda lihat saat Claude Code mencoba ulang atau menunggu
</h3>

Saat mencoba ulang, spinner menampilkan countdown `Retrying in Ns · attempt x/y` setelah label kesalahan. Label menyebutkan alasan spesifik dari percobaan pertama untuk kegagalan yang dapat Anda tindaklanjuti segera: jaringan tidak aktif, TLS handshake gagal, atau Anda mencapai rate limit. Untuk kesalahan lain dibaca `API error` pada awalnya. Mulai v2.1.198 beralih ke alasan spesifik dari percobaan ketiga, atau pada percobaan terakhir ketika `CLAUDE_CODE_MAX_RETRIES` memungkinkan lebih sedikit dari tiga; versi sebelumnya beralih hanya pada percobaan terakhir.

Mulai v2.1.198, spinner tip biasa ditekan selama retry. Setelah alasan kesalahan terungkap, jika kegagalan adalah 529 overload baris di bawah countdown juga menyebutkan di mana memeriksa status layanan: `status.claude.com` pada Anthropic API, atau penyedia atau host gateway yang dinamai dalam pesan pada konfigurasi lain.

Jika tidak ada data yang tiba pada response stream selama 20 detik sementara permintaan masih tertunda, spinner menampilkan `Waiting for API response · will retry in … · check your network` sebelum retry apa pun telah dimulai. Permintaan belum gagal: countdown berjalan ke titik di mana Claude Code membatalkan koneksi yang macet. Setelah pembatalan, apa yang Anda lihat tergantung pada seberapa jauh respons telah sampai:

* Sebelum Claude menyelesaikan blok teks atau panggilan tool, atau memulai satu setelah menyelesaikan pemikirannya, Claude Code mencoba ulang permintaan atau mengakhiri giliran dengan kesalahan. [Automatic retries](#automatic-retries) mengatakan stalls mana yang dicoba ulang dan berapa kali.
* Setelah Claude menyelesaikan blok teks atau panggilan tool, atau memulai satu setelah menyelesaikan pemikirannya, tetapi sebelum Claude menyelesaikan respons, Claude Code menyimpan apa yang Claude selesaikan, melanjutkan giliran dari panggilan tool apa pun yang Claude selesaikan, dan menampilkan [The response above may be incomplete](#the-response-above-may-be-incomplete). Dalam sesi non-interaktif, dan untuk respons subagent dalam sesi apa pun, Claude Code mungkin pertama-tama meminta Claude untuk melanjutkan respons; entry itu mengatakan kapan itu terjadi dan kapan Anda masih melihat pemberitahuan di sana.
* Setelah Claude menyelesaikan respons, Claude Code mengakhiri giliran secara normal.

Banner menghapus dirinya sendiri setelah data dilanjutkan atau retry berhasil. Jika muncul kembali pada setiap percobaan, perlakukan sebagai [network issue](#unable-to-connect-to-api). Sebelum v2.1.185, banner muncul setelah 10 detik dengan wording berbeda.

Saat Claude berkonsultasi dengan [advisor](/docs/id/advisor), banner muncul setelah 90 detik tanpa data bukan 20, karena review advisor yang panjang dapat mengirim tidak ada selama lebih dari 20 detik. Sebelum v2.1.214, threshold 20-detik diterapkan selama advisor calls juga, jadi banner muncul selama advisor reviews bahkan ketika tidak ada yang salah.

<h3 id="tune-retry-behavior">
  Sesuaikan perilaku retry
</h3>

Anda dapat menyesuaikan perilaku retry dengan environment variable ini:

| Variable | Default | Effect |
| :- | :- | :- |
| [`CLAUDE_CODE_MAX_RETRIES`](/docs/id/env-vars) | 10 | Jumlah percobaan retry. Dibatasi pada 15 mulai v2.1.186; mulai v2.1.199 `CLAUDE_CODE_RETRY_WATCHDOG` menaikkan default dan menghapus batas. Turunkan untuk menampilkan kegagalan lebih cepat dalam script. |
| [`CLAUDE_CODE_RETRY_WATCHDOG`](/docs/id/env-vars) | unset | Atur ke `1` dalam sesi tanpa pengawasan seperti CI jobs untuk mencoba ulang `429` dan `529` capacity errors tanpa batas bukan gagal setelah `CLAUDE_CODE_MAX_RETRIES` percobaan. Claude Code gagal sekaligus ketika standard-speed request mendapat `429` yang melaporkan spend limit atau kredit penggunaan yang habis, bahkan satu dari [gateway spend cap](#spend-limit-reached) yang reset pada jadwal. Sebelum v2.1.239, watchdog mencoba ulang ini tanpa batas. Untuk fast mode requests, lihat [Handle rate limits](/docs/id/fast-mode#handle-rate-limits). Pada v2.1.199 atau lebih baru itu juga menaikkan default retry count untuk transient errors lainnya, seperti server errors, timeouts, dan dropped connections, menjadi 300, kira-kira tiga jam backoff, dan menghapus batas 15 pada `CLAUDE_CODE_MAX_RETRIES` jika Anda menetapkan variabel itu secara eksplisit. |
| [`CLAUDE_CODE_RETRY_WATCHDOG_MAX_WAIT_MS`](/docs/id/env-vars) | unset | Waktu maksimum dalam milidetik yang dihabiskan setiap permintaan API untuk menunggu kesalahan `429` dan `529` ketika `CLAUDE_CODE_RETRY_WATCHDOG` ditetapkan. Ketika tidak ditetapkan, waktu tunggunya tidak terbatas. Memerlukan Claude Code v2.1.295 atau lebih baru. |
| [`CLAUDE_CODE_OVERLOADED_RETRY_BASE_DELAY_MS`](/docs/id/env-vars) | 500 | Penundaan awal dalam milidetik dari backoff di antara retry permintaan yang ditolak API dengan kesalahan `529` overloaded. Naikkan, hingga 32000, untuk menyebarkan retry dalam rentang waktu yang lebih panjang ketika API sedang mencapai kapasitas. Tidak berpengaruh ketika `CLAUDE_CODE_RETRY_WATCHDOG` diatur ke `1`, atau ketika permintaan yang ditolak dikirim dalam [fast mode](/docs/id/fast-mode#handle-rate-limits). Memerlukan Claude Code v2.1.292 atau lebih baru. |
| [`CLAUDE_CODE_OVERLOADED_RETRY_MAX_DELAY_MS`](/docs/id/env-vars) | 32000 | Batas atas dalam milidetik untuk backoff di antara retry permintaan yang ditolak API dengan kesalahan `529` overloaded. Naikkan, hingga 64000, agar jarak antar retry berikutnya terus bertambah ketika API sedang mencapai kapasitas. Tidak berpengaruh ketika `CLAUDE_CODE_RETRY_WATCHDOG` diatur ke `1`, atau ketika permintaan yang ditolak dikirim dalam [fast mode](/docs/id/fast-mode#handle-rate-limits). Memerlukan Claude Code v2.1.296 atau lebih baru. |
| [`API_TIMEOUT_MS`](/docs/id/env-vars) | 600000 | Per-request timeout dalam milliseconds. Naikkan untuk jaringan lambat atau proxy. Ini juga membatasi berapa lama Claude Code menunggu response headers, dijelaskan dalam [No response from API](#no-response-from-api). |
| [`CLAUDE_CODE_NONSTREAMING_TIMEOUT_RETRIES`](/docs/id/env-vars) | unset | Batas pengiriman ulang [permintaan non-streaming](#streaming-response-ended-before-any-complete-data-was-received) yang mengalami timeout. Saat batas tercapai, permintaan gagal. Respons dari Claude yang membutuhkan waktu lebih lama dari timeout untuk dihasilkan akan mengalami timeout lagi pada setiap pengiriman ulang, jadi tetapkan angka rendah seperti `0` agar gagal lebih cepat. Setiap percobaan non-streaming mengalami timeout setelah 300 detik dalam sesi lokal, atau setelah `API_TIMEOUT_MS` ketika Anda menetapkan nilai positif. Memerlukan Claude Code v2.1.285 atau lebih baru. |
| [`CLAUDE_STREAM_FIRST_BYTE_TIMEOUT_MS`](/docs/id/env-vars) | unset | Deadline dalam milliseconds untuk first response byte dari streaming request. Memerlukan Claude Code v2.1.242 atau lebih baru. Untuk bagaimana Claude Code memilih deadline ketika ini unset, lihat [No response from API](#no-response-from-api). |

<h2 id="server-errors">
  Kesalahan server
</h2>

Sebagian besar kesalahan ini berasal dari penyedia inferensi: layanan Anthropic di Anthropic API, dan layanan di balik endpoint penyedia tersebut di Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry, atau gateway khusus. [Auto mode tidak dapat menentukan keamanan suatu tindakan](#auto-mode-cannot-determine-the-safety-of-an-action) dan [Agent dihentikan lebih awal karena kesalahan API](#agent-terminated-early-due-to-an-api-error) juga mencakup penyebab di sisi Anda, seperti akun Amazon Bedrock yang tidak dapat memanggil model pengklasifikasi atau subagent yang mencapai batas penggunaan.

<h3 id="api-error-500-internal-server-error">
  API Error: 500 Internal server error
</h3>

Claude Code menampilkan kode status dan pesan kesalahan API untuk respons 5xx apa pun. Contoh di bawah menunjukkan respons 500 di Anthropic API:

```text theme={null}
API Error: 500 Internal server error. This is a server-side issue, usually temporary — try again in a moment. If it persists, check https://status.claude.com.
```

Kalimat terakhir menyebutkan tempat untuk memeriksa kesehatan layanan dan bervariasi menurut penyedia. Konfigurasi Amazon Bedrock, Google Cloud's Agent Platform, dan Microsoft Foundry menyebutkan status layanan penyedia tersebut. `ANTHROPIC_BASE_URL` khusus menyebutkan host gateway.

Respons 5xx dari API itu sendiri menunjukkan kegagalan yang tidak terduga di dalam API. Ini tidak disebabkan oleh prompt, pengaturan, atau akun Anda.

Ketika proxy, load balancer, atau gateway menjawab dengan halaman kesalahan HTML, pesan menampilkan kode status dan judul halaman, seperti `API Error: 502 Bad Gateway`. Untuk halaman tanpa judul, pesan menampilkan kode status dan nama standarnya. Sebelum v2.1.281, kode status dijatuhkan ketika halaman memiliki judul, dan markup mentah halaman dicetak ketika tidak ada.

**Yang harus dilakukan:**

* Periksa [status.claude.com](https://status.claude.com), atau halaman status penyedia yang disebutkan dalam pesan, untuk insiden aktif
* Tunggu satu menit, kemudian kirim pesan Anda lagi. Pesan asli Anda masih ada dalam percakapan, jadi untuk prompt yang panjang Anda dapat mengetik `try again` alih-alih menempel seluruh hal.
* Jika kesalahan berlanjut tanpa insiden yang diposting, jalankan `/feedback` sehingga Anthropic dapat menyelidiki dengan detail permintaan Anda. Lihat [Report an error](#report-an-error) jika `/feedback` tidak tersedia di lingkungan Anda.

<h3 id="api-error-repeated-529-overloaded-errors">
  API Error: Repeated 529 Overloaded errors
</h3>

API sementara pada kapasitas di semua pengguna. Claude Code telah mencoba ulang beberapa kali sebelum menampilkan pesan ini:

```text theme={null}
API Error: Repeated 529 Overloaded errors. The API is at capacity — this is usually temporary. Try again in a moment. If it persists, check https://status.claude.com.
```

Kalimat terakhir bervariasi menurut penyedia dengan cara yang sama seperti kesalahan 500 di atas.

529 bukan batas penggunaan Anda dan tidak dihitung terhadap kuota Anda.

**Yang harus dilakukan:**

* Periksa [status.claude.com](https://status.claude.com), atau halaman status penyedia yang disebutkan dalam pesan, untuk pemberitahuan kapasitas
* Coba lagi dalam beberapa menit
* Jalankan `/model` dan beralih ke model yang berbeda untuk terus bekerja, karena kapasitas dilacak per model. Claude Code meminta Anda untuk melakukan ini ketika satu model mengalami beban yang sangat tinggi, misalnya `Opus is experiencing high load, please use /model to switch to Sonnet`. Pada model Fable pesan menyebutkan Fable.

  Dalam sesi yang dijalankan aplikasi Claude Desktop, seperti tab Code atau Cowork, pesan berbunyi `Opus is experiencing high load. Switch to Sonnet.` dan Anda beralih model dengan pemilih model aplikasi.

<h3 id="request-timed-out">
  Request timed out
</h3>

API tidak merespons sebelum batas waktu koneksi.

```text theme={null}
Request timed out
```

Ini dapat terjadi selama periode beban tinggi atau ketika model menghasilkan respons yang sangat besar. Timeout permintaan default adalah 10 menit.

**Yang harus dilakukan:**

* Coba lagi permintaan
* Jika penyebabnya adalah jaringan lambat atau proxy, naikkan `API_TIMEOUT_MS` seperti yang dijelaskan dalam [Automatic retries](#automatic-retries)
* Jika timeout sering terjadi dan jaringan Anda sehat, lihat [Network and connection errors](#network-and-connection-errors) di bawah

<h3 id="no-response-from-api">
  No response from API
</h3>

Claude Code mengirim permintaan streaming dan API tidak mengembalikan header respons dalam batas waktu untuk byte pertama, jadi Claude Code membatalkan permintaan alih-alih menunggu timeout permintaan `API_TIMEOUT_MS` penuh, 10 menit secara default. Claude Code mengirim permintaan lagi paling banyak sekali, jika [retry budget](#tune-retry-behavior) memungkinkan. Ketika retry juga tidak dijawab, giliran berakhir dengan pesan ini, yang menunjukkan berapa lama setiap upaya menunggu. Ketika Anda menetapkan [`CLAUDE_CODE_RETRY_WATCHDOG`](/docs/id/env-vars), batas satu retry tidak berlaku dan Claude Code mencoba ulang di bawah anggaran yang dijelaskan dalam [Tune retry behavior](#tune-retry-behavior).

```text theme={null}
API Error: No response from API (waited 3m, then 10m on the retry). If a proxy or gateway on your network holds responses until they complete, raise API_TIMEOUT_MS or CLAUDE_STREAM_FIRST_BYTE_TIMEOUT_MS to wait longer.
```

Claude Code menetapkan tunggu header respons upaya pertama dan tunggu retry secara terpisah:

* **Upaya pertama**: [`CLAUDE_STREAM_FIRST_BYTE_TIMEOUT_MS`](/docs/id/env-vars) ketika Anda menetapkannya ke 1 atau lebih, diklem antara 10 detik dan 30 menit. Jika tidak, Claude Code menggunakan timeout watchdog tingkat byte yang tercantum dalam [Streaming idle watchdogs](/docs/id/network-config#streaming-idle-watchdogs), jadi variabel yang mengubah timeout itu mengubah tunggu ini juga. Bagaimanapun, Claude Code menambahkan satu detik untuk setiap 32KB badan permintaan.
* **Retry**: satu detik kurang dari `API_TIMEOUT_MS`, hanya di bawah 10 menit secara default, sehingga retry dapat melampaui proxy atau gateway yang menahan respons hingga generasi selesai. Di Amazon Bedrock, retry menggunakan batas waktu yang sama dengan upaya pertama, dan pesan menunjukkan satu durasi alih-alih dua.

Tidak ada tunggu yang melebihi satu detik kurang dari `API_TIMEOUT_MS` positif, dan `API_TIMEOUT_MS` positif di bawah 11 detik mematikan batas waktu. Watchdog tingkat byte dimulai hanya setelah header respons tiba, jadi respons yang berhenti mengirim byte setelah itu mengikuti [stalled-stream rules](#automatic-retries) alih-alih batas waktu ini.

**Yang harus dilakukan:**

* Kirim pesan Anda lagi. Pesan asli Anda masih ada dalam percakapan, jadi untuk prompt yang panjang Anda dapat mengetik `try again` alih-alih menempel seluruh hal.
* Jika terulang, perlakukan sebagai [network or proxy problem](#unable-to-connect-to-api).
* Jika proxy atau gateway di jaringan Anda menahan respons hingga selesai, naikkan `API_TIMEOUT_MS` sehingga retry menunggu lebih lama. Di Amazon Bedrock, naikkan `CLAUDE_STREAM_FIRST_BYTE_TIMEOUT_MS` juga.
* Jika upaya pertama terus habis waktu dan retry kemudian berhasil, naikkan `CLAUDE_STREAM_FIRST_BYTE_TIMEOUT_MS` sehingga upaya pertama juga menunggu cukup lama.

Sebelum v2.1.242, Claude Code menunggu timeout permintaan `API_TIMEOUT_MS` penuh, 10 menit secara default, sebelum menggagalkan permintaan streaming yang tidak dijawab. Sebelum v2.1.261, retry menunggu batas waktu yang sama dengan upaya pertama dan pesan tidak menunjukkan durasi.

<h3 id="the-response-above-may-be-incomplete">
  The response above may be incomplete
</h3>

Permintaan streaming gagal sementara respons masih berlangsung, setelah Claude menyelesaikan blok teks atau panggilan tool, atau telah memulai satu setelah menyelesaikan pemikirannya. Mengirim ulang permintaan dapat menjalankan panggilan tool yang sama dua kali, jadi Claude Code menyimpan output yang Claude selesaikan dan menambahkan pemberitahuan ini alih-alih membuang giliran. Varian mana yang Anda lihat menyebutkan penyebabnya:

```text theme={null}
API Error: Server error mid-response. The response above may be incomplete.
API Error: Connection lost mid-response. The response above may be incomplete.
API Error: Your computer went to sleep mid-response. The response above may be incomplete.
API Error: The response stopped arriving. The response above may be incomplete.
API Error: Part of the response never arrived. The response above may be incomplete.
API Error: The response stream was malformed. The response above may be incomplete.
```

* `Server error mid-response`: kesalahan server overloaded atau 5xx mid-stream. Varian ini memerlukan Claude Code v2.1.199 atau lebih baru; sebelumnya kasus itu membuang output parsial dan melaporkan seluruh giliran sebagai kesalahan.
* `Connection lost mid-response`: koneksi putus. Anda juga melihat varian ini ketika proxy atau gateway mengakhiri badan respons dengan bersih sebelum respons selesai.
* `Your computer went to sleep mid-response`: Claude Code mendeteksi bahwa komputer Anda tertidur saat respons streaming. Setelah komputer Anda bangun, Claude Code memperlakukan koneksi sebagai rusak dan berhenti membacanya.
* `Part of the response never arrived`: peristiwa stream dijatuhkan antara API dan Claude Code, jadi peristiwa yang lebih baru mereferensikan konten yang tidak pernah tiba. Sebelum v2.1.281, kasus ini mengakhiri giliran dengan `API Error: Content block not found`.
* `The response stream was malformed`: peristiwa tiba untuk blok konten yang sudah selesai, atau peristiwa tiba rusak. Peristiwa yang rusak adalah peristiwa yang datanya bukan JSON yang valid, yang kontennya hilang, atau yang kontennya tidak cocok dengan jenis peristiwa. Sebelum v2.1.284, kesalahan parser mentah, seperti yang dimulai dengan `API Error: JSON Parse error`, muncul sebagai gantinya ketika peristiwa dengan JSON yang tidak valid tiba setelah Claude menyelesaikan pemikirannya, blok teks, atau panggilan tool.
* `The response stopped arriving`: koneksi tetap terbuka tetapi berhenti mengirimkan data, jadi watchdog streaming idle membatalkannya. Sebelum v2.1.222, Claude Code juga dapat melaporkan kegagalan ini pada koneksi [gateway](/docs/id/gateways) yang dicapai melalui `ANTHROPIC_BASE_URL` atau `ANTHROPIC_AWS_BASE_URL` sementara ping keep-alive server masih tiba, karena hanya menghitung peristiwa respons yang diurai di sana; upgrade menghentikan timeout palsu itu di rute tersebut. Gateway yang dicapai melalui URL dasar penyedia seperti `ANTHROPIC_BEDROCK_BASE_URL` tidak dibungkus oleh watchdog byte; lihat [Streaming idle watchdogs](/docs/id/network-config#streaming-idle-watchdogs).

Sebelum v2.1.227, `Connection lost mid-response` berbunyi `Connection closed mid-response` dan `The response stopped arriving` berbunyi `Response stalled mid-stream`.

Ketika peristiwa stream yang dijatuhkan, diduplikasi, atau rusak tiba sebelum Claude memulai teks atau panggilan tool apa pun, Anda tidak melihat pemberitahuan ini:

* Jika Claude hanya menyelesaikan pemikirannya, Claude Code mengeluarkan kembali permintaan. Ketika stream yang diterbitkan kembali putus dengan cara yang sama, giliran berakhir dengan `Part of the response never arrived and no response was produced. Try again.` atau `The response stream was malformed and no response was produced. Try again.`
* Jika tidak ada yang selesai, Claude Code mengirim ulang permintaan tanpa streaming. Jika Anda mematikan fallback itu dengan [`CLAUDE_CODE_DISABLE_NONSTREAMING_FALLBACK`](/docs/id/env-vars), giliran berakhir dengan `API Error: Content block not found` untuk peristiwa yang dijatuhkan atau `API Error: Content block already closed` untuk peristiwa yang diduplikasi. Untuk peristiwa yang rusak dengan fallback dimatikan, giliran berakhir dengan `API Error: Stream event unreadable` atau kesalahan parser mentah.

Dalam empat kasus, Claude Code menangani kegagalan tanpa menampilkan pemberitahuan ini segera:

* Sebelumnya dalam respons, Claude Code baik mencoba ulang kegagalan atau mengakhiri giliran dengan kesalahan yang berbeda. Lihat [Automatic retries](#automatic-retries).
* Ketika salah satu kegagalan ini tiba setelah Claude menyelesaikan respons, Claude Code menyimpan respons lengkap dan mengakhiri giliran secara normal, tanpa pemberitahuan ini. Sebelum v2.1.222, Claude Code menampilkan pemberitahuan ini ketika koneksi putus atau macet setelah respons selesai, dan melaporkan giliran sebagai kesalahan meskipun respons lengkap.
* Dalam [non-interactive session](/docs/id/headless), seperti run `-p`, run [Agent SDK](/docs/id/agent-sdk/overview), atau [cloud session](/docs/id/claude-code-on-the-web), Anda tidak harus mengirim `continue` sendiri ketika respons cut-off berada dalam percakapan utama dan berisi teks tetapi tidak ada panggilan tool: Claude Code menyimpan output parsial dan meminta Claude untuk melanjutkan dari tempat ia berhenti, hingga tiga kali berturut-turut. Anda melihat pemberitahuan ini untuk respons seperti itu hanya setelah Claude Code menggunakan kelanjutan itu. Sebelum v2.1.246, Claude Code mengakhiri giliran non-interaktif dengan pemberitahuan ini pada cut-off pertama.
* Dalam [subagent](/docs/id/sub-agents#api-errors-in-subagents), apakah sesi interaktif atau tidak: ketika respons cut-off-nya berisi teks tetapi tidak ada panggilan tool, Claude Code meminta subagent untuk melanjutkan. Pemberitahuan menjadi pesan terakhir subagent hanya setelah kelanjutan itu digunakan. Sebelum v2.1.257, subagent menampilkan pemberitahuan ini pada cut-off pertama.

**Yang harus dilakukan:**

* Dalam sesi interaktif, baca respons yang tetap di layar: Claude Code menyimpan setiap blok yang Claude selesaikan sebelum kesalahan, tetapi membuang blok akhir yang terputus ketika giliran berakhir, jadi kalimat atau panggilan tool terakhir mungkin hilang. Balas dengan `continue` untuk membuat Claude melanjutkan dari blok terakhir yang diselesaikannya.
* Dalam [non-interactive mode](/docs/id/headless) (`-p`):
  * Dengan output teks default, Claude Code mencetak blok teks terakhir yang diselesaikan yang masih dipegang dari sebelumnya dalam giliran, diikuti oleh pesan ini. Ketika tidak memegang apa pun, Claude Code mencetak pesan ini saja, misalnya karena Claude Code memadatkan percakapan di tengah-giliran dan menghapus teks itu. Sebelum v2.1.219, Claude Code hanya mencetak pesan ini dalam output teks `-p` dan menjatuhkan respons yang sudah dihasilkan.
  * Dengan `--output-format json` atau `stream-json`, Claude Code melaporkan pesan ini di bidang `result`.
  * Untuk melanjutkan giliran setelah koneksi stabil, lanjutkan sesi dan kirim `continue` seperti yang dijelaskan dalam [Continue conversations](/docs/id/headless#continue-conversations).

<h3 id="auto-mode-cannot-determine-the-safety-of-an-action">
  Auto mode cannot determine the safety of an action
</h3>

Model yang [auto mode](/docs/id/permission-modes#eliminate-prompts-with-auto-mode) gunakan untuk mengklasifikasikan tindakan tidak dapat menghasilkan keputusan, jadi auto mode tidak menyetujui tindakan secara otomatis. Pesan yang Anda lihat tergantung pada bagaimana pengklasifikasi gagal.

Pembacaan, pencarian, dan pengeditan di dalam direktori kerja Anda melewati pengklasifikasi, jadi mereka terus bekerja dalam semua kasus ini.

Ketika model pengklasifikasi tidak tersedia:

```text theme={null}
<model> is temporarily unavailable, so auto mode cannot determine the safety of <tool> right now. Wait a moment and then try this action again.
```

Dalam sesi interaktif, baris redup `Not run · auto mode's check had no usable answer` muncul di bawah panggilan tool alih-alih pesan ini. Tekan `Ctrl+O` untuk membaca pesan di [penampil transkrip](/docs/id/interactive-mode#transcript-viewer). Penolakan di bawah [The server returned no safety verdict](#the-server-returned-no-safety-verdict) menampilkan baris yang sama. Sebelum v2.1.296, pesan muncul di bawah panggilan sebagai kesalahan merah.

Ketika Claude Code dapat menentukan kategori kegagalan, ia menyebutkan kategori dalam tanda kurung setelah `temporarily unavailable`, misalnya `<model> is temporarily unavailable (rate-limited), so auto mode cannot determine the safety of <tool> right now`. Kategorinya adalah `(rate-limited)`, `(overloaded)`, `(server error)`, `(timed out)`, dan `(connection failed)`. Jika `(timed out)` atau `(connection failed)` terulang, periksa koneksi Anda; lihat [Unable to connect to API](#unable-to-connect-to-api). Sebelum v2.1.229, pesan tidak pernah menyebutkan kategori dan berbunyi `Wait briefly and then try this action again`.

Ketika tidak ada kategori yang cocok, pesan muncul tanpa kategori dalam tanda kurung; lebih dari satu kegagalan menghasilkan bentuk itu. Di [Amazon Bedrock](/docs/id/amazon-bedrock), termasuk [Mantle endpoint](/docs/id/amazon-bedrock#use-the-mantle-endpoint), itu juga muncul ketika akun AWS Anda tidak dapat memanggil model yang disebutkan dalam pesan, dan kegagalan itu terulang pada setiap retry sampai akun Anda diberi akses ke model.

**Yang harus dilakukan:**

* Coba lagi setelah beberapa detik; Claude melihat pesan yang sama dan biasanya mencoba ulang sendiri. Kegagalan sementara tidak terkait dengan [auto mode eligibility](/docs/id/permission-modes#eliminate-prompts-with-auto-mode); Anda tidak perlu mengubah pengaturan
* Jika retry terus gagal, lanjutkan dengan tugas read-only dan kembali ke tindakan yang diblokir nanti
* Di Amazon Bedrock, jika pesan kembali pada setiap retry, periksa bahwa akun Anda dapat memanggil model yang disebutkan: untuk model Amazon Bedrock standar, konfirmasi [IAM policy](/docs/id/amazon-bedrock#iam-configuration) Anda memungkinkan memanggilnya; untuk ID model Mantle, [hubungi tim akun AWS Anda](/docs/id/amazon-bedrock#mantle-endpoint-errors)

Ketika permintaan pengklasifikasi gagal karena token OAuth Anda kedaluwarsa atau diputar oleh sesi lain, Claude Code menyegarkan token dan mencoba ulang permintaan sekali, jadi kedaluwarsa token biasa tidak muncul sebagai pesan ini. Sebelum v2.1.216, token yang kedaluwarsa atau diputar menggagalkan setiap permintaan pengklasifikasi, dan auto mode menolak setiap tindakan yang diperiksa dengan pesan ini sampai token disegarkan.

Ketika pengklasifikasi mengembalikan respons yang tidak dapat diurai:

```text theme={null}
Auto mode could not evaluate this action and is blocking it for safety — run with --debug for details
```

**Yang harus dilakukan:**

* Coba lagi tindakan; ini biasanya berhasil pada upaya berikutnya
* Jalankan `claude --debug` dan ulangi tindakan untuk detail dalam log debug

Ketika pemeriksaan keamanan API terpisah memblokir permintaan pengklasifikasi karena konten percakapan sebelumnya:

```text theme={null}
Auto mode could not evaluate this action and is blocking it for safety — a safety check separate from auto mode blocked this request because of earlier conversation content — it isn't about the action itself — run with --debug for details
```

Claude Code menolak tindakan tetapi memberi tahu Claude bahwa ini bukan penilaian bahwa tindakan tidak aman, dan untuk melanjutkan dengan tugas lain daripada mencoba ulang. Penolakan ini tidak dihitung terhadap [auto mode's pause thresholds](/docs/id/permission-modes#when-auto-mode-falls-back). Dalam run `-p` [non-interactive](/docs/id/headless), Claude Code tidak menghentikan run. Apa yang Claude terima tergantung pada tempat ia meminta tindakan:

* Ke [background subagent](/docs/id/sub-agents#run-subagents-in-foreground-or-background) dalam run `-p` tanpa `--input-format stream-json`, Claude Code mengembalikan hasil kesalahan yang berisi `Agent aborted: auto mode classifier request refused by the safety safeguard in headless mode`
* Di tempat lain, termasuk sesi interaktif dan percakapan utama run `-p`, Claude Code mengembalikan penolakan itu ke Claude

Sebelum v2.1.225, Claude Code menghitung penolakan ini terhadap ambang batas jeda dan mengembalikan pesan penolakan yang sama seperti blok pengklasifikasi asli.

**Yang harus dilakukan:**

* Ini bukan keputusan tentang tindakan Anda. Konten yang sudah ada dalam percakapan Anda memicu filter keamanan di API ketika auto mode mengirim percakapan ke pengklasifikasi
* Mencoba ulang tidak akan membantu; konten percakapan yang sama akan memicu filter lagi
* Dalam sesi interaktif, beralih ke [permission mode](/docs/id/permission-modes) yang berbeda sehingga Anda dapat menyetujui tindakan ketika diminta
* Mulai percakapan segar tanpa konten pemicu

Ketika percakapan telah tumbuh lebih besar dari context window pengklasifikasi:

```text theme={null}
Auto mode classifier transcript exceeded context window — falling back to manual approval (try /compact to reduce conversation size)
```

Apa yang terjadi pada tindakan tergantung pada tempat Claude memintanya:

* Dalam sesi interaktif, auto mode melakukan fallback ke dialog izin normal untuk tindakan itu sehingga Anda dapat menyetujui atau menolaknya secara manual
* Ke [background subagent](/docs/id/sub-agents#run-subagents-in-foreground-or-background) dalam run `-p` [non-interactive](/docs/id/headless) tanpa `--input-format stream-json`, Claude Code mengembalikan hasil kesalahan yang berisi `Agent aborted: auto mode classifier transcript exceeded context window in headless mode`, dan run berlanjut
* Di tempat lain dalam run `-p` tanpa [`--permission-prompt-tool`](/docs/id/cli-reference#cli-flags), tidak ada dialog izin untuk fallback, jadi tindakan tidak berjalan dan run berlanjut

**Yang harus dilakukan:**

* Dalam sesi interaktif, setujui atau tolak tindakan dalam dialog izin yang muncul
* Dalam sesi interaktif, jalankan `/compact` untuk mengurangi ukuran percakapan sehingga tindakan berikutnya cocok dalam jendela pengklasifikasi lagi

<h3 id="the-server-returned-no-safety-verdict">
  The server returned no safety verdict
</h3>

Di bawah [server-side classifier review](/docs/id/permission-modes#server-side-classifier-review), auto mode menolak tindakan ketika server tidak memberikan putusan untuk itu. Penolakan menyebutkan kategori dalam tanda kurung ketika Claude Code dapat menentukan satu, seperti `(timed out)`:

```text theme={null}
The server-side auto mode classifier gave no verdict (timed out), so auto mode cannot determine the safety of <tool>.
```

Sisa pesan memberi tahu Claude apakah satu retry dapat membantu. Sebelum beberapa penolakan ini, Claude Code menunggu sehingga upaya Claude berikutnya tidak mengikuti sekaligus. Selama tunggu dalam sesi interaktif, spinner menunjukkan `Auto mode check unavailable` dengan hitungan mundur, dan menekan `Esc` mengganggu giliran.

Setelah sepuluh respons berturut-turut tanpa putusan, auto mode menghentikan giliran:

```text theme={null}
Auto mode is unavailable — the server returned no safety verdict for the last 10 responses, so Claude stopped. Send a message to try again, or switch out of auto mode.
```

Pesan berhenti muncul di tempat yang berbeda dalam setiap jenis sesi:

* Dalam sesi interaktif, pesan muncul sebagai peringatan dalam transkrip dan giliran berakhir
* Dalam run `-p` [non-interactive](/docs/id/headless), run berakhir dan melaporkan kesalahan eksekusi. Dengan output teks default, pesan dicetak di stderr.
* Ketika [subagent](/docs/id/sub-agents) mencapai batas, subagent berhenti sebelum selesai, dan Claude menerima apa pun yang dihasilkan dengan catatan bahwa auto mode menghentikannya

**Yang harus dilakukan:**

* Kirim pesan lain untuk membuat Claude mencoba lagi. Hitungan respons dimulai dari awal.
* Jika berhenti terulang dan permintaan Anda melewati [LLM gateway or proxy](/docs/id/llm-gateway), periksa apakah itu memotong respons streaming pendek atau menulis ulangnya. [Server-side classifier review](/docs/id/permission-modes#server-side-classifier-review) mengatakan perilaku gateway mana yang menyebabkan penolakan, dan [gateway compatibility guide](/docs/id/llm-gateway-protocol#feature-pass-through) mencantumkan apa yang harus dilewatkan tanpa perubahan.
* Atur `CLAUDE_CODE_AUTO_MODE_SERVER=0` sebelum Anda memulai Claude Code untuk menggunakan permintaan pengklasifikasi miliknya sendiri. Sebelum v2.1.281, Claude Code tidak membaca variabel pada koneksi langsung ke Anthropic API.
* Untuk menyetujui tindakan sendiri, [switch out of auto mode](/docs/id/permission-modes#switch-permission-modes)

Sebelum v2.1.280, Claude Code menolak setiap tindakan dari respons tanpa putusan segera dan tidak pernah menghentikan giliran.

<h3 id="agent-terminated-early-due-to-an-api-error">
  Agent terminated early due to an API error
</h3>

Permintaan API [subagent](/docs/id/sub-agents) gagal secara terminal, misalnya karena batas penggunaan tercapai atau retry untuk kesalahan server habis, jadi subagent berhenti sebelum menyelesaikan tugasnya. Pesan ini memerlukan Claude Code v2.1.199 atau lebih baru; sebelumnya teks kesalahan API dikembalikan ke Claude seolah-olah itu adalah hasil subagent.

```text theme={null}
Agent terminated early due to an API error: <error detail>
```

**Yang harus dilakukan:**

* Cocokkan detail kesalahan setelah titik dua dengan bagiannya sendiri di halaman ini, seperti [Usage limits](#usage-limits) atau [Server errors](#server-errors), dan ikuti langkah bagian itu
* Setelah kesalahan yang mendasar hilang, minta Claude untuk mencoba ulang tugas atau [resume the subagent](/docs/id/sub-agents#resume-subagents)

Ketika rate limit, overload, atau kesalahan server mengganggu subagent foreground yang sudah menghasilkan output teks, Claude menerima output parsial itu ditandai sebagai tidak lengkap alih-alih kesalahan ini. Subagent yang satu-satunya output adalah panggilan tool mendapat kesalahan ini juga; dalam v2.1.199 bentuk itu mengembalikan hasil parsial kosong. Lihat [API errors in subagents](/docs/id/sub-agents#api-errors-in-subagents).

<h2 id="usage-limits">
  Batas penggunaan
</h2>

Sebagian besar kesalahan di bagian ini berarti kuota yang terikat pada akun atau paket Anda telah tercapai. Tiga kesalahan bekerja berbeda: [`Server is temporarily limiting requests`](#server-is-temporarily-limiting-requests) adalah throttle sisi server yang tidak terkait dengan kuota paket Anda, [`Usage credits required for 1M context`](#usage-credits-required-for-1m-context) adalah pemeriksaan hak akses daripada kuota yang habis, dan [`The prompt to confirm went unanswered`](#the-prompt-to-confirm-went-unanswered) berarti prompt persetujuan kredit penggunaan ditutup tanpa jawaban, terlepas dari apakah kuota tercapai atau tidak.

<h3 id="youve-hit-your-session-limit">
  You've hit your session limit
</h3>

Paket langganan mencakup tunjangan penggunaan bergulir. Ketika habis, Anda akan melihat salah satu pesan ini:

```text theme={null}
You've hit your session limit · resets 3:45pm
You've hit your weekly limit · resets Mon 12:00am
You've hit your Opus limit · resets 3:45pm
You've hit your Sonnet limit · resets 3:45pm
```

Claude Code memblokir permintaan lebih lanjut hingga waktu reset yang ditunjukkan dalam pesan. Batas sesi dan mingguan dibagikan di semua model, jadi beralih model tidak mengembalikan akses. Batas Opus dan Sonnet masing-masing hanya berlaku untuk permintaan ke keluarga model tersebut, jadi beralih ke model di luar keluarga dengan `/model` membuat Anda tetap bekerja.

Dalam sesi interaktif yang masuk dengan langganan claude.ai, Claude Code juga dapat menunggu di sesi terbuka dan melanjutkan tugas yang terputus segera setelah reset. Lihat [Wait for a usage limit to reset](/docs/id/interactive-mode#wait-for-a-usage-limit-to-reset) untuk melihat apa yang Anda lihat, cara memulai atau membatalkan penantian, dan cara mematikan lanjutan otomatis. Sebelum v2.1.234, Claude Code tidak menawarkan penantian ini.

Penggunaan dihitung terhadap tunjangan sesi dan mingguan pada saat yang sama. Satu ledakan aktivitas berat, seperti fanout alur kerja besar, dapat menghabiskan tunjangan mingguan sebelum jendela sesi direset.

**Yang harus dilakukan:**

* Tunggu waktu reset yang ditunjukkan dalam kesalahan
* Di tab Code dari [Desktop app](/docs/id/desktop), kartu batas sesi menawarkan kotak centang **Auto-continue when limits reset**. Kartu batas mingguan tidak. Ketika dicentang, aplikasi Desktop mencoba ulang giliran yang terputus setelah reset dan menampilkan waktu retry pada kartu. Kotak centang Desktop dan pengaturan **Continue automatically at usage limit** CLI di `/config` terpisah, jadi matikan masing-masing secara terpisah.
* Untuk batas Opus atau Sonnet, jalankan `/model` dan beralih ke model di luar keluarga tersebut untuk terus bekerja. Setiap model memiliki cache prompt-nya sendiri, jadi permintaan berikutnya membaca ulang seluruh percakapan tanpa cache hits; lihat [Switching models](/docs/id/prompt-caching#switching-models)
* Jalankan `/usage` untuk melihat batas paket Anda dan kapan mereka direset
* Jalankan `/usage-credits` untuk membeli penggunaan tambahan di Pro dan Max, atau memintanya dari admin Anda di Team dan Enterprise. Lihat [usage credits for paid plans](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans) untuk cara ini ditagih.
* Untuk meningkatkan paket Anda untuk batas dasar yang lebih tinggi, lihat [claude.com/pricing](https://claude.com/pricing)

Sebelum jendela habis, Claude Code dapat memperingatkan Anda bahwa Anda telah menggunakan sebagian besar, dengan pesan seperti `You've used 85% of your session limit · resets 3:45pm`. Untuk memantau tunjangan sisa Anda secara terus-menerus, tambahkan bidang `rate_limits` ke [custom status line](/docs/id/statusline#rate-limit-usage), atau di aplikasi Desktop klik [usage ring](/docs/id/desktop#check-usage) di sebelah pemilih model.

<h3 id="usage-credits-required-for-1m-context">
  Usage credits required for 1M context
</h3>

Model yang dipilih menggunakan context window diperluas 1M-token, dan paket Anda hanya mencakupnya melalui kredit penggunaan.

```text theme={null}
API Error: Usage credits required for 1M context · run /usage-credits to turn them on (they take effect after you restart Claude Code), or /model to switch to standard context
```

Dalam sesi yang dijalankan aplikasi Claude Desktop, petunjuk tidak menyebutkan perintah apa pun: petunjuk menunjuk ke halaman pengaturan penggunaan claude.ai, atau pada paket Team dan Enterprise mengatakan untuk mengaktifkan kredit penggunaan di claude.ai/admin-settings/usage atau untuk meminta admin Anda.

Ini adalah pemeriksaan hak akses, bukan kehabisan kuota. Ini muncul bahkan ketika tunjangan sesi dan mingguan Anda memiliki kapasitas yang tersisa. Lihat [Extended context](/docs/id/model-config#extended-context) untuk paket mana yang mencakup konteks 1M secara langsung dan mana yang memerlukan kredit penggunaan.

Ketika kesalahan ini muncul di tengah percakapan karena konteks tumbuh melampaui 200K token, Claude Code secara otomatis mengompres percakapan kembali di bawah batas konteks standar dan menjaga sesi pada batas itu sesudahnya, jadi tidak ada tindakan yang diperlukan. Pada versi sebelum v2.1.172, kesalahan berulang pada setiap permintaan berikutnya termasuk `/compact`; jalankan `/clear` pada versi tersebut untuk pulih. Langkah-langkah di bawah berlaku ketika Anda secara eksplisit memilih model `[1m]`.

**Yang harus dilakukan:**

* Jalankan `/model` dan pilih varian tanpa akhiran `[1m]` untuk kembali ke context window standar
* Di mana pesan menyebutkan `/usage-credits`, jalankan untuk mengaktifkan penagihan terukur untuk varian 1M di Pro dan Max, atau untuk meminta kredit penggunaan dari admin Anda di Team dan Enterprise. Setelah kredit penggunaan aktif, mulai ulang Claude Code atau mulai sesi baru, mana pun yang pesan katakan. Sampai saat itu, sesi tetap pada batas konteks standar.
* Jika kesalahan berlanjut setelah `/model`, ID model 1M mungkin diatur di tempat lain. Lihat [Setting your model](/docs/id/model-config#setting-your-model) untuk lokasi konfigurasi yang harus diperiksa dalam urutan prioritas.
* Untuk menghapus varian 1M dari pemilih model sepenuhnya, atur [`CLAUDE_CODE_DISABLE_1M_CONTEXT=1`](/docs/id/env-vars)

Sebelum v2.1.268, pesan berakhir dengan `run /usage-credits to turn them on, or /model to switch to standard context` dan tidak menyebutkan restart.

<h3 id="the-prompt-to-confirm-went-unanswered">
  The prompt to confirm went unanswered
</h3>

Jika akun Anda memerlukan [Fable usage-credits consent](/docs/id/model-config#fable-and-usage-credits), Claude Code meminta Anda untuk mengonfirmasi sebelum permintaan Fable menagih kredit penggunaan. Ketika prompt persetujuan ditutup tanpa ada yang menjawabnya, Claude Code mengakhiri giliran dengan salah satu pesan ini:

```text theme={null}
Fable limit reached · continuing on Fable 5.1 uses usage credits, and the prompt to confirm went unanswered — nothing was sent · answer it where this session is running, or /model to change
Fable 5.1 now uses usage credits · the prompt to confirm went unanswered — nothing was sent · answer it where this session is running, or /model to change
```

Pesan menyebutkan model Fable sesi, jadi di Fable 5 mereka membaca `continuing on Fable 5` dan `Fable 5 now uses usage credits`. Sebelum v2.1.257, pesan pertama dimulai dengan `Fable 5 limit reached`.

Ini terjadi dalam sesi [Remote Control](/docs/id/remote-control), [background sessions](/docs/id/agent-view), [agent team](/docs/id/agent-teams) sesi rekan tim, dan sesi yang aplikasi lain menghosting melalui Agent SDK. Untuk kapan Claude Code menutup prompt, lihat [Fable and usage credits](/docs/id/model-config#fable-and-usage-credits).

**Yang harus dilakukan:**

* Di mana sesi berjalan, di terminal atau di aplikasi yang menghosting, kirim prompt lain dan jawab prompt persetujuan ketika muncul kembali. Untuk sesi latar belakang, lampirkan terlebih dahulu dari [agents view](/docs/id/agent-view). Mengirim ulang dari klien Remote Control menampilkan pesan ini lagi, karena klien tidak dapat menampilkan prompt.
* Jalankan `/model` untuk beralih ke model yang tidak menagih kredit penggunaan
* Untuk memberi diri Anda lebih banyak waktu, atur [`dialogExpiry`](/docs/id/settings-reference#dialogexpiry) ke nilai yang lebih lama atau `"never"`

Sebelum v2.1.236, pesan ini tidak muncul: sementara klien Remote Control terhubung, Claude Code menunggu 60 detik untuk jawaban dan kemudian melanjutkan giliran pada model default Anda.

<h3 id="server-is-temporarily-limiting-requests">
  Server is temporarily limiting requests
</h3>

API menerapkan throttle jangka pendek yang tidak terkait dengan kuota paket Anda.

```text theme={null}
API Error: Server is temporarily limiting requests (not your usage limit)
```

Claude Code membedakan ini dari batas paket Anda dengan tidak adanya header kuota terpadu yang dibawa respons batas nyata. Mulai dari v2.1.199 ini [dicoba ulang secara otomatis](#automatic-retries) dengan backoff sebelum ditampilkan, terlepas dari cara Anda mengautentikasi. Pada versi sebelumnya, sesi yang masuk dengan langganan claude.ai gagal pada giliran pertama; hanya API key dan Enterprise sign-ins yang mencoba ulangnya.

**Yang harus dilakukan:**

* Tunggu sebentar dan coba lagi
* Periksa [status.claude.com](https://status.claude.com) jika terus berlanjut

<h3 id="request-rejected-429">
  Request rejected (429)
</h3>

Anda telah mencapai rate limit yang dikonfigurasi untuk kunci API, proyek Amazon Bedrock, atau proyek Google Cloud Anda.

```text theme={null}
API Error: Request rejected (429) · this may be a temporary capacity issue. If it persists, check https://status.claude.com.
```

Kalimat di akhir menyebutkan di mana memeriksa kesehatan layanan dan bervariasi menurut penyedia. Konfigurasi Amazon Bedrock, Agent Platform Google Cloud, dan Microsoft Foundry menyebutkan status layanan penyedia itu sebagai gantinya dari halaman status Anthropic. `ANTHROPIC_BASE_URL` kustom menyebutkan host gateway.

Ketika proxy, load balancer, atau gateway antara Claude Code dan API menjawab dengan halaman HTML 429-nya sendiri, teks setelah `·` adalah judul halaman itu ketika memiliki satu, seperti `Too Many Requests`. Sebelum v2.1.281, markup halaman lengkap dicetak setelah `·`.

**Yang harus dilakukan:**

* Jalankan `/status` dan konfirmasi kredensial aktif adalah yang Anda harapkan. `ANTHROPIC_API_KEY` yang tersesat di lingkungan Anda dapat merutekan permintaan melalui kunci tingkat rendah daripada langganan Anda.
* Periksa konsol penyedia Anda untuk batas aktif dan minta tingkat yang lebih tinggi jika diperlukan
* Untuk kunci API Anthropic, lihat [rate limits reference](https://platform.claude.com/docs/en/api/rate-limits) untuk cara kerja tingkat dan cara menetapkan batas per-workspace
* Kurangi concurrency: turunkan [`CLAUDE_CODE_MAX_TOOL_USE_CONCURRENCY`](/docs/id/env-vars), hindari menjalankan banyak subagent paralel, atau beralih ke model yang lebih kecil dengan `/model` untuk run skrip volume tinggi

<h3 id="youve-hit-your-monthly-spend-limit">
  You've hit your monthly spend limit
</h3>

Penggunaan yang disertakan paket Anda tidak dapat menutupi permintaan ini, dan [kredit penggunaan](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans) yang sebaliknya akan membayarnya telah mencapai batas pengeluaran. Itu terjadi ketika salah satu jendela penggunaan paket Anda telah habis, atau ketika permintaan adalah permintaan yang hanya dibayar oleh kredit penggunaan, seperti permintaan ke model yang [bills to usage credits](/docs/id/model-config#fable-and-usage-credits). Pesan menyebutkan batas siapa yang memblokir Anda. Teks setelah `·` mengatakan cara meningkatkan batas itu, dan bervariasi dengan paket Anda dan apakah Anda mengelola penagihan:

```text theme={null}
You've hit your monthly spend limit · raise it at https://claude.ai/settings/usage?from=cc_cli_limit_message
You've hit your individual spend limit · ask your admin for a higher limit
You've hit your org's monthly spend limit · visit https://claude.ai/admin-settings/usage to raise it
You've hit your team's shared budget · ask your admin to raise it at https://claude.ai/admin-settings/usage
You've hit your channel's monthly spend limit · an org owner or channel manager can raise it in the channel's Claude settings
```

`team's shared budget` adalah anggaran terpusat yang admin tetapkan untuk grup yang Anda termasuk; pesan tidak menyebutkan grup. `channel's monthly spend limit` adalah anggaran dari satu channel Slack tempat sesi berjalan, jadi organisasi Anda mungkin masih memiliki anggaran di luar itu.

Ketika salah satu jendela paket Anda adalah yang habis, pesan juga mengatakan kapan jendela itu direset, misalnya `· your session limit resets 3:45pm`, dan akses kembali kemudian tanpa siapa pun menaikkan batas. Pada organisasi dengan penagihan berbasis penggunaan, pesan mengatakan `usage limit` sebagai gantinya dari `spend limit`, seperti dalam `You've hit your individual usage limit`.

Jika Anda terhubung melalui gateway aplikasi Claude dan melihat `spend limit reached` huruf kecil, itu adalah batas operator gateway Anda sebagai gantinya; lihat [Spend limit reached](#spend-limit-reached).

**Yang harus dilakukan:**

* Di Pro dan Max, tingkatkan batas pengeluaran bulanan Anda di [**Settings > Usage**](https://claude.ai/settings/usage) di claude.ai, atau jalankan `/usage-credits`
* Di Team dan Enterprise, tingkatkan batas di [**Organization settings > Usage**](https://claude.ai/admin-settings/usage) jika Anda mengelola penagihan, atau minta admin untuk melakukannya. `/usage-credits` mengirim permintaan itu ke admin Anda untuk Anda
* Untuk batas channel, minta pemilik org atau manajer channel untuk menaikkannya di claude.ai. Lihat [Per-channel limits](https://claude.com/docs/claude-tag/admins/set-spend-limit#per-channel-limits) dalam dokumentasi Claude Tag
* Jika pesan menyebutkan waktu reset untuk jendela paket Anda, Anda dapat menunggunya sebagai gantinya
* Jalankan `/usage` untuk melihat jendela paket Anda dan kapan masing-masing direset

<h3 id="spend-limit-reached">
  Spend limit reached
</h3>

Anda terhubung melalui [Claude apps gateway](/docs/id/claude-apps-gateway) dan telah melampaui [spend cap](/docs/id/claude-apps-gateway-spend-limits) yang operator gateway Anda tetapkan. Gateway memblokir permintaan Anda sampai periode yang dinamai direset atau operator menaikkan batas. Ini menandai setiap respons `429` yang diblokir `x-should-retry: false`, jadi Claude Code menampilkan pesan ini tanpa mencoba ulang.

```text theme={null}
spend limit reached (daily; resets 2026-08-09 00:00 UTC)
```

Pesan menyebutkan periode batas dan waktu reset, dan ketika operator mengonfigurasi `blocked_message`, instruksi mereka mengikutinya. Sebelum v2.1.225, pesan hanya berbunyi `spend limit reached`; gateway pada versi yang lebih lama masih mengirim bentuk yang lebih pendek itu.

**Yang harus dilakukan:**

* Tunggu waktu reset yang pesan namakan, atau ikuti instruksi operator jika pesan membawanya
* Minta operator gateway Anda untuk menaikkan batas jika Anda mencapainya secara rutin

Pesan terkait, `spend limit unavailable`, berarti gateway tidak dapat membaca catatan pengeluarannya dan memblokir permintaan sebagai tindakan pencegahan daripada atas batas Anda. Biasanya ini hilang dengan sendirinya; jika terus berlanjut, beri tahu operator gateway Anda.

<h3 id="credit-balance-is-too-low">
  Credit balance is too low
</h3>

Organisasi Console Anda telah kehabisan kredit prabayar, atau Claude Code mengirim permintaan Anda dengan kunci API Console ketika Anda bermaksud menggunakan langganan Anda.

```text theme={null}
Credit balance is too low
```

**Yang harus dilakukan:**

* Jika Anda memiliki paket Pro, Max, Team, atau Enterprise dan melihat ini, jalankan `/status` dan periksa baris `API key`. `ANTHROPIC_API_KEY` yang disetujui di lingkungan Anda merutekan permintaan melalui kunci itu daripada langganan Anda. Batalkan pengaturannya di shell saat ini dan hapus dari profil shell Anda, kemudian luncurkan ulang `claude`. Jalankan `/login` jika Anda belum masuk dengan langganan Anda.
* Tambahkan kredit di [platform.claude.com/settings/billing](https://platform.claude.com/settings/billing), dan pertimbangkan untuk mengaktifkan auto-reload di sana sehingga saldo diisi ulang sebelum mencapai nol
* Atur batas pengeluaran per-workspace di Console untuk mencegah satu proyek menguras saldo org. Lihat [Manage costs effectively](/docs/id/costs).

<h3 id="could-not-update-your-spend-limit">
  Could not update your spend limit
</h3>

Server menolak perubahan batas pengeluaran yang Anda buat dari prompt yang muncul ketika Anda mencapai batas pengeluaran Anda.

```text theme={null}
Could not update your spend limit: <reason from the server>
```

Ketika server menjelaskan penolakan, pesan berakhir dengan alasan itu, dan mencoba ulang nilai yang sama gagal lagi. Ketika kegagalan tidak memiliki alasan yang disediakan server, seperti koneksi yang terputus, pesan berbunyi `Could not update your spend limit. Press Enter to retry.` dan mencoba ulang dapat berhasil. Sebelum v2.1.216, Claude Code menampilkan bentuk generik untuk setiap kegagalan.

**Yang harus dilakukan:**

* Jika pesan menyertakan alasan, pilih batas yang memuaskannya, seperti jumlah yang lebih rendah
* Jika pesan hanya menampilkan bentuk generik, coba ulang; kegagalan mungkin bersifat sementara
* Jika perubahan terus gagal, buatlah dari [claude.ai billing settings](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans) Anda di browser sebagai gantinya

<h2 id="authentication-errors">
  Error autentikasi
</h2>

Error berikut berarti Claude Code tidak dapat membuktikan identitas Anda kepada API. Jalankan `/status` kapan saja untuk melihat kredensial mana yang sedang aktif.

<h3 id="not-logged-in">
  Not logged in
</h3>

Tidak ada kredensial valid yang tersedia untuk sesi ini.

```text theme={null}
Not logged in · Please run /login
```

Dalam sesi yang dijalankan oleh aplikasi Claude Desktop, seperti tab Code atau Cowork, pesannya berbunyi `Authentication required · Sign in again to continue`, dan Anda masuk kembali dari aplikasi tersebut.

Jika Anda masuk dengan akun claude.ai Anda di jendela Claude Code lain yang menggunakan [direktori konfigurasi](/docs/id/claude-directory) yang sama, sesi interaktif yang menampilkan pesan ini akan mulai menggunakan login tersebut dengan sendirinya. Anda tidak perlu memulainya ulang.

Sebelum v2.1.286 di macOS, sesi dapat terus menampilkan pesan tersebut setelah Anda masuk dari jendela lain. Pada versi tersebut, mulai ulang sesi yang menampilkan pesan itu.

**Yang perlu dilakukan:**

* Jalankan `/login` untuk mengautentikasi dengan langganan Claude atau akun Console Anda
* Jika Anda mengharapkan environment variable yang mengautentikasi Anda, pastikan `ANTHROPIC_API_KEY` telah diatur dan diekspor di shell tempat Anda menjalankan `claude`
* Untuk CI atau otomatisasi yang tidak memungkinkan login interaktif, konfigurasikan skrip [`apiKeyHelper`](/docs/id/settings-reference#apikeyhelper) yang mengambil kunci saat startup
* Lihat [Prioritas autentikasi](/docs/id/authentication#authentication-precedence) untuk memahami kredensial mana yang digunakan Claude Code ketika terdapat beberapa kredensial

Jika Anda berulang kali diminta untuk masuk, lihat [Not logged in or token expired](/docs/id/troubleshoot-install#not-logged-in-or-token-expired) untuk pemeriksaan jam sistem dan langkah pemulihan penyimpanan kredensial macOS.

<h3 id="could-not-resolve-authentication-method">
  Could not resolve authentication method
</h3>

Sesi mencapai klien API tanpa kredensial apa pun. [Sesi latar belakang](/docs/id/agent-view) dan sesi cloud menampilkan pesan ini ketika worker dimulai tanpa kredensial. Eksekusi interaktif, `-p`, dan Agent SDK melaporkan kondisi yang sama sebagai [Not logged in](#not-logged-in) dan menulis string ini hanya ke log debug mereka, jadi jika Anda menemukannya di sana, ikuti entri tersebut.

```text theme={null}
Could not resolve authentication method. Expected one of apiKey, authToken, credentials, config, or profile to be set. Or for one of the "X-Api-Key" or "Authorization" headers to be explicitly omitted
```

Pada versi saat ini, error ini berarti tidak ada kredensial yang tersedia untuk proses worker. Sebelum v2.1.174, sesi latar belakang yang ditugaskan ke worker pra-inisialisasi yang menganggur dapat gagal dengan cara ini meskipun kredensial valid telah dikonfigurasi. Sebelum v2.1.176, sesi cloud yang menganggur sebelum diklaim juga dapat mengalami hal yang sama. Lakukan upgrade untuk memulihkannya.

**Yang perlu dilakukan:**

* Upgrade ke v2.1.176 atau lebih baru jika pesan ini muncul di sesi latar belakang atau sesi cloud dan kredensial Anda sudah dikonfigurasi
* Pastikan `ANTHROPIC_API_KEY`, `CLAUDE_CODE_OAUTH_TOKEN`, atau kredensial penyedia cloud Anda diatur di lingkungan yang menjalankan worker, bukan hanya di shell interaktif Anda
* Untuk Agent SDK, lihat [pengaturan autentikasi di mulai cepat](/docs/id/agent-sdk/quickstart#setup)
* Jalankan `/status` dalam sesi interaktif di lingkungan yang sama untuk memastikan sumber kredensial mana yang digunakan

<h3 id="invalid-api-key">
  Invalid API key
</h3>

Environment variable `ANTHROPIC_API_KEY` atau skrip `apiKeyHelper` mengembalikan kunci yang ditolak oleh API, atau Claude Code memblokir kunci dari `ANTHROPIC_API_KEY` sebelum mengirimkannya.

```text theme={null}
Invalid API key · Fix external API key
```

Ketika pesan berlanjut setelah `Fix external API key` dengan deskripsi seperti `Invalid X-Api-Key header value from ANTHROPIC_API_KEY: it contains a line break at character 41 (120 characters on 2 lines).`, API tidak pernah melihat kunci tersebut. Claude Code menemukan karakter yang tidak dapat dibawa oleh header HTTP dan menghentikan permintaan sebelum mengirimkannya. Lihat [Invalid request header value](#invalid-request-header-value) untuk cara membaca deskripsi dan memperbaiki nilainya.

**Yang perlu dilakukan:**

* Periksa kesalahan ketik dan pastikan kunci belum dicabut di [Console](https://platform.claude.com/settings/keys)
* Di shell yang sama, jalankan `env | grep ANTHROPIC`, atau di PowerShell `Get-ChildItem Env:ANTHROPIC*`. Alat seperti direnv, plugin shell dotenv, dan terminal IDE dapat memuat kunci usang dari file `.env` di proyek Anda tanpa Anda mengaturnya secara eksplisit.
* Hapus pengaturan `ANTHROPIC_API_KEY` dan jalankan `/login` untuk menggunakan autentikasi langganan sebagai gantinya
* Jika kunci berasal dari skrip [`apiKeyHelper`](/docs/id/settings-reference#apikeyhelper), jalankan skrip secara langsung untuk memastikan skrip mencetak kunci yang valid ke stdout
* Jalankan `/status` untuk memastikan sumber kredensial mana yang sebenarnya digunakan Claude Code

<h3 id="your-apikeyhelper-script-is-failing">
  Your apiKeyHelper script is failing
</h3>

Claude Code menjalankan perintah di pengaturan [`apiKeyHelper`](/docs/id/settings-reference#apikeyhelper) Anda dan tidak mendapatkan kunci kembali. Tanpa kunci, permintaan mencapai API dengan kredensial placeholder, dan API menolaknya dengan `401`. Panel `Authentication` di terminal menunjukkan mana yang terjadi di antara hal berikut:

* Perintah keluar dengan error atau mengalami timeout
* Perintah tidak mencetak apa pun ke stdout
* Perintah mencetak sesuatu selain kunci, seperti banner login atau baris log. Panel menampilkan `returned output that cannot be used as an API key` dan menyebutkan masalahnya, tanpa mengulang output tersebut. Sebelum v2.1.227, Claude Code mengirimkan apa pun yang dicetak perintah, setelah memangkas spasi di sekitarnya.

```text theme={null}
Your apiKeyHelper script is failing · This usually means you need to re-authenticate with your provider · Run /status to see the script's error output
```

Dalam [mode non-interaktif](/docs/id/headless), stderr juga memuat alasan spesifiknya, diawali dengan `apiKeyHelper failed:`.

Claude Code menjalankan ulang skrip dan mencoba ulang permintaan hingga dua kali lagi sebelum menampilkan pesan ini, sehingga kegagalan muncul dalam tiga percobaan. Sebelum v2.1.208, Claude Code menghabiskan seluruh [anggaran retry](#automatic-retries) untuk mengirim ulang permintaan dengan kredensial placeholder, lalu melaporkan error autentikasi `401` generik alih-alih kegagalan skrip.

Menjalankan `/login` tidak membantu di sini: output helper [diutamakan](/docs/id/authentication#authentication-precedence) daripada login tersimpan selama pengaturan tersebut ada.

**Yang perlu dilakukan:**

* Jalankan perintah yang dikonfigurasi di `apiKeyHelper` secara langsung di shell Anda untuk mereproduksi kegagalan
* Jika perintah melaporkan sesi yang kedaluwarsa, autentikasi ulang dengan penyedia kredensial Anda, misalnya dengan masuk kembali ke SSO atau secrets vault Anda
* Perbaiki perintah agar hanya mencetak kunci ke stdout, sebagai satu token ASCII yang dapat dicetak dengan panjang hingga 16.384 karakter, dan keluar dengan exit code 0. Lihat [rotasi kredensial dengan apiKeyHelper](/docs/id/llm-gateway-connect#rotate-credentials-with-apikeyhelper) untuk pengaturan yang berfungsi.
* Jalankan `/status` untuk melihat kegagalan dan memastikan `apiKeyHelper` adalah sumber kredensial yang aktif. Baris `apiKeyHelper` menampilkan `Failing` beserta detail kegagalan terakhir, seperti exit code dan output error perintah, dan menghilang setelah eksekusi berikutnya berhasil. Sebelum v2.1.274, `/status` hanya menampilkan sumber kredensial, bukan kegagalannya.
* Setiap kali perintah gagal, exit code dan output error-nya juga muncul di panel `Authentication` di terminal. Sebelum v2.1.212, panel tersebut berjudul `Cloud authentication`.

<h3 id="invalid-request-header-value">
  Invalid request header value
</h3>

Nilai yang akan dikirim Claude Code sebagai header permintaan mengandung karakter yang tidak dapat dibawa oleh header HTTP: pemisah baris, byte NUL, atau karakter di atas `U+00FF`, seperti tanda kutip melengkung atau spasi lebar-nol. Claude Code menghentikan permintaan sebelum apa pun dikirim dan menyebutkan variabel atau pengaturan yang perlu diperbaiki. Penyebab umumnya adalah kredensial yang ditempel dari dokumen atau obrolan yang membawa karakter tak terlihat atau pemisah baris yang tidak disengaja.

Claude Code menjalankan pemeriksaan ini ketika mengirim permintaan ke Claude API secara langsung atau melalui [LLM gateway](/docs/id/llm-gateway). Pada penyedia cloud pihak ketiga seperti [Amazon Bedrock](/docs/id/amazon-bedrock), Claude Code tidak menjalankannya sebelum mengirim.

```text theme={null}
Invalid auth token · Fix external auth token
Invalid ANTHROPIC_CUSTOM_HEADERS · Fix the environment variable
Invalid request header from the environment · Fix the environment variable
```

Bagian pertama pesan bergantung pada asal nilai yang salah:

* `Invalid auth token`: bearer token dari [`ANTHROPIC_AUTH_TOKEN`](/docs/id/env-vars) atau [`CLAUDE_CODE_OAUTH_TOKEN`](/docs/id/env-vars)
* `Invalid ANTHROPIC_CUSTOM_HEADERS`: nama atau nilai header yang Anda atur di [`ANTHROPIC_CUSTOM_HEADERS`](/docs/id/env-vars). Deskripsi menghitung pasangan `Name: Value` mana yang bermasalah, seperti `distinct header 2 of 3 parsed from ANTHROPIC_CUSTOM_HEADERS`, tanpa mengulang nama atau nilainya, karena Anda yang memilih keduanya.
* `Invalid request header from the environment`: nilai yang disalin Claude Code ke header permintaan dari environment variable lain, seperti `CLAUDE_AGENT_SDK_CLIENT_APP`. Deskripsi menyebutkan variabel yang perlu diperbaiki.

Claude Code melaporkan `ANTHROPIC_API_KEY` yang salah yang tertangkap oleh pemeriksaan ini sebagai [Invalid API key](#invalid-api-key), dengan deskripsi penutup yang sama. Claude Code melaporkan kredensial `/login` tersimpan yang salah sebagai [Not logged in](#not-logged-in); jalankan `/login` untuk menyimpan kredensial baru. Output skrip [`apiKeyHelper`](/docs/id/settings-reference#apikeyhelper) tidak pernah mencapai pemeriksaan ini: Claude Code memvalidasinya saat skrip berjalan, dan output yang tidak dapat dibawa oleh header HTTP gagal dengan [Your apiKeyHelper script is failing](#your-apikeyhelper-script-is-failing).

Setelah `·` kedua, pesan menjelaskan masalahnya, seperti pada contoh lengkap berikut:

```text theme={null}
Invalid auth token · Fix external auth token · Invalid Authorization header value from ANTHROPIC_AUTH_TOKEN: it contains a line break at character 41 (120 characters on 2 lines).
```

Posisi menghitung karakter mulai dari satu. Deskripsi dibangun dari frasa tetap dan jumlah karakter, sehingga tidak pernah menyertakan nilai itu sendiri. Deskripsi menyebutkan karakter yang bermasalah hanya jika karakter tersebut merupakan karakter tak terlihat atau tipografis yang dikenal luas, seperti byte-order mark, spasi lebar-nol, atau tanda kutip melengkung, dan melaporkan karakter lainnya sebagai `a non-ASCII character`.

**Yang perlu dilakukan:**

* Atur ulang variabel atau pengaturan yang disebutkan pesan, ketik ulang karakter di sekitar posisi yang dilaporkan alih-alih menempelkannya lagi dari sumber yang sama
* Untuk `ANTHROPIC_CUSTOM_HEADERS`, pertahankan satu pasangan `Name: Value` per baris dan tulis ulang pasangan yang dihitung oleh pesan
* Jalankan `/status` untuk memastikan sumber kredensial mana yang aktif

<h3 id="this-organization-has-been-disabled">
  This organization has been disabled
</h3>

Claude Code menggunakan `ANTHROPIC_API_KEY` usang dari organisasi Console yang dinonaktifkan. Ketika Anda memiliki login langganan tersimpan, kunci tersebut menimpanya.

```text theme={null}
Your ANTHROPIC_API_KEY belongs to a disabled organization · Unset the environment variable to use your subscription instead
Your ANTHROPIC_API_KEY belongs to a disabled organization · Update or unset the environment variable
API Error: 400 ... This organization has been disabled.
```

Petunjuk setelah `·` bergantung pada kredensial tersimpan Anda: bentuk pertama muncul ketika `/login` yang tersimpan dapat mengambil peran setelah Anda menghapus pengaturan kunci, dan bentuk kedua ketika kunci tersebut adalah satu-satunya kredensial Anda.

Environment variable diutamakan daripada `/login`, sehingga kunci yang diekspor di profil shell Anda atau dimuat dari file `.env` tetap digunakan meskipun Anda memiliki langganan Pro atau Max yang berfungsi. Dalam mode non-interaktif (`-p`), kunci selalu digunakan jika ada.

**Yang perlu dilakukan:**

* Hapus pengaturan `ANTHROPIC_API_KEY` di shell saat ini dan hapus dari profil shell Anda, lalu jalankan ulang `claude`
* Jika pesan menyebutkan `Update or unset`, Anda tidak memiliki login tersimpan sebagai cadangan. Hapus pengaturan kunci dan jalankan `/login`, atau ganti kunci dengan kunci dari organisasi Console yang aktif.
* Jalankan `/status` setelahnya untuk memastikan kredensial aktif adalah langganan Anda
* Jika tidak ada environment variable yang diatur dan error tetap muncul, hubungi dukungan atau masuk dengan akun lain.

<h3 id="your-organization-has-disabled-api-key-authentication">
  Your organization has disabled API key authentication
</h3>

Pesan ini memerlukan Claude Code v2.1.169 atau lebih baru. Admin organisasi Console Anda telah menonaktifkan autentikasi kunci API, sehingga API menolak kunci yang dikirim Claude Code. Petunjuk pemulihan setelah `·` bervariasi tergantung asal kunci:

```text theme={null}
Your organization has disabled API key authentication · Run /login to sign in with your claude.ai account
Your organization has disabled API key authentication · Unset ANTHROPIC_API_KEY to use your claude.ai account instead
Your organization has disabled API key authentication · Unset ANTHROPIC_API_KEY and run /login to sign in with your claude.ai account
Your organization has disabled API key authentication · Unset the apiKeyHelper setting and run /login to sign in with your claude.ai account
Your organization has disabled API key authentication · Sign in again with your claude.ai account
```

Bentuk terakhir muncul dalam sesi yang dijalankan oleh aplikasi Claude Desktop, seperti tab Code atau Cowork, tempat Anda masuk kembali dari aplikasi.

Environment variable dan `apiKeyHelper` diutamakan daripada `/login`, sehingga menjalankan `/login` saja tidak membantu selama salah satunya masih menyediakan kunci. Lihat [Prioritas autentikasi](/docs/id/authentication#authentication-precedence).

**Yang perlu dilakukan:**

* Jika pesan menyebutkan `ANTHROPIC_API_KEY`, hapus pengaturannya di shell saat ini dan hapus dari profil shell atau file `.env` Anda, lalu jalankan ulang `claude`
* Jika pesan menyebutkan `apiKeyHelper`, hapus pengaturan [`apiKeyHelper`](/docs/id/settings-reference#apikeyhelper) dari `settings.json` Anda
* Jalankan `/login` untuk masuk dengan akun claude.ai Anda
* Jalankan `/status` setelahnya untuk memastikan kredensial aktif adalah langganan Anda, bukan kunci API
* Jika Anda memerlukan autentikasi kunci API untuk otomatisasi, minta admin organisasi Anda untuk mengaktifkannya kembali di Console

<h3 id="your-organization-has-disabled-claude-subscription-access">
  Your organization has disabled Claude subscription access
</h3>

Organisasi Claude Anda tidak mengizinkan masuk ke Claude Code dengan login langganan. Menjalankan `/login` lagi dengan akun yang sama akan menghasilkan error yang sama.

```text theme={null}
Your organization has disabled Claude subscription access for Claude Code · Use an Anthropic API key instead, or ask your admin to enable access
```

Ini adalah pengaturan organisasi di sisi server, sehingga tidak dapat ditimpa dari pengaturan lokal, environment variable, atau flag CLI.

Agent SDK dan mode non-interaktif `-p` menampilkan ini sebagai kode error `oauth_org_not_allowed`.

**Yang perlu dilakukan:**

* Minta admin Anda untuk mengaktifkan akses Claude Code bagi organisasi Anda
* Autentikasi dengan kunci API Console alih-alih langganan Anda. Lihat [Autentikasi Claude Console](/docs/id/authentication#claude-console-authentication) untuk pengaturannya.
* Jika Anda adalah admin dan tidak melihat opsi untuk mengaktifkan akses, hubungi [dukungan Anthropic](https://support.claude.com)

<h3 id="routines-are-disabled-by-your-organizations-policy">
  Routines are disabled by your organization's policy
</h3>

Seorang Owner di organisasi Team atau Enterprise Anda telah menonaktifkan routine di tingkat organisasi. Error muncul ketika Anda mencoba membuat atau menjalankan routine, misalnya dari UI [Routines](/docs/id/routines) di claude.ai/code. Pada Claude Code v2.1.227 atau lebih baru, pengaturan yang sama juga [menyembunyikan `/schedule`](/docs/id/routines#troubleshooting) di CLI.

```text theme={null}
Routines are disabled by your organization's policy.
```

Ini adalah pengaturan di sisi server, sehingga tidak dapat ditimpa dari pengaturan lokal, environment variable, atau flag CLI.

**Yang perlu dilakukan:**

* Minta Owner di organisasi Anda untuk mengaktifkan toggle **Routines** di [claude.ai/admin-settings/claude-code](https://claude.ai/admin-settings/claude-code)
* Untuk pekerjaan terjadwal sekali jalan yang tidak memerlukan routine tingkat organisasi, lihat [tugas terjadwal](/docs/id/scheduled-tasks)

<h3 id="remote-control-requires-the-anthropic-api">
  Remote Control requires the Anthropic API
</h3>

Sesi tidak berkomunikasi langsung dengan Anthropic API, yang diperlukan oleh [Remote Control](/docs/id/remote-control).

```text theme={null}
Remote Control is only available when using Claude via api.anthropic.com. CLAUDE_CODE_USE_BEDROCK is set, so this session is using Amazon Bedrock — unset it (or run in a shell without it) to use Remote Control.
```

Kalimat kedua menjelaskan apa yang mengalihkan sesi dari Anthropic API; sebelum v2.1.219, pesannya hanya berupa kalimat pertama. Tergantung penyebabnya, pesan menyebutkan:

* Variabel penyedia `CLAUDE_CODE_USE_*`, seperti `CLAUDE_CODE_USE_BEDROCK` untuk [Amazon Bedrock](/docs/id/amazon-bedrock) atau `CLAUDE_CODE_USE_VERTEX` untuk [Agent Platform Google Cloud](/docs/id/google-vertex-ai)
* [`ANTHROPIC_BASE_URL`](/docs/id/env-vars) yang mengarah ke host selain `api.anthropic.com`, seperti [LLM gateway](/docs/id/llm-gateway) atau proxy, bahkan ketika Anda masuk dengan claude.ai; sebelum v2.1.196, base URL kustom tidak memblokir Remote Control
* `ANTHROPIC_UNIX_SOCKET` diatur, sehingga sesi mengirim permintaannya melalui socket lokal alih-alih ke `api.anthropic.com`
* Proses masuk [cloud gateway](/docs/id/claude-apps-gateway) enterprise yang dilakukan melalui `/login`, yang tidak mendukung Remote Control dan tidak memiliki variabel untuk dihapus pengaturannya

**Yang perlu dilakukan:**

* Hapus pengaturan variabel yang disebutkan pesan, seperti `CLAUDE_CODE_USE_BEDROCK` atau `ANTHROPIC_BASE_URL`, dan mulai ulang sesi, atau mulai Remote Control dari sesi yang berkomunikasi langsung dengan Anthropic API
* Jika variabel tidak diatur di shell Anda, periksa kunci `env` di [file pengaturan](/docs/id/settings#where-settings-live) Anda, yang menerapkan environment variable ke setiap sesi
* Untuk pesan ini dan pesan startup Remote Control lainnya, lihat [Pemecahan masalah Remote Control](/docs/id/remote-control#troubleshooting)

<h3 id="remote-control-couldnt-refresh-your-login">
  Remote Control couldn't refresh your login
</h3>

Claude Code menjalankan koneksi [Remote Control](/docs/id/remote-control) aktif dengan kredensial berumur pendek yang diperoleh dan diperbaruinya menggunakan login claude.ai tersimpan Anda. Ketika claude.ai berhenti menerima login tersebut, atau Claude Code tidak lagi memiliki login tersimpan, Claude Code menghentikan Remote Control dan memerlukan Anda untuk masuk kembali. Kedua kegagalan dapat terjadi saat Claude Code masih menghubungkan atau kemudian, saat memperbarui kredensial.

Ketika Claude Code meminta layanan login untuk me-refresh login tersimpan Anda dan tidak mendapat jawaban, Claude Code tetap menjalankan Remote Control dan mencoba refresh lagi selama kredensial koneksi saat ini masih valid. Refresh tidak mendapat jawaban ketika Claude Code tidak dapat menjangkau layanan login, permintaan mengalami timeout, atau layanan gagal tanpa menolak login Anda. Jika layanan login masih belum menjawab saat kredensial tersebut kedaluwarsa, Claude Code menghentikan Remote Control dan melaporkan `OAuth token refresh failed`.

Ketika Claude Code menghentikan Remote Control, Claude Code menampilkan alasannya dalam peringatan dan dalam baris transkrip yang diawali dengan `Remote Control disconnected`. Sesi lokal Anda tetap berjalan tanpa Remote Control. Bagian ini mencakup baris-baris berikut:

```text theme={null}
Remote Control disconnected — Claude.ai login expired — run /login to restore Remote Control
Remote Control disconnected — Claude.ai login expired — run /login, then /remote-control
Remote Control disconnected — Claude.ai login was rejected — run /login, then /remote-control
Remote Control disconnected — OAuth token unavailable — run /login to restore Remote Control
Remote Control disconnected — OAuth token refresh failed — run /login to re-authenticate
Remote Control disconnected — JWT refresh failed: no OAuth token — run /login
Remote Control disconnected — Signed out of Claude — run /login, then /remote-control
```

Claude Code menyebutkan penyebabnya di bagian tengah pesan:

* `Claude.ai login expired` dan `Claude.ai login was rejected`: claude.ai tidak lagi menerima token login tersimpan Anda, karena token tersebut kedaluwarsa atau dicabut
* `OAuth token unavailable`: Claude Code tidak memiliki token login tersimpan ketika kredensial koneksi sudah waktunya diperbarui
* `OAuth token refresh failed`: claude.ai menolak token login tersimpan Anda saat Claude Code sedang menghubungkan ulang, dan me-refresh token tidak menghasilkan token baru
* `JWT refresh failed: no OAuth token`: Claude Code tidak menemukan token login tersimpan untuk melakukan pembaruan
* `Signed out of Claude`: Anda keluar di mesin ini, misalnya dengan menjalankan `/logout` di terminal lain, sehingga Claude Code tidak lagi memiliki login tersimpan untuk memperbarui koneksi

**Yang perlu dilakukan:**

* Jalankan `/login` untuk masuk kembali
* Jalankan `/remote-control` untuk menghubungkan ulang sesi. Pesan yang diakhiri dengan `run /login to restore Remote Control` tidak memerlukan langkah ini: Claude Code terhubung ulang dengan sendirinya setelah Anda masuk.

Sebelum v2.1.224, `OAuth token refresh failed — run /login to re-authenticate` berbunyi `OAuth token refresh failed — re-authenticate, then re-enable Remote Control`, dan `JWT refresh failed: no OAuth token — run /login` berbunyi `no OAuth token available for recovery (code <N>)`. Pesan `Claude.ai login expired`, `Claude.ai login was rejected`, dan `OAuth token unavailable` ditambahkan di v2.1.225.

Sebelum v2.1.238, Claude Code melaporkan kasus yang sekarang menyebutkan `Signed out of Claude` sebagai `JWT refresh failed: no OAuth token — run /login`, dan menghentikan Remote Control dengan `Claude.ai login expired — run /login to restore Remote Control` segera setelah satu refresh login tidak mendapat jawaban.

<h3 id="remote-control-could-not-renew-this-computers-connection">
  Remote Control could not renew this computer's connection
</h3>

Peringatan ini muncul di terminal yang menjalankan [`claude remote-control`](/docs/id/remote-control#start-a-remote-control-session) ketika server tidak dapat menggunakan login claude.ai Anda untuk memperbarui kredensial koneksinya sebelum kedaluwarsa. Kalimat terakhir peringatan menyebutkan berapa lama kredensial saat ini masih berfungsi, atau bahwa kredensial tersebut sudah kedaluwarsa:

```text theme={null}
Remote Control could not renew this computer's connection: claude.ai did not accept the sign-in it uses. Run `claude /login` to sign in again. The connection keeps working for about 26 hours; if it still cannot sign in then, it stops.
```

**Yang perlu dilakukan:**

* Jika peringatan meminta Anda menjalankan `claude /login`, buka terminal lain di mesin yang menjalankan server, jalankan `claude /login` di sana, dan masuk dengan akun claude.ai Anda
* Jika server masih tidak dapat masuk setelah kredensial koneksi kedaluwarsa, server mencetak kesalahan yang berisi `Poll: Authentication failed (401)` dan berhenti. Masuk kembali seperti yang disebutkan dalam kalimat kedua peringatan, lalu jalankan `claude remote-control` lagi di terminal tempat server berhenti.

<h3 id="remote-control-stopped-because-the-signed-in-account-changed">
  Remote Control stopped because the signed-in account changed
</h3>

Claude Code menampilkan baris ini selama sesi [Remote Control](/docs/id/remote-control) ketika Anda masuk ke akun atau organisasi claude.ai yang berbeda di mesin ini. Anda melakukan pergantian tersebut di luar sesi Claude Code, misalnya dengan menjalankan `/login` di terminal lain.

Sesi Remote Control yang Anda mulai saat masuk melalui `/login` menjadi milik akun dan organisasi claude.ai yang sedang masuk pada saat itu.

```text theme={null}
Remote Control disconnected — signed-in claude.ai account or organization changed on this machine — run /remote-control to start a session for the current account, or /login to switch back, then /remote-control
```

Claude Code menghentikan sesi Remote Control segera setelah claude.ai mengonfirmasi bahwa akun atau organisasi telah berubah. Sesi lokal Anda tetap berjalan tanpa Remote Control.

**Yang perlu dilakukan:**

* Jalankan `/remote-control` untuk memulai sesi Remote Control baru di bawah akun atau organisasi saat ini
* Untuk beralih kembali, jalankan `/login` dan masuk kembali ke akun atau organisasi sebelumnya. Kemudian jalankan `/remote-control`.

Sebelum v2.1.234, Claude Code tidak menyadari ketika Anda beralih ke akun atau organisasi lain di luar sesi Claude Code. Claude Code membiarkan sesi Remote Control tetap terhubung hingga permintaan berikutnya ke server Remote Control gagal dengan `Remote Control server rejected the request (HTTP 404)`. Kegagalan tersebut dapat terjadi berjam-jam setelah pergantian.

<h3 id="remote-control-stopped-because-the-app-running-the-session-signed-out-or-switched-accounts">
  Remote Control stopped because the app running the session signed out or switched accounts
</h3>

Ketika aplikasi desktop Claude atau IDE menjadi host sesi Anda, Claude Code mendapatkan token login-nya dari aplikasi tersebut, bukan dari `/login`. Ketika claude.ai menolak token tersebut, Claude Code meminta token baru dari aplikasi. Jika aplikasi menjawab bahwa aplikasi telah keluar, atau bahwa aplikasi kini masuk ke akun Claude yang berbeda, Claude Code mengakhiri sesi [Remote Control](/docs/id/remote-control) dan mengirimkan salah satu baris berikut ke aplikasi:

```text theme={null}
Remote Control stopped — the app running this session is now signed in to a different Claude account
Remote Control stopped — the app running this session is signed out of Claude. Sign in there, then turn Remote Control back on
```

Sesi lokal Anda tetap berjalan tanpa Remote Control.

**Yang perlu dilakukan:**

* Jika aplikasi telah keluar, masuk kembali ke aplikasi tersebut, lalu aktifkan kembali Remote Control di aplikasi
* Jika aplikasi beralih akun, Claude Code tidak dapat melanjutkan sesi yang telah berakhir di bawah akun baru. Mulai sesi Remote Control baru di bawah akun tersebut.

Sebelum v2.1.238, Claude Code mengirimkan pesan `run /login` yang tercantum di bagian [Remote Control couldn't refresh your login](#remote-control-couldnt-refresh-your-login) ke aplikasi dalam kedua kasus.

<h3 id="oauth-token-revoked-or-expired">
  OAuth token revoked or expired
</h3>

Login tersimpan Anda tidak lagi valid. Token yang dicabut berarti Anda keluar di semua tempat atau admin menghapus akses; token yang kedaluwarsa berarti refresh otomatis gagal di tengah sesi.

Kedua pesan melaporkan penolakan yang dikembalikan API untuk permintaan yang dikirim Claude Code. Ketika login tersimpan sudah dihapus setelah refresh yang gagal, Anda akan melihat [Login expired](#login-expired) sebagai gantinya. Jika Anda mengautentikasi dengan token berumur panjang di [`CLAUDE_CODE_OAUTH_TOKEN`](/docs/id/env-vars), Anda akan melihat pesan yang sama ketika token tersebut kedaluwarsa atau dicabut.

```text theme={null}
OAuth token revoked · Please run /login
Please run /login · API Error: 401 OAuth token has expired ...
```

Dalam [mode non-interaktif](/docs/id/headless) (`-p`) dan [Agent SDK](/docs/id/agent-sdk/overview), pesannya berbunyi sebagai berikut, dan kode error terstrukturnya adalah `authentication_failed`:

```text theme={null}
Failed to authenticate: OAuth token revoked. Please log in again or contact your administrator.
Failed to authenticate. API Error: 401 OAuth token has expired ...
```

Sebelum v2.1.287, dalam mode non-interaktif dan Agent SDK, pesan token yang dicabut berbunyi `Your account does not have access to Claude. Please login again or contact your administrator.`

**Yang perlu dilakukan:**

* Jalankan `/login` di prompt Claude Code untuk masuk kembali
* Jika perintah `-p` atau program Agent SDK Anda menggunakan login tersimpan, jalankan `claude` di lingkungan yang sama, selesaikan `/login`, lalu jalankan perintah atau program tersebut lagi. Untuk otomatisasi yang tidak dapat masuk secara interaktif, autentikasi dengan [`ANTHROPIC_API_KEY`](/docs/id/env-vars) atau [buat token berumur panjang dengan `claude setup-token`](/docs/id/authentication#generate-a-long-lived-token).
* Jika Anda mengautentikasi dengan environment variable `CLAUDE_CODE_OAUTH_TOKEN`, Claude Code terus mengirimkan nilai yang Anda atur setelah permintaan gagal dengan 401, alih-alih beralih ke token dari login tersimpan. [`/status`](/docs/id/commands) menampilkan kredensial ini sebagai baris `Auth token` yang berbunyi `CLAUDE_CODE_OAUTH_TOKEN`. Buat token baru dengan [`claude setup-token`](/docs/id/authentication#generate-a-long-lived-token) dan mulai ulang dengan token tersebut, atau hapus pengaturan variabel dan jalankan `/login`. Sebelum v2.1.225, Claude Code dapat mengganti nilai variabel di tengah sesi dengan token akses berumur pendek dari login tersimpan, dan sesi kembali gagal dengan error 401 setelah token tersebut kedaluwarsa.
* Untuk permintaan masuk yang berulang di setiap peluncuran, lihat pemeriksaan jam sistem dan langkah pemulihan penyimpanan kredensial macOS di [Pemecahan masalah](/docs/id/troubleshoot-install#not-logged-in-or-token-expired)
* Untuk kegagalan lain termasuk `403 Forbidden` dan masalah browser OAuth, lihat [Login dan autentikasi](/docs/id/troubleshoot-install#login-and-authentication)

<h3 id="api-error-401-invalid-authentication-credentials">
  API Error: 401 Invalid authentication credentials
</h3>

API mengenali format kredensial Anda tetapi menolak akun atau organisasi di baliknya. Anthropic mengembalikan pesan ini ketika kredensial baru saja dicabut, ketika organisasi dinonaktifkan atau menghapus akses Anda, atau ketika akun itu sendiri dinonaktifkan, sehingga token yang kedaluwarsa bukanlah penyebabnya. Kredensial tersebut dapat berupa login tersimpan Anda atau `ANTHROPIC_API_KEY` yang disetujui, dan perbaikannya berbeda, jadi mulailah dengan menjalankan `/status` untuk melihat mana yang aktif.

```text theme={null}
Please run /login · API Error: 401 Invalid authentication credentials
```

**Yang perlu dilakukan:**

* Jika `/status` menampilkan baris `API key` yang tidak ditandai sebagai tidak digunakan, [`ANTHROPIC_API_KEY`](/docs/id/authentication#authentication-precedence) yang disetujui adalah kredensial aktif dan diutamakan daripada login Anda, sehingga `/login` tidak menggantikannya. Rotasi kunci di Claude Console, atau kembali ke langganan Anda dengan menjalankan `unset ANTHROPIC_API_KEY`, atau di PowerShell `Remove-Item Env:ANTHROPIC_API_KEY`.
* Jika `/status` hanya menampilkan login Anda, jalankan `/login` sekali. Jika kredensial telah dicabut, login baru akan menggantikannya.
* Jika pesan yang sama muncul kembali untuk akun login yang sama, akun atau organisasi tersebut tidak lagi aktif. Periksa akun dan organisasi yang dilaporkan `/status`, dan minta admin organisasi Anda untuk memulihkan akses.
* Jika [`ANTHROPIC_BASE_URL`](/docs/id/env-vars) mengarah ke [LLM gateway](/docs/id/llm-gateway), teks setelah `401` adalah pesan dari gateway Anda, bukan dari Anthropic, dan `/login` tidak mengubahnya. Perbaiki kredensial yang diharapkan gateway Anda sebagai gantinya.

<h3 id="login-expired">
  Login expired
</h3>

Claude Code mencoba memperbarui login claude.ai tersimpan Anda dan layanan OAuth menolak refresh token yang tersimpan, sehingga Claude Code menghapus kredensial tersimpan. Setelah itu, setiap permintaan model berhenti secara lokal dengan pesan ini sebelum mencapai API, karena hanya `/login` yang dapat membuat kredensial baru.

Sebelum v2.1.206, Claude Code tetap mengirimkan permintaan model dengan kredensial apa pun yang tersisa di lingkungan, dan setiap model kemudian gagal dengan [There's an issue with the selected model](#theres-an-issue-with-the-selected-model) atau 401 alih-alih permintaan untuk masuk.

```text theme={null}
Login expired · Please run /login
```

Dalam [mode non-interaktif](/docs/id/headless) (`-p`) dan [Agent SDK](/docs/id/agent-sdk/overview), pesannya berbunyi sebagai berikut, dan kode error terstrukturnya adalah `authentication_failed`:

```text theme={null}
Failed to authenticate: OAuth session expired and could not be refreshed
```

Untuk pesan `Login expired` yang diakhiri dengan `or re-authenticate your Anthropic profile`, lihat [Anthropic profile login expired](#anthropic-profile-login-expired).

Ini bukan kondisi yang sama dengan [OAuth token revoked or expired](#oauth-token-revoked-or-expired). Pesan-pesan tersebut melaporkan penolakan yang dikembalikan API. Claude Code sendiri yang menghasilkan `Login expired` untuk login yang sudah gagal diperbaruinya, sehingga tidak mengirimkan permintaan. Ketika pembaruan gagal karena akun itu sendiri ditangguhkan, bukan karena login yang usang, Claude Code menampilkan [Your account is on hold](#your-account-is-on-hold) sebagai gantinya.

Sesi yang diautentikasi dengan kunci API, [`CLAUDE_CODE_OAUTH_TOKEN`](/docs/id/env-vars), atau penyedia pihak ketiga tidak menggunakan login tersimpan dan tidak pernah melihat pesan ini.

Anda dapat memeriksa kondisi ini sebelum permintaan gagal: [`/status`](/docs/id/commands) menampilkan baris `Login` yang berbunyi `Expired — log in again`, ditambah organisasi dan email yang disimpan untuk login yang kedaluwarsa. Baris ini hanya muncul ketika login tersimpan adalah kredensial aktif Anda dan tidak dapat lagi di-refresh. Sesi yang diautentikasi dengan cara lain tidak menampilkan baris ini, meskipun login yang kedaluwarsa masih tersimpan. Sebelum v2.1.210, `/status` tidak memberikan indikasi dalam kondisi ini bahwa login pernah ada, karena kredensial yang dihapus tidak menyisakan apa pun untuk dilaporkan.

**Yang perlu dilakukan:**

* Jalankan `/login` untuk masuk kembali. Mencoba ulang tanpa masuk akan menampilkan pesan yang sama pada setiap permintaan.
* Jika Anda masuk dengan akun claude.ai Anda di jendela Claude Code lain, lihat [Not logged in](#not-logged-in) untuk mengetahui kapan sesi ini mulai menggunakan login tersebut dengan sendirinya.
* Dalam mode non-interaktif, jalankan `claude` di lingkungan yang sama, selesaikan `/login`, lalu jalankan ulang perintah Anda. Untuk otomatisasi yang tidak dapat masuk secara interaktif, autentikasi dengan `ANTHROPIC_API_KEY` atau [buat token berumur panjang dengan `claude setup-token`](/docs/id/authentication#generate-a-long-lived-token).
* Jika proses masuk terus gagal, lihat [Login dan autentikasi](/docs/id/troubleshoot-install#login-and-authentication)

<h3 id="could-not-refresh-your-login">
  Could not refresh your login because another Claude Code process is refreshing it
</h3>

Pesan ini tidak berarti login Anda ditolak. Login claude.ai tersimpan Anda telah kedaluwarsa dan perlu diperbarui. Proses Claude Code lain di mesin yang sama memegang kunci refresh bersama, atau keluar dan meninggalkannya, dan refresh tidak mengalami kemajuan selama sesi ini menunggu. Claude Code menghentikan permintaan sebelum mengirimkannya:

```text theme={null}
Could not refresh your login because another Claude Code process is refreshing it (or exited mid-refresh) · Try again in a minute; if it keeps happening, close other Claude Code windows or sign in again with /login
```

Dalam [mode non-interaktif](/docs/id/headless) (`-p`) dan [Agent SDK](/docs/id/agent-sdk/overview), pesannya berbunyi sebagai berikut, dan kode error terstrukturnya adalah `server_error`:

```text theme={null}
Failed to refresh OAuth token: another Claude Code process is refreshing it or exited mid-refresh. This is usually transient; retry in a minute, and if it persists close other Claude Code processes or sign in again
```

Sesi yang diautentikasi dengan kunci API, [`CLAUDE_CODE_OAUTH_TOKEN`](/docs/id/env-vars), atau penyedia pihak ketiga tidak menggunakan login tersimpan dan tidak pernah melihat pesan ini.

**Yang perlu dilakukan:**

* Coba lagi dalam satu menit. Jika proses lain menyelesaikan refresh terlebih dahulu, sesi ini menggunakan login yang telah diperbarui.
* Jika pesan terus muncul, tutup jendela dan proses Claude Code lainnya, lalu coba lagi.
* Jika pesan muncul tanpa ada proses Claude Code lain yang berjalan, jalankan `/login`. Masuk kembali tidak menunggu kunci refresh.

<h3 id="couldnt-save-your-login">
  Couldn't save your login
</h3>

Anda masuk dengan claude.ai, tetapi Claude Code tidak dapat menyimpan login ke penyimpanan kredensialnya, sehingga login tidak selesai. Di macOS, hal ini dapat terjadi ketika login keychain terkunci, misalnya saat sleep atau idle, setelah Claude Code sudah membaca atau menyimpan kredensial di dalamnya selama sesi yang sama.

```text theme={null}
Couldn't save your login. If your Mac's keychain is locked, unlock it and log in again.
Couldn't save your login. Try logging in again.
```

Bentuk pertama muncul di macOS dan bentuk kedua di platform lainnya. Kegagalan penyimpanan kredensial yang bersifat sementara, seperti timeout atau penyimpanan yang tidak dapat dibaca, menghasilkan pesan yang sama.

**Yang perlu dilakukan:**

* Di macOS, buka kunci login keychain, lalu jalankan `/login` lagi
* Di platform lain, jalankan `/login` lagi
* Jika login masih tidak tersimpan, lihat [Not logged in or token expired](/docs/id/troubleshoot-install#not-logged-in-or-token-expired) untuk perintah membuka kunci keychain dan langkah pemulihan penyimpanan kredensial lainnya

<h3 id="failed-to-start-oauth-callback-server">
  Failed to start OAuth callback server
</h3>

Ketika `/login`, `claude auth login`, atau `claude setup-token` memasukkan Anda melalui browser, Claude Code membuka port yang mendengarkan di `127.0.0.1` agar browser Anda dapat mengembalikan hasil masuk kepadanya. Pesan ini berarti Claude Code tidak dapat membuka port tersebut, dan proses masuk berhenti sebelum jendela browser atau URL login muncul:

```text theme={null}
Failed to start OAuth callback server: Failed to start server. Is port 0 in use?
```

Jika pesan Anda diakhiri dengan `Is port 0 in use?`, upaya untuk mendengarkan di alamat loopback IPv4 `127.0.0.1` gagal total. Karena kegagalan terjadi sebelum URL login ada, alur `Paste code here if prompted` tidak tersedia sebagai solusi alternatif.

**Yang perlu dilakukan:**

* Untuk langsung masuk tanpa listener lokal: jika Anda menggunakan langganan claude.ai, jalankan [`claude setup-token`](/docs/id/authentication#generate-a-long-lived-token) di mesin tempat proses masuk berfungsi dan atur token yang dicetaknya sebagai `CLAUDE_CODE_OAUTH_TOKEN` di mesin ini. Jika tidak, atur `ANTHROPIC_API_KEY` ke kunci dari [Claude Console](https://platform.claude.com/settings/keys). [Prioritas autentikasi](/docs/id/authentication#authentication-precedence) menjelaskan cara Claude Code memilih di antara kredensial.
* Untuk menggunakan proses masuk browser di mesin ini, Claude Code harus dapat mendengarkan di `127.0.0.1`. Jika Claude Code berjalan di dalam sandbox, periksa apakah kebijakan sandbox mengizinkan mendengarkan di port lokal, lalu jalankan `/login` lagi. Jika seharusnya dapat dan masih gagal, jalankan `/feedback` agar laporan menyertakan detail lingkungan Anda.

<h3 id="claude-login-not-accepted">
  Claude login not accepted
</h3>

Anda mencoba memulai [sesi cloud](/docs/id/claude-code-on-the-web), dan server menolak membuatnya dengan 401: server tidak menerima login Claude yang dikirim mesin ini, biasanya karena login telah kedaluwarsa atau dicabut.

Bagian pertama baris tersebut adalah alasan dari server sendiri jika server memberikannya. Jika tidak, barisnya berbunyi:

```text theme={null}
Claude login not accepted · Run /login, then try again
```

**Yang perlu dilakukan:**

* Jalankan `/login`, selesaikan proses masuk, lalu mulai sesi lagi

<h3 id="artifacts-need-a-claude-ai-login">
  Artifacts need a claude.ai login
</h3>

Claude Code menolak publikasi atau pembacaan [artifact](/docs/id/artifacts) karena sesi tidak memiliki login claude.ai yang dapat digunakan untuk artifact.

Setiap bentuk pesan diawali dengan kata-kata yang sama, diikuti solusi yang bergantung pada cara sesi Anda diautentikasi. Tanpa kredensial yang bersaing, pesannya berbunyi:

```text theme={null}
Artifacts need a claude.ai login. Run /login and select "Claude account with subscription", then retry — the "Anthropic Console account" option does not provide claude.ai credentials.
```

**Yang perlu dilakukan:**

* Jalankan `/login` dan pilih **Claude account with subscription**. Opsi **Anthropic Console account** tidak menyediakan kredensial claude.ai.
* Ketika pesan menyebutkan kredensial yang diutamakan, seperti `ANTHROPIC_API_KEY`, pengaturan `apiKeyHelper`, atau kunci Console yang disimpan oleh `/login` sebelumnya, hapus kredensial tersebut sesuai petunjuk pesan, lalu jalankan `/login`
* Ketika pesan menyebutkan bahwa sesi jarak jauh ini diautentikasi melalui mesin yang meluncurkannya, masuk ke claude.ai di mesin tersebut, lalu hubungkan ulang sesi
* Ketika pesan menyebutkan bahwa kredensial disuntikkan oleh lingkungan host sesi, Anda tidak dapat mengubahnya dalam sesi tersebut; mulai sesi yang masuk ke claude.ai
* Lihat [Ketersediaan](/docs/id/artifacts#availability) untuk persyaratan artifact lainnya, seperti paket, penyedia model, dan kebijakan organisasi

<h3 id="administrator-policy-requires-a-cloud-gateway-sign-in">
  Administrator policy requires a Cloud gateway sign-in
</h3>

[Pengaturan terkelola](/docs/id/managed-settings) administrator di mesin ini mengatur [`forceLoginMethod`](/docs/id/settings-reference#forceloginmethod) ke `"gateway"` atau mengatur [`forceLoginGatewayUrl`](/docs/id/settings-reference#forcelogingatewayurl). Kecuali Anda memilih penyedia cloud melalui variabel seperti `CLAUDE_CODE_USE_BEDROCK`, Claude Code kemudian hanya menerima proses masuk [Claude apps gateway](/docs/id/claude-apps-gateway). Anda akan melihat salah satu dari dua pesan:

```text theme={null}
Not signed in to the Cloud gateway — run /login.
```

Permintaan model gagal dengan pesan ini ketika sesi tidak memiliki proses masuk gateway, misalnya karena Anda belum menjalankan `/login` sejak kebijakan diterapkan ke mesin.

Jika mesin juga menyimpan kredensial yang diterbitkan Anthropic dan pengaturan terkelola mengatur `forceLoginMethod` atau `forceLoginOrgUUID`, Claude Code keluar saat startup sebagai gantinya. Kredensial tersebut dapat berupa variabel `ANTHROPIC_API_KEY` atau `ANTHROPIC_AUTH_TOKEN`, pengaturan `apiKeyHelper`, atau kunci API yang disimpan oleh login Claude Console sebelumnya.

Pesan startup menyebutkan kredensial yang dikonfigurasi untuk sesi, tempat kredensial tersebut diatur, dan langkah untuk menghapusnya. Misalnya, dengan variabel `ANTHROPIC_API_KEY` yang diatur di shell Anda, pesannya berbunyi:

```text theme={null}
Administrator policy requires a Cloud gateway sign-in on this machine, but this session is configured with an API key from ANTHROPIC_API_KEY, which a gateway machine does not accept.

To continue: unset ANTHROPIC_API_KEY (or run in a shell without it), then run claude and sign in with /login.
```

**Yang perlu dilakukan:**

* Untuk `Not signed in to the Cloud gateway`, jalankan `/login` dan selesaikan proses masuk di layar **Cloud gateway**
* Untuk pesan startup, hapus kredensial dengan mengikuti langkah-langkah di akhir pesan
* Jika Anda yakin mesin tersebut seharusnya tidak memerlukan gateway, minta administrator yang mengelolanya untuk menghapus `forceLoginMethod` dan `forceLoginGatewayUrl` dari pengaturan terkelolanya

Sebelum v2.1.284, pesan startup mencantumkan kredensial yang mungkin alih-alih menyebutkan kredensial yang dikonfigurasi. Pesan tersebut diawali dengan `Administrator policy requires a Cloud gateway sign-in on this machine; the Anthropic-issued credential configured here (ANTHROPIC_API_KEY, ANTHROPIC_AUTH_TOKEN, or apiKeyHelper) is not used.` Jika Anda melihat kata-kata tersebut dan tidak dapat menentukan kredensial mana yang harus dihapus, perbarui ke v2.1.284 atau lebih baru dan mulai `claude` lagi.

Pada v2.1.265, sebuah regresi juga menampilkan pesan pertama di beberapa konfigurasi LLM gateway dan proxy yang diautentikasi dengan kunci API, `apiKeyHelper`, atau header kustom, bahkan tanpa persyaratan administrator di mesin. Perbarui ke v2.1.266 atau lebih baru. Anda tidak perlu mengubah konfigurasi Anda.

Sebelum v2.1.261, di mesin yang mengatur `forceLoginMethod` ke `"gateway"`, Claude Code menggunakan login tersimpan yang tersisa alih-alih menggagalkan permintaan model, dan melaporkan kredensial lingkungan yang dikonfigurasi dengan `This machine's managed settings require a first-party login` alih-alih pesan startup.

<h3 id="your-account-is-on-hold">
  Your account is on hold
</h3>

Akun Claude di balik login Anda telah ditangguhkan. Claude Code menampilkan pesan pertama ketika mencoba memperbarui login tersimpan Anda dan mengetahui penangguhan tersebut, dan pesan kedua ketika proses masuk yang Anda selesaikan di browser melaporkannya:

```text theme={null}
Your account is on hold and can't use Claude Code. View details or appeal: https://claude.ai/restricted
Your account is on hold and can't sign in to Claude Code. View details or appeal: https://claude.ai/restricted
```

Masuk kembali dengan akun yang sama tidak menghilangkan pesan tersebut, karena penangguhan berlaku pada akun, bukan pada login. Dalam [mode non-interaktif](/docs/id/headless) (`-p`) dan [Agent SDK](/docs/id/agent-sdk/overview), kode error terstrukturnya adalah `account_on_hold`. Sebelum v2.1.235, Claude Code melaporkan akun yang ditangguhkan sebagai [Login expired · Please run /login](#login-expired), yang langkah pemulihannya tidak dapat menghapus penangguhan.

**Yang perlu dilakukan:**

* Buka tautan di pesan untuk melihat detail penangguhan atau mengajukan banding
* Jika Anda memiliki akun Claude lain atau kunci API yang tidak terpengaruh oleh penangguhan, Anda dapat terus bekerja selama penangguhan diselesaikan: jalankan `/login` dengan akun tersebut, atau atur kunci dengan `ANTHROPIC_API_KEY`

<h3 id="anthropic-profile-login-expired">
  Anthropic profile login expired
</h3>

Claude Code melakukan autentikasi melalui profil kredensial Anthropic yang kredensial login tersimpannya telah kedaluwarsa, dan profil tersebut tidak menyimpan kredensial penyegaran yang dapat digunakan Claude Code untuk memperbaruinya. Claude Code menghentikan setiap permintaan secara lokal tanpa mencoba ulang.

```text theme={null}
Anthropic profile login expired · Re-authenticate your Anthropic profile
Login expired · Run /login to sign in again, or re-authenticate your Anthropic profile
```

**Yang perlu dilakukan:**

* Jika pesan diawali dengan `Login expired`, jalankan `/login` untuk masuk kembali
* Untuk memperbarui profil yang ditulis oleh login Console tanpa kunci atau `ant auth login` dari Claude Platform CLI, jalankan `/login` di mesin yang [menawarkan login tanpa kunci](/docs/id/authentication#sign-in-without-an-api-key). Pilih akun Anthropic Console, lalu **Sign in with your Console account**. Claude Code mengganti kredensial yang kedaluwarsa di profil tersebut
* Untuk memperbarui profil yang dibuat oleh alat lain, masuk kembali dengan alat tersebut. Jika Anda memilih **Sign in with your Console account** di `/login`, Claude Code membiarkan profil apa adanya dan membuat kunci API
* Jika administrator yang menyediakan kredensial profil, minta mereka untuk menerbitkan kredensial baru
* Jalankan `/status` untuk memastikan sumber kredensial aktif dan nama profil
* Untuk berhenti menggunakan profil, hapus pengaturan `ANTHROPIC_PROFILE` jika Anda mengaturnya, lalu autentikasi dengan cara lain, seperti `/login` atau `ANTHROPIC_API_KEY`

Cara pesan dimulai memberi tahu Anda bagaimana Claude Code menemukan profil:

* Ketika Claude Code menemukan profil dari direktori konfigurasi Anda dan mode autentikasinya adalah `user_oauth`, pesan diawali dengan `Login expired` dan menawarkan `/login` terlebih dahulu. Claude Code memberikan prioritas kepada `/login` yang berfungsi daripada profil yang ditemukan, lalu melakukan autentikasi dengan akun claude.ai Anda sebagai gantinya. Dari v2.1.234 hingga v2.1.277, bentuk ini berbunyi `Anthropic profile login expired · Run /login to use your claude.ai account instead, or re-authenticate the profile`. Sebelum v2.1.234, Claude Code juga menampilkan bentuk `Re-authenticate your Anthropic profile` dalam kasus ini.
* Ketika Anda memilih profil dengan `ANTHROPIC_PROFILE`, pesan diawali dengan `Anthropic profile login expired`.

Ini hanya muncul ketika kredensial aktif berasal dari profil kredensial Anthropic, yaitu profil yang Anda pilih dengan environment variable `ANTHROPIC_PROFILE`, yang ditemukan Claude Code sebagai profil aktif di direktori konfigurasi Anthropic Anda, atau yang ditulis Claude Code ketika Anda [masuk tanpa kunci API](/docs/id/authentication#sign-in-without-an-api-key). Sesi yang diautentikasi dengan kunci API, bearer token seperti `ANTHROPIC_AUTH_TOKEN`, atau penyedia pihak ketiga tidak pernah melihat pesan ini.

<h3 id="oauth-scope-requirement">
  OAuth scope requirement
</h3>

Token yang tersimpan dibuat sebelum adanya scope izin yang dibutuhkan oleh fitur yang lebih baru:

```text theme={null}
OAuth token does not meet scope requirement: user:profile
```

**Yang perlu dilakukan:**

* Jalankan `/login` untuk mendapatkan token baru dengan scope saat ini. Anda tidak perlu keluar terlebih dahulu.

<h3 id="claude-ai-rejected-the-session-token">
  claude.ai rejected the session token
</h3>

Permintaan [konektor claude.ai](/docs/id/mcp#use-mcp-servers-from-claude-ai) gagal karena claude.ai menolak token dari login Claude Code Anda. Token yang ditolak adalah login Anda, bukan otorisasi konektor itu sendiri di claude.ai, sehingga mengotorisasi konektor lagi tidak menyelesaikannya. Di `/mcp`, konektor ditampilkan sebagai `session token rejected` dan tampilan detailnya berbunyi:

```text theme={null}
claude.ai rejected the session token. Run /login, then reconnect.
```

**Yang perlu dilakukan:**

* Jalankan `/login` untuk masuk kembali
* Hubungkan ulang konektor dari `/mcp`, atau jalankan `/mcp reconnect <server>`. Menghubungkan ulang sebelum Anda masuk kembali akan membuat konektor tetap dalam kondisi yang sama. Opsi **Reconnect** di panel `/mcp` melaporkan `your claude.ai session token was rejected`; bentuk `/mcp reconnect <server>` yang diketik melaporkan penghubungan ulang yang berhasil meskipun token masih ditolak.

Sebelum v2.1.222, Claude Code menandai konektor sebagai memerlukan autentikasi, yang mengarahkan Anda ke alur otorisasi konektor meskipun menyelesaikannya tidak mengatasi kondisi tersebut.

<h3 id="mcp-server-needs-you-to-sign-in-again">
  MCP server needs you to sign in again
</h3>

[Server MCP](/docs/id/mcp) jarak jauh menolak kredensial pada panggilan tool di tengah sesi, biasanya karena proses masuk atau token telah kedaluwarsa atau karena token tidak memiliki izin yang dibutuhkan tool. Panggilan tool gagal, dan `/mcp` menandai server sebagai [memerlukan autentikasi](/docs/id/mcp#authenticate-with-remote-mcp-servers).

Untuk server yang Anda masuki dari Claude Code, termasuk konektor claude.ai, proses masuk telah kedaluwarsa atau dicabut:

```text theme={null}
MCP server "<name>" needs you to sign in again (run /mcp to re-authenticate)
```

Jalankan `/mcp`, pilih server, dan masuk kembali dari menunya.

Untuk server yang dikonfigurasi dengan skrip [`headersHelper`](/docs/id/mcp#use-dynamic-headers-for-custom-authentication), Claude Code telah menjalankan ulang helper dan mencoba ulang panggilan sekali sebelum menampilkan ini:

```text theme={null}
MCP server "<name>" rejected the credential from its headersHelper (check the helper and run /mcp to reconnect, or to authenticate if the server also uses OAuth)
```

Periksa bahwa helper mengembalikan kredensial yang diterima server, lalu hubungkan ulang dari `/mcp`, yang menjalankan helper lagi.

Untuk server dengan header `Authorization` statis di konfigurasinya:

```text theme={null}
MCP server "<name>" rejected the Authorization header in its config (update it, then run /mcp to reconnect)
```

Perbarui nilai header di tempat server dikonfigurasi, lalu hubungkan ulang dari `/mcp`.

Sebelum v2.1.273, kasus proses masuk kedaluwarsa, `headersHelper`, dan header `Authorization` semuanya menampilkan `MCP server "<name>" requires re-authorization (token expired)`.

Server juga dapat menolak panggilan tool dengan HTTP 403 `insufficient_scope` untuk meminta Anda mengotorisasi suatu scope, terkadang scope yang sudah tercantum di token Anda. Pesan menyebutkan scope tersebut:

```text theme={null}
MCP server "<name>" needs additional permissions (scope: "<scope>") — run /mcp to re-authenticate
```

Jalankan `/mcp`, pilih server, dan autentikasi kembali dari menunya.

Ketika konfigurasi server tidak mengatur [`oauth.scopes`](/docs/id/mcp#restrict-oauth-scopes) maupun [`authServerMetadataUrl`](/docs/id/mcp#override-oauth-metadata-discovery), Claude Code meminta scope yang disebutkan server. Dengan salah satu pengaturan tersebut, Claude Code meminta scope dari pengaturan itu sebagai gantinya. Jika Anda menetapkan `oauth.scopes`, tambahkan scope yang hilang ke daftar tersebut sebelum Anda mengautentikasi kembali.

Sebelum v2.1.274, kasus ini menampilkan pesan `needs you to sign in again`, dan sebelum v2.1.273 menampilkan `requires re-authorization (token expired)` seperti kasus lainnya.

<h3 id="mcp-server-url-is-missing-or-not-a-valid-url">
  MCP server URL is missing or not a valid URL
</h3>

Claude Code menolak memulai proses masuk OAuth untuk server MCP jarak jauh karena `url` yang dikonfigurasi untuk server tidak dapat diurai sebagai URL. Kecuali Claude Code memiliki masalah konfigurasi yang lebih spesifik untuk dilaporkan bagi server tersebut, menjalankan [`claude mcp login <name>`](/docs/id/mcp#authenticate-from-the-command-line) di shell Anda mencetak penolakan sebagai:

```text theme={null}
Couldn't complete authentication for "<name>": This server's URL is missing or not a valid URL, so sign-in can't start. Fix the URL in its MCP config (or set the environment variable it uses) and try again.
```

**Yang perlu dilakukan:**

* Atur `url` entri ke endpoint server yang sebenarnya di tempat server dikonfigurasi, atau atur environment variable yang disebutkan oleh [referensi `${VAR}`](/docs/id/mcp#environment-variable-expansion-in-mcp-json) miliknya, lalu jalankan proses masuk lagi.

<h3 id="issuer-mismatch-in-authorization-response">
  Issuer mismatch in authorization response
</h3>

Selama [proses masuk OAuth MCP](/docs/id/mcp#authenticate-with-remote-mcp-servers), server otorisasi mengarahkan kembali ke Claude Code dengan parameter `iss` yang tidak menyebutkan issuer yang diharapkan Claude Code dari metadata OAuth server. Issuer yang salah pada langkah ini merupakan ciri serangan mix-up server otorisasi, sehingga Claude Code menggagalkan proses masuk alih-alih menukar kode otorisasi. Claude Code menampilkan error di menu server `/mcp` setelah proses masuk browser:

```text theme={null}
Issuer mismatch in authorization response (RFC 9207): expected "https://auth.example.com", received "https://other.example.com"
```

`expected` adalah issuer dari metadata OAuth server, dan `received` adalah nilai `iss` yang dibawa redirect. Proses masuk yang redirect-nya tidak membawa parameter `iss` lolos pemeriksaan, kecuali metadata server mengatur `authorization_response_iss_parameter_supported`, dalam hal ini Claude Code menggagalkan proses masuk.

**Yang perlu dilakukan:**

* Coba proses masuk lagi dari `/mcp`
* Jika error berulang, laporkan ke operator server. Perbaikannya ada di sisi server: server otorisasi harus mengembalikan issuer yang sama di parameter `iss` dengan yang diiklankannya di metadata
* Untuk terhubung selama server sedang diperbaiki, mulai Claude Code dengan [`MCP_SDK_GENERATION=v1`](/docs/id/env-vars), yang [runtime](/docs/id/mcp#mcp-client-runtimes)-nya tidak menjalankan pemeriksaan ini. Ini menghilangkan perlindungan terhadap serangan mix-up, jadi utamakan perbaikan di sisi server

Sebelum v2.1.232, Claude Code menggunakan runtime v2 hanya dalam peluncuran bertahap atau ketika Anda mengatur `MCP_SDK_GENERATION=v2`.

<h3 id="refusing-to-send-credentials-to-non-https-token-endpoint">
  Refusing to send credentials to non-https token endpoint
</h3>

Pada [runtime v2](/docs/id/mcp#mcp-client-runtimes), Claude Code mengirimkan permintaan token [OAuth MCP](/docs/id/mcp#authenticate-with-remote-mcp-servers) hanya ke token endpoint yang dilayani melalui HTTPS atau di `localhost`, `127.0.0.1`, atau `::1`. Pesan ini berarti token endpoint server bukan keduanya, sehingga Claude Code berhenti sebelum mengirimkan permintaan. Hal itu terjadi setelah proses masuk browser, sehingga langkah browser berhasil terlebih dahulu, dan terjadi lagi setiap kali Claude Code me-refresh token server.

Dalam bentuk lengkapnya, pesan ini berasal dari MCP SDK dan mengutip token endpoint yang ditolaknya. Di log debug, pesan ini mengikuti `Error during auth completion:` untuk proses masuk atau `Token refresh failed:` untuk refresh. Di shell Anda, `claude mcp login <name>` mencetaknya setelah `Couldn't complete authentication for "<name>":`, dan dalam sesi, `/mcp` menampilkannya di bawah menu server:

```text theme={null}
Refusing to send credentials to non-https token endpoint 'http://192.168.1.50:8123/oauth/token'. OAuth token requests MUST use TLS (localhost / 127.0.0.1 / ::1 are exempt).
```

Claude Code memperlakukan URL server yang memiliki query string atau segmen path panjang yang tampak acak sebagai kemungkinan rahasia. Untuk server seperti itu, Claude Code menyamarkan error proses masuk yang dimunculkan MCP SDK sebelum menampilkan atau menuliskannya ke log. Error ini kemudian terbaca sebagai nama pendek yang dapat berubah antar rilis, seperti `io`, diikuti oleh `from the MCP SDK for` dan URL server yang disamarkan. Error lain dari MCP SDK memiliki bentuk yang sama di sana. Pesan yang disamarkan dapat berupa error ini hanya ketika token endpoint server adalah `http://` biasa di alamat selain `localhost`, `127.0.0.1`, atau `::1`.

**Yang perlu dilakukan:**

* Layani token endpoint tersebut melalui HTTPS, misalnya dengan menempatkan server di belakang reverse proxy atau tunnel yang mengakhiri TLS dan mengonfigurasi server untuk mengiklankan alamat `https://`
* Untuk terhubung tanpa mengubah server, mulai Claude Code dengan [`MCP_SDK_GENERATION=v1`](/docs/id/env-vars), yang [runtime](/docs/id/mcp#mcp-client-runtimes)-nya tidak menerapkan aturan ini dan mengirimkan permintaan token melalui HTTP biasa. Pilihan tersebut berlaku hingga Anda keluar dan berlaku untuk setiap server. Runtime v1 juga melewati [pemeriksaan issuer](#issuer-mismatch-in-authorization-response), jadi utamakan melayani endpoint melalui HTTPS

<h3 id="aws-credentials-expired-or-invalid">
  AWS credentials expired or invalid
</h3>

Token sesi AWS Anda telah kedaluwarsa atau ditolak. Pesan ini muncul pada 401 dari [Claude Platform on AWS](/docs/id/claude-platform-on-aws) atau [endpoint Mantle](/docs/id/amazon-bedrock#use-the-mantle-endpoint), yang merupakan cara penyedia tersebut melaporkan token keamanan yang kedaluwarsa.

Petunjuk tindakan di bagian tengah bervariasi sesuai pengaturan Anda. Bagian yang tetap adalah awalan `AWS credentials expired or invalid`:

```text theme={null}
AWS credentials expired or invalid · run /login and select "Claude Platform on AWS · refresh credentials", or run `aws sso login --profile myprofile` in another terminal · API Error: 401 ...
```

Sebelum v2.1.273, pesan ini hanya muncul ketika `awsAuthRefresh` dikonfigurasi.

**Yang perlu dilakukan:**

* Jika petunjuk menyebutkan bahwa kredensial dikelola oleh lingkungan ini, aplikasi yang meluncurkan Claude Code memiliki kredensial tersebut dan langkah lain di sini tidak berlaku: coba lagi, atau hubungi administrator Anda
* Jika [`awsAuthRefresh`](/docs/id/amazon-bedrock#advanced-credential-configuration) diatur, jalankan perintah yang disebutkan dalam pesan, seperti `aws sso login --profile myprofile`, di terminal lain dan selesaikan proses masuk browser, lalu coba lagi. Jika tidak, refresh sendiri kredensial AWS yang Anda gunakan: proses masuk SSO, access key, kunci API, atau token proxy Anda
* Dengan `awsAuthRefresh` diatur dalam sesi interaktif, Anda dapat menjalankan `/login` sebagai gantinya, pilih **3rd-party platform**, lalu pilih **Claude Platform on AWS · refresh credentials** di bawah **Using 3rd-party platforms** untuk menjalankan perintah yang sama tanpa memulai ulang Claude Code. Lihat [Konfigurasi kredensial AWS](/docs/id/claude-platform-on-aws#1-configure-aws-credentials)
* Jika error berulang setelah perintah refresh berhasil, pastikan identitas valid di luar Claude Code dengan `aws sts get-caller-identity` di shell dan profil yang sama

<h3 id="aws-authentication-failed">
  AWS authentication failed
</h3>

Penyedia AWS Anda mengembalikan 403, atau [Amazon Bedrock](/docs/id/amazon-bedrock) mengembalikan 401.

Amazon Bedrock melaporkan token keamanan yang kedaluwarsa sebagai 403, tetapi 403 juga merupakan cara Amazon Bedrock melaporkan penolakan otorisasi, seperti `AccessDeniedException` karena izin IAM yang tidak ada. Claude Code tidak dapat membedakan kedua penyebab tersebut.

401 dari Amazon Bedrock juga masuk ke sini alih-alih ke [AWS credentials expired or invalid](#aws-credentials-expired-or-invalid), karena Amazon Bedrock tidak melaporkan token yang kedaluwarsa sebagai 401. 401 dari endpoint tersebut biasanya berasal dari hal lain di jalur permintaan, seperti proxy perusahaan.

Refresh kredensial memperbaiki token yang kedaluwarsa tetapi tidak dapat memperbaiki penyebab lainnya, sehingga pesan menawarkan keduanya:

```text theme={null}
AWS authentication failed · run /login and select "Claude Platform on AWS · refresh credentials", or run `aws sso login --profile myprofile` in another terminal · if credentials are current, check AWS permissions and model access · API Error: 403 ...
```

Petunjuk tindakan di bagian tengah bervariasi sesuai pengaturan Anda. Bagian yang tetap adalah awalan `AWS authentication failed`.

Ketika 403 merupakan jawaban Amazon Bedrock bahwa Anda tidak memiliki akses ke model dengan ID model yang ditentukan, petunjuk akan meminta Anda untuk mengaktifkan model untuk akun dan region Anda di konsol Amazon Bedrock.

Sebelum v2.1.273, pesan ini hanya muncul ketika `awsAuthRefresh` dikonfigurasi.

**Yang perlu dilakukan:**

* Jika petunjuk menyebutkan bahwa kredensial dikelola oleh lingkungan ini, aplikasi yang meluncurkan Claude Code memiliki kredensial tersebut dan langkah lain di sini tidak berlaku: coba lagi, atau hubungi administrator Anda
* Refresh kredensial AWS Anda jika kredensial yang kedaluwarsa adalah penyebabnya: jalankan perintah [`awsAuthRefresh`](/docs/id/amazon-bedrock#advanced-credential-configuration) yang disebutkan dalam pesan jika diatur, atau refresh sendiri proses masuk SSO, access key, kunci API, atau token proxy Anda
* Jika kredensial Anda masih berlaku, pastikan izin IAM di [Konfigurasi IAM](/docs/id/amazon-bedrock#iam-configuration) terpasang pada identitas yang Anda gunakan dan bahwa model yang dipilih diaktifkan untuk akun dan region Anda
* Jalankan `aws sts get-caller-identity` untuk memastikan identitas mana yang digunakan oleh permintaan Anda

<h3 id="google-cloud-credentials-expired-or-invalid">
  Google Cloud credentials expired or invalid
</h3>

Kredensial Google Cloud Anda untuk [Agent Platform Google Cloud](/docs/id/google-vertex-ai) telah kedaluwarsa atau ditolak: permintaan mengembalikan 401, yang merupakan cara Agent Platform melaporkan kredensial yang kedaluwarsa.

Petunjuk tindakan di bagian tengah bervariasi sesuai pengaturan Anda. Bagian yang tetap adalah awalan `Google Cloud credentials expired or invalid`:

```text theme={null}
Google Cloud credentials expired or invalid · refresh your Google Cloud credentials (application default sign-in, or the key file in GOOGLE_APPLICATION_CREDENTIALS) and retry · API Error: 401 ...
```

**Yang perlu dilakukan:**

* Jika petunjuk menyebutkan bahwa kredensial dikelola oleh lingkungan ini, aplikasi yang meluncurkan Claude Code memiliki kredensial tersebut dan langkah lain di sini tidak berlaku: coba lagi, atau hubungi administrator Anda
* Jika Anda mengautentikasi dengan application default credentials, jalankan perintah [`gcpAuthRefresh`](/docs/id/google-vertex-ai#advanced-credential-configuration) yang disebutkan dalam pesan, atau `gcloud auth application-default login`, dan selesaikan proses masuk, lalu coba lagi
* Jika Anda merutekan melalui [LLM gateway](/docs/id/llm-gateway) dengan `CLAUDE_CODE_SKIP_VERTEX_AUTH` diatur, refresh token gateway di `ANTHROPIC_AUTH_TOKEN` atau `ANTHROPIC_CUSTOM_HEADERS`, lalu coba lagi
* Jika Anda mengautentikasi dengan file kunci service account, pastikan `GOOGLE_APPLICATION_CREDENTIALS` mengarah ke kunci yang valid. Lihat [Konfigurasi kredensial GCP](/docs/id/google-vertex-ai#3-configure-gcp-credentials)
* Jika error berulang setelah refresh, pastikan identitas berfungsi di luar Claude Code dengan `gcloud auth application-default print-access-token` di shell yang sama

Sebelum v2.1.273, 401 dari Agent Platform menampilkan pesan generik `Please run /login` atau `Failed to authenticate` sebagai gantinya, yang tidak dapat me-refresh kredensial Google Cloud.

<h3 id="google-cloud-authentication-failed">
  Google Cloud authentication failed
</h3>

[Agent Platform dari Google Cloud](/docs/id/google-vertex-ai) mengembalikan 403, yang digunakannya untuk penolakan otorisasi, bukan untuk kredensial yang kedaluwarsa. Biasanya identitas yang Anda gunakan untuk autentikasi tidak memiliki izin IAM, atau model tersebut belum diaktifkan untuk proyek Anda.

Petunjuk tindakan di bagian tengah bervariasi sesuai penyiapan Anda. Bagian yang tetap adalah awalan `Google Cloud authentication failed`:

```text theme={null}
Google Cloud authentication failed · refresh your Google Cloud credentials (application default sign-in, or the key file in GOOGLE_APPLICATION_CREDENTIALS) and retry · if credentials are current, check GCP IAM permissions and Vertex AI model access · API Error: 403 ...
```

**Yang harus dilakukan:**

* Jika petunjuk menyatakan bahwa kredensial dikelola oleh lingkungan ini, aplikasi yang meluncurkan Claude Code adalah pemilik kredensial tersebut dan langkah-langkah lain di sini tidak berlaku: coba lagi, atau hubungi administrator Anda
* Pastikan peran dalam [konfigurasi IAM](/docs/id/google-vertex-ai#iam-configuration) telah diberikan kepada identitas yang Anda gunakan untuk autentikasi
* Pastikan model telah diaktifkan untuk proyek Anda. Lihat [Meminta akses model](/docs/id/google-vertex-ai#2-request-model-access)

Sebelum v2.1.273, 403 dari Agent Platform menampilkan pesan generik `Please run /login` atau `Failed to authenticate`, yang tidak dapat memperbarui kredensial Google Cloud.

<h3 id="microsoft-foundry-authentication-failed">
  Microsoft Foundry authentication failed
</h3>

[Microsoft Foundry](/docs/id/microsoft-foundry) mengembalikan 401 atau 403: kredensial Azure pada permintaan ditolak, atau identitas di baliknya tidak memiliki akses ke resource Foundry. `/login` tidak dapat membuat kredensial Azure. Petunjuk tindakan di bagian tengah bervariasi sesuai penyiapan Anda. Bagian yang tetap adalah awalan `Microsoft Foundry authentication failed`:

```text theme={null}
Microsoft Foundry authentication failed · refresh your Foundry credential (ANTHROPIC_FOUNDRY_AUTH_TOKEN, ANTHROPIC_FOUNDRY_API_KEY, Azure sign-in for Entra, or your proxy token) and retry · if credentials are current, check access to the Foundry resource · API Error: 401 ...
```

**Yang harus dilakukan:**

* Jika petunjuk menyatakan bahwa kredensial dikelola oleh lingkungan ini, aplikasi yang meluncurkan Claude Code adalah pemilik kredensial tersebut dan langkah-langkah lain di sini tidak berlaku: coba lagi, atau hubungi administrator Anda
* Perbarui kredensial yang Anda konfigurasikan di [Mengonfigurasi kredensial Azure](/docs/id/microsoft-foundry#2-configure-azure-credentials): rotasi `ANTHROPIC_FOUNDRY_API_KEY`, buat `ANTHROPIC_FOUNDRY_AUTH_TOKEN` yang baru, atau jalankan `az login` agar rantai kredensial default Microsoft Entra dapat masuk kembali
* Jika kredensial masih berlaku, pastikan identitas tersebut memiliki akses ke resource Foundry. Lihat [Konfigurasi Azure RBAC](/docs/id/microsoft-foundry#azure-rbac-configuration)

Sebelum v2.1.273, 401 atau 403 dari Microsoft Foundry menampilkan pesan generik `Please run /login` atau `Failed to authenticate`, yang tidak dapat memperbarui kredensial Azure.

<h3 id="could-not-load-aws-or-google-cloud-credentials">
  Could not load AWS or Google Cloud credentials
</h3>

Claude Code tidak dapat memperoleh kredensial yang dapat digunakan dari rantai penyedia kredensial AWS atau dari application default credentials Google Anda di mesin tempat Claude Code berjalan, sehingga tidak ada permintaan yang mencapai penyedia cloud Anda. Detail setelah `·` menyebutkan penyebab spesifiknya, seperti sesi SSO yang kedaluwarsa, application default credentials yang tidak ada yang dilaporkan sebagai `Could not load the default credentials`, atau proses masuk yang dicabut yang dilaporkan sebagai `invalid_grant`:

```text theme={null}
API Error: Could not load AWS credentials · Could not load credentials from any providers. Check or refresh your AWS credentials and try again.
API Error: Could not load Google Cloud credentials · invalid_grant. Check or refresh your Google Cloud credentials and try again.
```

Dalam [mode non-interaktif](/docs/id/headless) dengan `-p` dan di [Agent SDK](/docs/id/agent-sdk/overview), kode error terstrukturnya adalah `cloud_credential_error`. Sebelum v2.1.267, pesan hanya menampilkan teks detail setelah `API Error:`, dan kode terstrukturnya adalah `server_error` atau `unknown`.

**Yang harus dilakukan:**

* Jalankan perintah masuk penyedia Anda, seperti `aws sso login --profile myprofile` atau `gcloud auth application-default login`, lalu coba lagi. [Kredensial Bedrock, Agent Platform, atau Foundry tidak dimuat](/docs/id/troubleshoot-install#bedrock-agent-platform-or-foundry-credentials-not-loading) menunjukkan cara memastikan kredensial di luar Claude Code
* Jika detailnya berbunyi `AWS default-chain credential resolve timed out`, rantai tersebut macet alih-alih gagal, jadi ikuti [AWS default-chain credential resolve timed out](#aws-default-chain-credential-resolve-timed-out) sebagai gantinya

<h3 id="aws-default-chain-credential-resolve-timed-out">
  AWS default-chain credential resolve timed out
</h3>

Rantai penyedia kredensial default AWS tidak menghasilkan kredensial dalam 60 detik, sehingga Claude Code menghentikan proses resolusi dan menggagalkan permintaan. Timeout ini adalah salah satu penyebab [Could not load AWS or Google Cloud credentials](#could-not-load-aws-or-google-cloud-credentials). Kegagalan ini terjadi pada resolusi kredensial lokal: permintaan tidak pernah mencapai [Amazon Bedrock](/docs/id/amazon-bedrock), [Claude Platform on AWS](/docs/id/claude-platform-on-aws), atau [endpoint Mantle](/docs/id/amazon-bedrock#use-the-mantle-endpoint). Claude Code menghapus [cache kredensial](/docs/id/amazon-bedrock#credential-caching-and-resolution-timeout) miliknya dan mencoba ulang sebelum error ini muncul, sehingga saat Anda melihatnya, rantai tersebut telah macet pada beberapa percobaan berulang.

```text theme={null}
API Error: Could not load AWS credentials · AWS default-chain credential resolve timed out. Check or refresh your AWS credentials and try again.
```

Penyebab umumnya adalah perintah `credential_process` dalam profil AWS Anda yang menunggu input yang tidak dapat diterimanya, serta container atau VM yang instance metadata service (IMDS)-nya tidak pernah menjawab probe dari rantai tersebut.

Sebelum v2.1.267, pesannya berbunyi `API Error: AWS default-chain credential resolve timed out`.
Sebelum v2.1.207, rantai yang macet membuat permintaan menunggu tanpa batas alih-alih gagal.

**Yang harus dilakukan:**

* Jalankan `aws sts get-caller-identity` di shell yang sama dengan `AWS_PROFILE` yang sama. Jika perintah itu juga macet, perbaiki profilnya; perintah `credential_process` yang meminta input secara interaktif adalah penyebab umum.
* Selesaikan langkah masuk sebelum memulai Claude Code, misalnya `aws sso login --profile myprofile`
* Jika rantai Anda menjalankan proses masuk interaktif yang memang membutuhkan lebih dari 60 detik, seperti SSO dengan MFA melalui wrapper seperti `aws-vault`, naikkan batasnya dalam milidetik dengan [`CLAUDE_CODE_AWS_CHAIN_RESOLVE_TIMEOUT_MS`](/docs/id/env-vars)

<h3 id="bedrock-setup-verification-timed-out-waiting-for-aws">
  Bedrock setup verification timed out waiting for AWS
</h3>

Panggilan ke AWS selama verifikasi kredensial di [wizard penyiapan Bedrock](/docs/id/amazon-bedrock#sign-in-with-bedrock), seperti pencarian kredensial atau pemeriksaan identitas, tidak selesai dalam batas 60 detik. Wizard berhenti menunggu dan menggagalkan langkah verifikasi:

```text theme={null}
Timed out after 60s waiting for AWS. Check your network and proxy settings; if a credential helper needs longer to prompt you, raise CLAUDE_CODE_AWS_CHAIN_RESOLVE_TIMEOUT_MS.
```

Angka tersebut mencerminkan batas Anda: 60 detik secara default, atau nilai yang Anda tetapkan di [`CLAUDE_CODE_AWS_CHAIN_RESOLVE_TIMEOUT_MS`](/docs/id/env-vars).

Penyebab umumnya adalah jaringan atau proxy yang menahan permintaan ke AWS, termasuk pembaruan token SSO, serta credential helper yang masih menunggu input yang tidak dapat Anda lihat. Naikkan batasnya hanya jika helper tersebut memang membutuhkan waktu lebih lama.

Satu permintaan ke AWS yang macet juga dapat gagal karena timeout per permintaannya sendiri, yang menampilkan pesan lebih pendek pada langkah yang sama:

```text theme={null}
A request to AWS timed out. Check your network and proxy settings, then try again.
```

Ketika timeout yang sama terjadi pada langkah penyematan model, wizard menandai model sebagai `unreachable` alih-alih menampilkan salah satu pesan tersebut.

**Yang harus dilakukan:**

* Jalankan `aws sts get-caller-identity` di shell yang sama. Jika perintah itu juga macet, kemacetan berada di luar Claude Code, yaitu di jaringan Anda, proxy Anda, atau credential helper dalam profil AWS Anda; perbaiki itu terlebih dahulu.
* Selesaikan proses masuk interaktif apa pun sebelum membuka wizard, misalnya `aws sso login --profile myprofile`
* Jika credential helper dalam profil AWS Anda memang membutuhkan lebih dari 60 detik untuk meminta input dari Anda, naikkan batasnya dalam milidetik dengan [`CLAUDE_CODE_AWS_CHAIN_RESOLVE_TIMEOUT_MS`](/docs/id/env-vars)

<h3 id="cloud-gateway-session-expired">
  Cloud gateway session expired
</h3>

Anda masuk melalui [Claude apps gateway](/docs/id/claude-apps-gateway), dan sesi gateway yang tersimpan di mesin ini telah kedaluwarsa dan tidak dapat diperbarui, atau gateway tidak lagi menerimanya, misalnya setelah [JWT secret gateway diganti](/docs/id/claude-apps-gateway-deploy#jwt-secret-rotation). Jika Anda melihat baris ini saat memulai `claude` secara interaktif, sesi telah dibuka dalam keadaan keluar dari gateway:

```text theme={null}
Cloud gateway session expired — run /login to reconnect.
```

Baris yang sama dapat muncul di tengah sesi ketika kredensial gateway kedaluwarsa dan Claude Code tidak dapat memperbaruinya.

Dalam eksekusi [non-interaktif](/docs/id/headless), sesi latar belakang atau sesi tanpa pengawasan lainnya, atau subperintah `claude` selain `claude auth`, Claude Code keluar dengan pesan ini sebagai gantinya ketika gateway tidak lagi menerima sesi tersebut:

```text theme={null}
Cloud gateway <url> no longer accepts this session. Start `claude` and sign in again with /login.
```

**Yang harus dilakukan:**

* Jalankan `/login` di sesi dan selesaikan proses masuk melalui browser
* Untuk peluncuran non-interaktif, mulai `claude` di lingkungan yang sama, jalankan `/login`, lalu jalankan ulang perintah Anda

<h3 id="sign-in-timed-out-while-waiting-for-you-to-continue">
  Sign-in timed out while waiting for you to continue
</h3>

Selama proses masuk [Claude apps gateway](/docs/id/claude-apps-gateway), gateway menyebutkan akun yang masuk, dan Claude Code meminta Anda untuk mengonfirmasinya sebelum menyimpan kredensial. Anda membiarkan konfirmasi terbuka melewati masa berlaku proses masuk itu sendiri, dan gateway tidak menerbitkan refresh token yang dapat memperbaruinya, sehingga Claude Code tidak menyimpan apa pun saat Anda melanjutkan:

```text theme={null}
Sign-in timed out while waiting for you to continue. Try again.
```

**Yang harus dilakukan:**

* Jalankan `/login` lagi dan konfirmasi akun sebelum proses masuk kedaluwarsa

<h3 id="gateway-refused-the-request">
  Gateway refused the request
</h3>

Anda masuk melalui [Claude apps gateway](/docs/id/claude-apps-gateway), dan sebuah permintaan mengembalikan 403: gateway, atau upstream di belakangnya, menolaknya. Masuk kembali tidak mengubah penolakan, sehingga pesan tersebut mengarahkan Anda ke administrator gateway:

```text theme={null}
Gateway refused the request · signing in again won't change this — check with your gateway administrator · API Error: 403 ...
```

**Yang harus dilakukan:**

* Minta administrator gateway Anda untuk menelusuri permintaan tersebut. Bagian akhir `API Error:` memuat penolakan yang dikembalikan gateway
* Untuk administrator: [aturan kontrol akses](/docs/id/claude-apps-gateway-config#http-tuning) pada gateway mengembalikan 403 yang dicatat oleh [log audit](/docs/id/claude-apps-gateway-deploy#logs) beserta alasannya, dan penolakan otorisasi dari upstream diteruskan sesuai [Pesan error upstream](/docs/id/claude-apps-gateway-config#upstream-error-messages)

Sebelum v2.1.273, 403 pada sesi gateway menampilkan pesan generik `Please run /login` atau `Failed to authenticate`, dan masuk kembali tidak menghilangkan penolakan tersebut.

<h2 id="network-and-connection-errors">
  Kesalahan jaringan dan koneksi
</h2>

Sebagian besar kesalahan ini berarti permintaan jaringan dari Claude Code gagal mencapai tujuannya, atau sesuatu antara Claude Code dan API mengubah respons dalam perjalanannya kembali; jika entri juga memiliki penyebab lokal, seperti penulisan arsip yang gagal, isinya akan mengatakan demikian. Mereka biasanya berasal dari jaringan lokal Anda, proxy, atau firewall, atau dari kebijakan jaringan lingkungan cloud.

<h3 id="unable-to-connect-to-api">
  Unable to connect to API
</h3>

Koneksi TCP ke API gagal atau tidak pernah selesai. Untuk kode kesalahan koneksi umum, nama pesan menunjukkan jenis kegagalan dan menyimpan kode dalam tanda kurung:

```text theme={null}
Unable to connect to API. Check your internet connection
Connection refused — a firewall or proxy may be blocking it (ConnectionRefused)
Can't reach the API server — check your internet or DNS (ENOTFOUND)
No internet route — check your connection or VPN (EHOSTUNREACH)
Couldn't connect through your proxy (ERR_PROXY_TUNNEL) — the proxy refused the tunnel: check its credentials and that it allows this host
Connection dropped (ECONNRESET)
Request timed out. Check your internet connection and proxy settings
```

Kode yang Claude Code tidak kenali muncul sebagai `Unable to connect to API` diikuti oleh kode dalam tanda kurung. Beberapa pesan ini dapat menampilkan lebih dari satu kode: `Connection refused` dapat menampilkan `ConnectionRefused` atau `ECONNREFUSED`, misalnya, dan `Can't reach the API server` dapat menampilkan `ENOTFOUND` atau `FailedToOpenSocket`.

Sebelum v2.1.227, setiap pesan berkode ini berbunyi `Unable to connect to API` diikuti oleh kode, misalnya `Unable to connect to API (ECONNREFUSED)`.

Penyebab umum termasuk tidak ada akses internet, VPN yang memblokir `api.anthropic.com`, atau proxy perusahaan yang diperlukan yang tidak dikonfigurasi.

**Yang harus dilakukan:**

* Konfirmasi Anda dapat menjangkau host API dari shell yang sama dengan menjalankan `curl -I https://api.anthropic.com`. Di Windows PowerShell gunakan `curl.exe -I https://api.anthropic.com` sehingga alias `Invoke-WebRequest` bawaan tidak digunakan.
* Jika Anda berada di belakang proxy perusahaan, atur `HTTPS_PROXY` sebelum meluncurkan Claude Code dan lihat [Konfigurasi jaringan](/docs/id/network-config)
* Jika Anda merutekan melalui gateway LLM atau relay, atur [`ANTHROPIC_BASE_URL`](/docs/id/env-vars) ke alamatnya. Lihat [Hubungkan Claude Code ke gateway LLM](/docs/id/llm-gateway-connect) untuk pengaturan.
* Pastikan firewall Anda memungkinkan host yang tercantum dalam [Persyaratan akses jaringan](/docs/id/network-config#network-access-requirements)
* Kegagalan intermiten [dicoba ulang secara otomatis](#automatic-retries); kegagalan persisten menunjukkan masalah jaringan lokal

Jika `curl` berhasil tetapi Claude Code masih gagal, penyebabnya biasanya sesuatu antara runtime dan jaringan daripada jaringan itu sendiri:

* Periksa apakah `ANTHROPIC_BASE_URL` diatur dengan menjalankan `echo $ANTHROPIC_BASE_URL`, atau `echo $env:ANTHROPIC_BASE_URL` di PowerShell, dan cari di blok `env` dari [file pengaturan](/docs/id/settings) Anda. Ketika diatur, Claude Code mengirim permintaan model ke alamat itu daripada `api.anthropic.com`, jadi nilai sisa yang menunjuk ke proxy lokal atau gateway yang tidak lagi berjalan menghasilkan `Connection refused` meskipun `curl` menjangkau API. Hapus dari profil shell atau pengaturan Anda dan mulai Claude Code dari terminal baru.
* Di Linux dan WSL, periksa `/etc/resolv.conf` untuk nameserver yang tidak dapat dijangkau. WSL khususnya dapat mewarisi resolver yang rusak dari host.
* Di macOS, klien VPN yang terputus atau dihapus dapat meninggalkan antarmuka terowongan atau aturan perutean. Periksa `ifconfig` untuk antarmuka `utun` yang basi dan hapus ekstensi jaringan VPN di Pengaturan Sistem.
* Docker Desktop dan runtime kontainer serupa dapat mencegat lalu lintas keluar. Keluar dari mereka dan coba lagi untuk mengesampingkan ini.

<h3 id="unable-to-connect-to-anthropic-services">
  Unable to connect to Anthropic services
</h3>

Selama pengaturan pertama kali, Claude Code memeriksa bahwa dapat menjangkau `api.anthropic.com` dan `platform.claude.com` sebelum menampilkan langkah masuk. Ketika salah satu pemeriksaan gagal, Claude Code mencetak alasannya dan keluar.

```text theme={null}
Unable to connect to Anthropic services
Failed to connect to api.anthropic.com: ECONNREFUSED
Connection to api.anthropic.com timed out after 10 seconds
A proxy is configured via HTTPS_PROXY. Check that it allows connections to the host above.
```

Claude Code mengirim pemeriksaan melalui [konfigurasi proxy](/docs/id/network-config) yang sama dengan permintaan API dan memberikan setiap probe 10 detik. Ketika probe yang gagal melewati proxy, pesan menamai environment variable yang mengonfigurasinya, seperti `HTTPS_PROXY`. Sebelum v2.1.222, pemeriksaan menggunakan transport proxy yang berbeda tanpa timeout: di belakang URL proxy dengan skema `https://`, dapat macet pada `Checking connectivity...` tanpa batas dan kemudian gagal meskipun permintaan API melalui proxy yang sama berhasil.

Claude Code melewati pemeriksaan ini ketika [file pengaturan terkelola, kebijakan MDM, atau pembantu kebijakan](/docs/id/managed-settings) menetapkan [`forceLoginMethod`](/docs/id/settings-reference#forceloginmethod) ke `"gateway"`, atau menetapkan [`forceLoginGatewayUrl`](/docs/id/settings-reference#forcelogingatewayurl) tanpa `forceLoginMethod`. Dengan salah satu konfigurasi, Claude Code membuka langkah masuk di layar **Cloud gateway** daripada metode masuk Anthropic. Claude Code juga melewati pemeriksaan ketika sumber pengaturan terkelola di mesin ada tetapi tidak dapat dibaca, karena sumber itu mungkin menyimpan konfigurasi gateway. Sebelum v2.1.247, Claude Code menjalankan pemeriksaan di bawah konfigurasi ini juga, dan keluar dengan kesalahan ini ketika endpoint Anthropic tidak dapat dijangkau.

Claude Code juga melewati pemeriksaan di mesin tanpa pengaturan terkelola ketika `~/.claude/settings.json` milik Anda sendiri [menamai gateway](/docs/id/claude-apps-gateway#set-the-gateway-url-in-user-settings) dengan `forceLoginMethod` dan `forceLoginGatewayUrl`. Sebelum v2.1.295, Claude Code menjalankan pemeriksaan dalam kasus tersebut.

**Yang harus dilakukan:**

* Jika pesan menamai variabel proxy, periksa bahwa nilainya menunjuk ke proxy yang tepat dan minta tim jaringan Anda untuk memungkinkan koneksi HTTPS melaluinya ke host dalam pesan. Lihat [Konfigurasi jaringan](/docs/id/network-config).
* Kerjakan pemeriksaan dalam [Unable to connect to API](#unable-to-connect-to-api). Tes `curl` dan panduan firewall di sana berlaku untuk pemeriksaan ini juga.
* Jika jaringan Anda terbuka dan kegagalan berlanjut, Claude Code mungkin tidak [tersedia di negara Anda](https://www.anthropic.com/supported-countries)

<h3 id="socket-is-closed">
  Socket is closed
</h3>

`Socket is closed` berarti koneksi yang membawa respons streaming ditutup sementara respons masih tiba. Penyebab paling umum adalah proxy perusahaan di Windows yang menjatuhkan terowongan yang sudah terbentuk di tengah respons.

Tergantung seberapa jauh respons telah berkembang, Claude Code mencoba ulang permintaan, menyimpan apa yang Claude hasilkan, atau mengakhiri giliran. Lihat [Retry otomatis](#automatic-retries).

Sebelum v2.1.214, Claude Code tidak mencoba ulang kegagalan ini, dan giliran berhenti dengan kesalahan yang berisi `Socket is closed`.

**Yang harus dilakukan:**

* Jika Anda melihat kesalahan ini, perbarui ke v2.1.214 atau lebih baru dengan `claude update`, kemudian kirim pesan Anda lagi
* Jika giliran terus gagal di belakang proxy yang sama setelah memperbarui, kerjakan [Unable to connect to API](#unable-to-connect-to-api) dan periksa pengaturan proxy dalam [Konfigurasi jaringan](/docs/id/network-config)

<h3 id="api-returned-an-empty-or-malformed-response">
  API returned an empty or malformed response
</h3>

Claude Code menampilkan kesalahan ini ketika retry non-streaming dari permintaan streaming yang gagal mendapatkan status kesuksesan HTTP tetapi isi bukan pesan API Claude: biasanya halaman kesalahan HTML atau masuk, isi kosong, atau JSON dalam format lain. Proxy, gateway, atau halaman masuk jaringan yang menjawab di tempat API adalah sumber biasa. Claude Code tidak mencoba ulang permintaan, dan giliran berakhir dengan kesalahan ini.

```text theme={null}
API returned an empty or malformed response (HTTP 200) — check for a proxy or gateway intercepting the request.
```

Setelah pembukaan itu, pesan melaporkan apa yang kembali dan permintaan mana yang gagal:

* Klausa `Response:` dengan tipe konten, jenis isi, seperti `body is an HTML page` atau `empty body`, ukurannya dalam byte, dan apakah respons membawa id permintaan Anthropic. Ketika respons menamai server yang dapat dikenali, seperti `nginx` atau `cloudflare`, atau membawa header perantara, seperti `cf-ray` atau `via`, klausa mencantumkan yang itu juga.
* Kalimat yang menamai id permintaan streaming yang gagal dan kegagalan yang memicu retry. Ketika stream telah dibuka sebelum kegagalan, ia juga melaporkan berapa banyak peristiwa stream yang tiba dan, jika ada, berapa lama stream telah diam ketika upaya gagal.

Sebelum v2.1.234, pesan berakhir setelah `intercepting the request`.

Sebelum v2.1.271, balasan yang membawa pesan API yang valid di bawah tipe konten non-JSON seperti `text/plain` juga mengakhiri giliran dengan kesalahan ini. Beberapa gateway LLM menggunakan tipe konten itu untuk balasan non-streaming.

**Yang harus dilakukan:**

* Baca klausa `Response:` untuk melihat sistem mana yang menjawab. Isi HTML, tidak ada id permintaan Anthropic, atau server bernama seperti `nginx` atau `cloudflare` berarti sesuatu antara Claude Code dan API menjawab di tempatnya
* Jika Anda merutekan melalui [gateway LLM](/docs/id/llm-gateway-connect#troubleshoot-gateway-errors), uji rute dengan permintaan langsung dan perbaiki hop yang mengembalikan respons non-API
* Di jaringan dengan halaman masuk, seperti Wi-Fi tamu, selesaikan masuk di browser, kemudian coba lagi
* Jika hanya rute non-streaming melalui gateway Anda yang rusak, atur [`CLAUDE_CODE_DISABLE_NONSTREAMING_FALLBACK=1`](/docs/id/env-vars#variables) untuk mematikan fallback ini, kecuali ketika endpoint streaming itu sendiri mengembalikan `404`, di mana Claude Code tetap menggunakan fallback

<h3 id="streaming-response-ended-before-any-complete-data-was-received">
  Streaming response ended before any complete data was received
</h3>

Respons streaming dari penyedia model Anda selesai tanpa memberikan data yang dapat digunakan, jadi Claude Code mengirim ulang permintaan tanpa streaming untuk menyelesaikan giliran. Claude Code menampilkan peringatan sekali per sesi, hanya dalam sesi interaktif. Sebelum v2.1.239, Claude Code diam-diam mencoba ulang tanpa streaming.

```text theme={null}
Streaming response ended before any complete data was received. Retrying without streaming. If this keeps happening, check any proxy or gateway between Claude Code and your model provider.
```

Claude Code mengirim setiap permintaan yang terpengaruh dua kali: upaya streaming kosong dan retry. Penyebab biasa adalah proxy atau gateway yang mengonsumsi atau mengubah isi respons streaming dalam perjalanannya kembali.

**Yang harus dilakukan:**

* Konfigurasikan proxy atau gateway apa pun antara Claude Code dan penyedia model Anda untuk melewatkan isi respons streaming dan headernya tanpa dimodifikasi
* Di [Amazon Bedrock](/docs/id/amazon-bedrock), lihat [Kesalahan streaming di belakang gateway atau proxy](/docs/id/amazon-bedrock#streaming-errors-behind-a-gateway-or-proxy) untuk persyaratan header dan isi

<h3 id="bedrock-streaming-response-has-an-unexpected-content-type">
  Bedrock streaming response has an unexpected content-type
</h3>

Gateway atau proxy antara Claude Code dan [Amazon Bedrock](/docs/id/amazon-bedrock) mengubah isi respons streaming atau header `Content-Type` nya. Amazon Bedrock melakukan streaming respons sebagai `application/vnd.amazon.eventstream`. Daripada mendekode isi yang tidak dapat dibaca, Claude Code menolak respons streaming yang berhasil yang melaporkan tipe konten yang berbeda. Claude Code tidak mencoba ulang permintaan.

```text theme={null}
Bedrock streaming response has content-type "text/event-stream"; expected "application/vnd.amazon.eventstream". A gateway or proxy between Claude Code and Bedrock is likely transforming the response body — Bedrock's binary event-stream format must be passed through unmodified. Set CLAUDE_CODE_DISABLE_BEDROCK_CONTENT_TYPE_GUARD=1 to suppress this check while the gateway is being fixed.
```

Sebelum v2.1.208, kesalahan konfigurasi yang sama muncul sebagai `API Error: Truncated event message received` setelah seluruh respons telah di-buffer.

**Yang harus dilakukan:**

* Konfigurasikan gateway untuk melewatkan isi respons `InvokeModelWithResponseStream` dan header `Content-Type` nya tanpa dimodifikasi. Perantara yang memancarkan ulang stream sebagai peristiwa yang dikirim server adalah penyebab umum.
* Menetapkan [`CLAUDE_CODE_DISABLE_BEDROCK_CONTENT_TYPE_GUARD=1`](/docs/id/env-vars) menyembunyikan kesalahan ini, tetapi Claude Code tidak mendekode isi biner di bawah header yang ditulis ulang, jadi permintaan itu beralih ke jalur non-streaming yang lebih lambat. Lihat [Kesalahan streaming di belakang gateway atau proxy](/docs/id/amazon-bedrock#streaming-errors-behind-a-gateway-or-proxy).

<h3 id="ssl-certificate-errors">
  SSL certificate errors
</h3>

Proxy atau perangkat keamanan di jaringan Anda mencegat lalu lintas TLS dengan sertifikat mereka sendiri, dan Claude Code tidak mempercayainya.

```text theme={null}
Unable to connect to API: SSL certificate verification failed (UNABLE_TO_GET_ISSUER_CERT_LOCALLY). The certificate comes from an authority Claude Code doesn't trust, usually a TLS-inspecting corporate proxy or a gateway signed by a private CA: set NODE_EXTRA_CA_CERTS to that CA bundle, or add it to the system certificate store · see https://code.claude.com/docs/en/network-config
Unable to connect to API: Self-signed certificate detected (SELF_SIGNED_CERT_IN_CHAIN). The certificate comes from an authority Claude Code doesn't trust, usually a TLS-inspecting corporate proxy or a gateway signed by a private CA: set NODE_EXTRA_CA_CERTS to that CA bundle, or add it to the system certificate store · see https://code.claude.com/docs/en/network-config
```

Sebelum v2.1.273, kedua pesan berakhir di `Check your proxy or corporate SSL certificates`, tanpa kode OpenSSL atau petunjuk `NODE_EXTRA_CA_CERTS`.

Mulai dari v2.1.199, kegagalan validasi sertifikat tidak dicoba ulang, jadi kesalahan ini muncul pada upaya pertama daripada setelah [anggaran retry](#automatic-retries) penuh. Versi sebelumnya menghabiskan beberapa menit mencoba ulang sebelum menampilkannya. Kondisi TLS sementara, seperti timeout handshake, masih dicoba ulang.

Selama `/login` dan pemeriksaan konektivitas startup, kegagalan yang sama menghasilkan pesan yang berbeda:

```text theme={null}
SSL certificate error (UNABLE_TO_GET_ISSUER_CERT_LOCALLY). If you are behind a corporate proxy or TLS-intercepting firewall, set NODE_EXTRA_CA_CERTS to your CA bundle path, or ask IT to allowlist *.anthropic.com. Run `claude doctor` for details.
```

Di [Amazon Bedrock](/docs/id/amazon-bedrock), permintaan yang Claude Code sendiri kirim ke AWS, seperti panggilan kredensial peran STS dan SSO, penemuan model, dan pemeriksaan wizard pengaturan, bergantung pada konfigurasi sertifikat yang sama. Lihat [Kesalahan sertifikat di belakang proxy yang memeriksa TLS](/docs/id/amazon-bedrock#certificate-errors-behind-a-tls-inspecting-proxy).

**Yang harus dilakukan:**

* Ekspor bundel CA organisasi Anda dan arahkan Claude Code ke sana dengan `NODE_EXTRA_CA_CERTS=/path/to/ca-bundle.pem`
* Lihat [Konfigurasi jaringan](/docs/id/network-config#custom-ca-certificates) untuk instruksi pengaturan lengkap
* Jangan atur `NODE_TLS_REJECT_UNAUTHORIZED=0`, yang menonaktifkan validasi sertifikat sepenuhnya

<h3 id="host-not-allowed-in-a-cloud-session">
  Host not allowed in a cloud session
</h3>

Permintaan HTTP keluar dari sesi cloud atau routine diblokir oleh kebijakan jaringan lingkungan.

```text theme={null}
HTTP 403
x-deny-reason: host_not_allowed
```

Anda juga dapat melihat sertifikat TLS yang tidak cocok dengan sertifikat asli tujuan. Sesi cloud merutekan lalu lintas keluar melalui proxy yang memberlakukan kebijakan jaringan, jadi sertifikat yang tidak cocok berarti proxy mengakhiri koneksi, bukan tujuan.

Ini bukan masalah jaringan sisi klien. Sesi cloud dan [routine](/docs/id/routines) berjalan di dalam VM yang di-sandbox yang lalu lintas keluarnya melalui jaringan sesi disaring ke allowlist [lingkungan cloud](/docs/id/cloud-environments); [operasi GitHub](/docs/id/cloud-environments#github-proxy) dan lalu lintas konektor MCP menggunakan saluran terpisah, itulah mengapa mereka dapat terus bekerja sementara host lain diblokir. Lingkungan **Default** menggunakan akses **Trusted**, yang memungkinkan [allowlist default](/docs/id/cloud-environments#default-allowed-domains) dari registri paket, API penyedia cloud, registri kontainer, dan domain pengembangan umum dan memblokir domain lain di jalur itu.

**Yang harus dilakukan:**

Langkah-langkah ini mengubah salah satu lingkungan Anda sendiri. [Lingkungan bersama organisasi](/docs/id/cloud-environments#organization-shared-environments) terbuka read-only di pemilih, jadi minta Owner untuk mengubah akses jaringannya dari halaman **Cloud environments** dalam [pengaturan admin](https://claude.ai/admin-settings).

* Buka lingkungan Anda untuk pengeditan, baik dari [formulir routine](/docs/id/routines#environments-and-network-access) atau dari [pemilih lingkungan](/docs/id/cloud-environments#configure-your-environment) tempat Anda memulai sesi cloud.
* Dalam dialog **Edit cloud environment**, ubah **Network access** dari **Trusted** ke **Custom**, kemudian tambahkan domain yang diblokir ke **Allowed domains**. Masukkan satu domain per baris. Centang **Also include default list of common package managers** untuk menyimpan [allowlist default](/docs/id/cloud-environments#default-allowed-domains) bersama domain kustom Anda. Pilih **Full** sebagai gantinya jika Anda menginginkan akses tanpa batas.
* Klik **Save changes**. Jalankan berikutnya menggunakan allowlist yang diperbarui. Untuk sesi cloud yang sudah terbuka, lihat [kapan perubahan akses jaringan mencapai sesi yang ada](/docs/id/cloud-environments#network-access).

Lihat [Akses jaringan](/docs/id/cloud-environments#network-access) untuk tingkat akses dan allowlist default. Sesi CLI lokal tidak terpengaruh oleh kebijakan ini.

<h3 id="the-proxy-refused-the-connection">
  The proxy refused the connection
</h3>

Anda melihat pesan ini ketika Claude membaca [artifact](/docs/id/artifacts) melalui proxy yang Anda atur dalam `HTTPS_PROXY` atau [variabel proxy](/docs/id/network-config#environment-variables) terkait. Konten artifact berasal dari `*.frame.claudeusercontent.com`, jadi Claude Code terlebih dahulu mengirim proxy permintaan `CONNECT` yang memintanya membuka terowongan ke host itu. Ketika proxy menolak, tidak ada yang mencapai host, dan pesan membawa status HTTP proxy:

```text theme={null}
artifact content fetch failed (proxy refused the connection: HTTP 407)
artifact content fetch failed (proxy refused the connection: HTTP 403)
the proxy refused the connection to the artifact's content host (HTTP 502)
```

Status adalah jawaban proxy terhadap `CONNECT`. Host tidak pernah menjawab, jadi setiap status menunjuk ke perbaikan yang berbeda:

* `HTTP 407`: proxy memerlukan kredensial yang tidak didapatkan. Masukkan mereka dalam URL proxy, seperti yang ditunjukkan [Autentikasi Dasar](/docs/id/network-config#basic-authentication).
* `HTTP 403`: proxy menolak untuk membuat terowongan ke `*.frame.claudeusercontent.com`. Minta siapa pun yang menjalankan proxy untuk memungkinkan host itu, yang [Persyaratan akses jaringan](/docs/id/network-config#network-access-requirements) cantumkan.
* Status apa pun yang lain, seperti `HTTP 502`: proxy tidak membuka terowongan karena alasannya sendiri, seperti gagal menjangkau host. Cari status dalam log proxy.
* `unreadable reply` sebagai pengganti status: apa pun yang ada di alamat proxy tidak menjawab dengan baris status HTTP. Periksa bahwa alamatnya adalah proxy HTTP.

**Yang harus dilakukan:**

* Periksa alamat dan kredensial dalam variabel proxy, seperti yang dijelaskan [Konfigurasi Proxy](/docs/id/network-config#proxy-configuration), kemudian jalankan `curl -x http://proxy.example.com:8080 -I https://api.anthropic.com` dari shell tempat Anda memulai Claude Code, menggunakan URL proxy Anda sendiri. Di Windows PowerShell, jalankan `curl.exe`. Jika probe ini gagal dengan cara yang sama, perbaiki pengaturan proxy terlebih dahulu. Jika berhasil, penolakan khusus untuk host artifact.
* Jika jaringan Anda membiarkan Claude Code menjangkau host artifact secara langsung, tambahkan `.frame.claudeusercontent.com` ke [`NO_PROXY`](/docs/id/network-config#environment-variables). Simpan entri itu sempit: entri `.claudeusercontent.com` yang lebih luas juga melewati proxy untuk `bridge.claudeusercontent.com`, yang organisasi dengan [IP allowlisting](/docs/id/network-config#organization-ip-allowlists-and-proxy-egress) perlu tetap lewatkan melalui proxy.

Sebelum v2.1.238, Claude Code melaporkan terowongan yang ditolak sebagai kesalahan jaringan generik.

<h3 id="the-cloud-environments-service-returned-an-empty-or-unexpected-response">
  The cloud environments service returned an empty or unexpected response
</h3>

Claude Code meminta daftar [cloud environments](/docs/id/cloud-environments) Anda di beberapa titik, seperti ketika Anda membuat sesi cloud dari CLI atau menjalankan [`/remote-env`](/docs/id/cloud-environments#select-an-environment-from-the-cli). Ketika tidak dapat membaca jawaban server, menampilkan salah satu pesan ini:

```text theme={null}
The cloud environments service returned an empty response (HTTP 200 with no body). This is usually temporary — try again in a moment.
The cloud environments service returned a response in an unexpected format (HTTP 200 with a non-JSON body). This is usually temporary — try again in a moment.
The cloud environments service returned a response in an unexpected format (HTTP 200 without a usable environments list). This is usually temporary — try again in a moment.
```

Server menerima permintaan tetapi menjawab dengan isi yang bukan daftar lingkungan: kosong, bukan JSON, atau JSON tanpa daftar. Ini biasanya menyertai gangguan sisi layanan dan hilang dengan sendirinya. Tergantung pada surface yang meminta daftar, Claude Code dapat menambahkan awalan, seperti `couldn't list environments:` dalam dialog `/remote-env`.

**Yang harus dilakukan:**

* Coba lagi tindakan. Claude Code meminta daftar lagi setiap kali
* Jika pesan terus muncul, periksa [status.claude.com](https://status.claude.com) untuk insiden aktif

Sebelum v2.1.236, Claude Code menampilkan TypeError JavaScript mentah daripada pesan-pesan ini.

<h3 id="failed-to-fetch-session-from-sessions-api">
  Failed to fetch session from Sessions API
</h3>

Pesan ini berarti Claude Code menemukan [sesi cloud yang Anda minta untuk ditarik ke terminal Anda](/docs/id/claude-code-on-the-web#from-cloud-to-terminal) tetapi tidak dapat membaca riwayat percakapannya dari server Anthropic, sehingga tidak membukanya:

```text theme={null}
Failed to fetch session from Sessions API: Failed to fetch session logs
```

Anda melihatnya setelah `claude --teleport`, `/teleport`, atau memilih sesi dalam daftar [`/tasks`](/docs/id/commands). `claude --teleport <session-id>` mencetaknya dan keluar dengan kode 1.

**Yang harus dilakukan:**

* Jalankan teleport yang sama lagi. Jika gagal dengan cara yang sama, [laporkan masalahnya](#report-an-error)

Sebelum v2.1.296, Claude Code tidak mencoba ulang pembacaan yang gagal, dan setelah satu kegagalan, Claude Code dapat membuka sesi dengan percakapan kosong dan melaporkan keberhasilan alih-alih mencetak pesan ini.

<h3 id="couldnt-reconnect-to-your-remote-control-session">
  Couldn't reconnect to your Remote Control session
</h3>

```text theme={null}
Couldn't reconnect to your Remote Control session. Retry, or start a fresh session without --resume.
```

Melanjutkan dengan `claude --resume` atau `claude --continue` menghubungkan kembali ke sesi [Remote Control](/docs/id/remote-control) yang dicatat dalam percakapan itu. Pesan ini berarti koneksi kembali gagal karena alasan yang mungkin sementara, seperti gangguan jaringan atau kesalahan server, jadi Claude Code tidak dapat mengonfirmasi apakah sesi jarak jauh masih ada. Sesi lokal Anda terus berjalan tanpa Remote Control.

**Yang harus dilakukan:**

* Jalankan `/remote-control` untuk mencoba lagi koneksi
* Mulai sesi baru dengan `claude --remote-control` untuk membuat sesi Remote Control baru
* Untuk pesan startup Remote Control lainnya, lihat [Troubleshoot Remote Control](/docs/id/remote-control#troubleshooting)

Jika server melaporkan sebaliknya bahwa sesi sebelumnya hilang, Anda tidak melihat pesan ini. Claude Code memulai sesi baru di tempatnya atau menampilkan [`Previous session is unavailable — run /remote-control to start a new one`](/docs/id/remote-control#previous-session-is-unavailable).

<h3 id="sessions-ended-while-this-machine-was-offline">
  Sessions ended while this machine was offline
</h3>

Claude Code menampilkan pesan ini di terminal yang menjalankan [`claude remote-control`](/docs/id/remote-control#start-a-remote-control-session) setelah mesin Anda offline cukup lama sehingga server membersihkan lingkungan Remote Control yang mesin Anda layani. Sesi di lingkungan itu berakhir, dan Anda tidak dapat melanjutkannya. Hitungannya adalah jumlah sesi yang berakhir.

```text theme={null}
2 sessions ended while this machine was offline — the environment was cleaned up on the server and can't be resumed.
```

**Yang harus dilakukan:**

* Ketika Claude Code mencantumkan worktree yang disimpan di bawah pesan ini, ambil pekerjaan yang tidak dikomit dari mereka
* Jalankan `claude remote-control` untuk memulai lingkungan segar

<h3 id="couldnt-share-the-transcript">
  Couldn't share the transcript
</h3>

Setelah Anda setuju untuk berbagi transkrip sesi Anda dari prompt survei, seperti [survei kualitas sesi](/docs/id/data-usage#session-quality-surveys), Claude Code mengunggahnya ke Anthropic, atau menyimpan arsip lokal sebagai gantinya di penyedia pihak ketiga, di sesi [Claude apps gateway](/docs/id/claude-apps-gateway), dan ketika tidak ada kredensial Anthropic yang tersedia. Pesan ini berarti berbagi tidak selesai.

```text theme={null}
Couldn't share the transcript.
```

Unggahan harus sesuai dengan batas 8 MiB. Dalam sesi yang panjang, Claude Code secara progresif menjatuhkan bagian dari berbagi, pengaturan model permintaan terakhir terlebih dahulu, kemudian percakapan terstruktur dan transkrip subagent, dan menampilkan pesan ini ketika tidak ada versi yang dikurangi yang dapat dikirim atau kesalahan jaringan atau server menghentikan unggahan. Ketika Claude Code menyimpan arsip lokal sebagai gantinya, pesan berarti tidak dapat menulis arsip.

**Yang harus dilakukan:**

* Jalankan `/feedback` untuk mengirim transkrip dengan deskripsi apa yang terjadi. Lihat [Report an error](#report-an-error) jika `/feedback` tidak tersedia di lingkungan Anda
* Jika permintaan lain juga gagal, periksa koneksi jaringan Anda dan lihat [Unable to connect to API](#unable-to-connect-to-api)

<h3 id="couldnt-send-feedback">
  Couldn't send feedback
</h3>

Anda mengirim laporan dari dialog [`/feedback`, `/bug`, atau `/share`](/docs/id/commands#all-commands) dan unggahan ke Anthropic gagal. Dialog menyimpan teks Anda sehingga Anda dapat mencoba lagi.

```text theme={null}
Couldn't send feedback (couldn't reach the service). If it keeps failing, you can file at https://github.com/anthropics/claude-code/issues instead.
```

Teks setelah awalan menamai apa yang gagal:

* **`: not signed in. Run /login, then retry.`**: dialog mengunggah hanya ketika Claude Code menemukan kredensial Anthropic saat dibuka, dan tidak ada yang dapat digunakan pada saat Anda mengirim. Misalnya, Anda keluar di mesin ini sementara itu, atau login Anda tidak lagi dapat disegarkan.
* **Tanda kurung**: `(server returned <status>)` adalah kode respons layanan; `(request timed out)` dan `(couldn't reach the service)` adalah kegagalan jaringan. Ketika Claude Code tidak dapat menamai alasan, tanda kurung tidak ada.

Dalam [antrean draf umpan balik](/docs/id/tools-reference#sendfeedback-tool-behavior), kegagalan yang sama berakhir dengan `The draft is still queued. Try again later.` sebagai gantinya, dan draf tetap dalam antrean untuk upaya lain.

**Yang harus dilakukan:**

* Untuk pesan belum masuk, jalankan `/login` dan kirim lagi
* Jika tidak, kirim lagi; jika permintaan lain juga gagal, periksa koneksi jaringan Anda dan lihat [Unable to connect to API](#unable-to-connect-to-api)
* Jika terus gagal, ajukan laporan di [github.com/anthropics/claude-code/issues](https://github.com/anthropics/claude-code/issues), seperti yang dikatakan pesan

Sebelum v2.1.281, setiap pengiriman gagal dengan pesan ini sekali Remote Control **Stop** atau pesan lintas-sesi mendesak telah tiba saat dialog terbuka. Di versi tersebut, tutup dialog, buka kembali, dan kirim lagi.

<h2 id="request-errors">
  Kesalahan permintaan
</h2>

Kesalahan ini berkaitan dengan konten permintaan Anda. Sebagian besar kembali dari API setelah menolak permintaan; beberapa diproduksi secara lokal oleh Claude Code sebelum permintaan dikirim.

<h3 id="prompt-is-too-long">
  Prompt terlalu panjang
</h3>

Percakapan ditambah file yang dilampirkan melebihi context window model.

```text theme={null}
Prompt is too long
```

Dalam sesi interaktif, Claude Code menampilkan kesalahan ini sebagai:

```text theme={null}
Context limit reached · /compact or /clear to continue
```

Baris hanya menyebutkan `/clear` ketika [`DISABLE_COMPACT`](/docs/id/env-vars) diatur. Bentuk kesalahan yang lebih panjang, seperti bentuk kegagalan compaction di bawah, tetap mempertahankan pesan `Prompt is too long ·`. Dalam output `-p` dan transkrip, teksnya tetap `Prompt is too long`.

Ketika Anda mematikan auto-compact di [pengaturan pengguna](/docs/id/settings-reference#autocompactenabled), baris juga mengatakan demikian:

```text theme={null}
Context limit reached · /compact or /clear to continue · auto-compact is off · /config to turn it on
```

Tombol **Auto-compact** di `/config` menulis `autoCompactEnabled` ke pengaturan pengguna. Petunjuk muncul hanya ketika perubahan `/config` akan berlaku. Misalnya, tidak muncul ketika [`DISABLE_AUTO_COMPACT`](/docs/id/env-vars) atau [`DISABLE_COMPACT`](/docs/id/env-vars) mematikan auto-compact. Juga tidak muncul ketika cakupan prioritas lebih tinggi, seperti pengaturan proyek atau terkelola, menetapkan `autoCompactEnabled` ke `false`. Sebelum v2.1.235, baris tidak membawa petunjuk auto-compact.

Amazon Bedrock melaporkan kondisi ini sebagai `Input is too long for requested model.`, yang Claude Code tangani dengan cara yang sama. Sebelum v2.1.217, Claude Code tidak mengenali pesan Bedrock, jadi auto-compact tidak pernah dipicu dan `/compact` gagal dengan kesalahan yang sama.

Gateway [Claude apps](/docs/id/claude-apps-gateway-config#upstream-error-messages) melaporkan kondisi ini sebagai `capability_rejected: prompt_too_long` ketika upstream cloud menolak permintaan dalam bentuk kesalahan penyedia sendiri. Claude Code memperlakukan token yang sama dengan `Prompt is too long`. Sebelum v2.1.228, Claude Code tidak mengenali token, jadi auto-compact tidak dipicu.

Ketika compaction otomatis berjalan pada giliran ini dan gagal pada kesalahan yang mendasar, seperti model yang tidak tersedia atau kegagalan autentikasi, pesan menyebutkan kesalahan itu setelah pemisah:

```text theme={null}
Prompt is too long · automatic compaction failed: <the underlying error>
```

Selesaikan kesalahan yang dinamai terlebih dahulu; `/compact` gagal pada kesalahan yang sama sampai Anda melakukannya. Sebelum v2.1.229, compaction otomatis yang gagal menampilkan `Prompt is too long` tanpa penyebabnya.

Ketika compaction otomatis berjalan pada kesalahan ini, biasanya merangkum pertukaran tertua Anda dan menyimpan yang terbaru. Sebagai upaya terakhir, Claude Code merangkum secara berbeda:

* Ketika tidak dapat merangkum seluruh pertukaran, Claude Code menyimpan prompt terbaru Anda kata demi kata dan merangkum semuanya sebelumnya.
* Dalam hal itu, ketika percakapan tidak berakhir dengan prompt Anda, Claude Code merangkum seluruh percakapan sebagai gantinya.

Claude Code melewati pemulihan ini ketika konten yang akan dibawanya tidak menyimpan balasan model dan kurang dari sekitar 1.000 token teks Anda sendiri, seperti pengiriman ulang singkat setelah tempel berukuran besar. Jalankan `/clear` untuk memulai segar. Sebelum v2.1.269, compaction gagal setiap kali tidak dapat merangkum seluruh pertukaran, jadi sesi dalam keadaan itu mengalami kesalahan ini lagi pada setiap giliran.

Percakapan pertukaran tunggal tidak memiliki giliran sebelumnya untuk dirangkum. Ketika compaction otomatis akan berjalan pada satu, Claude Code melewati upaya dan menjelaskan apa yang mengisi permintaan sebagai gantinya. Ketika API tidak melaporkan jumlah token dalam kesalahannya, pesan berbunyi:

```text theme={null}
Prompt is too long · this conversation is a single exchange and cannot be compacted — the request size comes mostly from system prompt, tool definitions, or attachments.
```

Ketika API melaporkan jumlah token dalam kesalahannya, Claude Code membandingkannya dengan estimasi sendiri tentang ukuran percakapan untuk mengetahui mana yang paling banyak dari permintaan: konten percakapan sendiri, atau system prompt, definisi tool, dan konten lampiran yang Claude Code kirim dengannya. Ketika konten percakapan sendiri paling banyak dari permintaan, pesan berbunyi:

```text theme={null}
Prompt is too long · the request is ~<request tokens> tokens (limit <limit>) and this conversation's own content is most of it. A single-exchange conversation cannot be compacted; start with less content (smaller files or pasted text).
```

Ketika sebagian besar permintaan berada di luar percakapan, pesan berbunyi:

```text theme={null}
Prompt is too long · the request is ~<request tokens> tokens (limit <limit>) but this conversation is only ~<conversation tokens> tokens — the rest is system prompt, tool definitions, and attachment content. A single-exchange conversation cannot be compacted; reduce attached files/tools or start with less context.
```

Sebelum v2.1.162, Claude Code tetap mencoba compaction dan menampilkan `Prompt is too long` biasa ketika gagal.

**Yang harus dilakukan:**

* Jalankan `/compact` untuk merangkum giliran sebelumnya dan membebaskan ruang, atau `/clear` untuk memulai segar. Jika `/compact` menjawab `Not enough messages to compact.`, percakapan adalah pertukaran tunggal tanpa apa pun sebelumnya untuk dirangkum, jadi ruang diambil oleh satu prompt itu dan apa yang Claude Code kirim dengan setiap permintaan: jalankan `/clear` dan kirim ulang dengan teks tempel lebih sedikit atau lampiran lebih kecil, atau kurangi definisi tool dan file memori menggunakan langkah-langkah di bawah
* Jalankan `/context` untuk melihat rincian apa yang mengonsumsi window: system prompt, tool, file memori, dan pesan
* Nonaktifkan server MCP yang tidak Anda gunakan dengan `/mcp disable <name>` untuk menghapus definisi tool mereka dari konteks
* Pangkas file memori `CLAUDE.md` besar, atau pindahkan instruksi ke [aturan bersifat jalur](/docs/id/memory#path-specific-rules) yang dimuat hanya ketika relevan
* Auto-compact aktif secara default dan biasanya mencegah kesalahan ini. Jika Anda mematikannya di `/config` atau dengan [`DISABLE_AUTO_COMPACT`](/docs/id/env-vars), aktifkan kembali. Jika Anda tetap mematikannya, jalankan `/compact` sendiri sebelum window penuh.
* Jika kesalahan muncul di dekat 200K token pada model yang menerima lebih banyak, salah satu penyebabnya adalah ID model yang tidak dikenali Claude Code. Claude Code mengasumsikan jendela 200K untuk ID seperti itu, jadi untuk terus bekerja melewati titik tersebut, [berikan context window model yang sebenarnya](/docs/id/model-config#correct-the-window-for-a-gateway-or-custom-model-id).

Lihat [Jelajahi context window](/docs/id/context-window) untuk tampilan interaktif tentang bagaimana konteks terisi.

<h3 id="context-exceeds-the-token-limit">
  Konteks melebihi batas token
</h3>

`/context` menampilkan peringatan ini di bagian atas outputnya ketika percakapan telah melampaui context window model. Permintaan gagal dengan [`Prompt is too long`](#prompt-is-too-long) sampai Anda membebaskan ruang. Sesi interaktif menampilkan kesalahan itu sebagai baris `Context limit reached`.

```text theme={null}
Context exceeds the 200k-token limit by 94k tokens — run /compact or /clear to continue.
```

Ketika batas yang Anda lampaui adalah window compaction, seperti batas 200K pada model konteks 1M, peringatan berbunyi berbeda. Window compaction dapat berada di bawah context window model, jadi permintaan yang melewatinya masih dapat berhasil.

```text theme={null}
Context is 94k tokens past the 200k-token compaction window — run /compact to reduce usage.
```

Kedua bentuk menyebutkan `/clear` bukan `/compact` ketika Anda telah menetapkan [`DISABLE_COMPACT`](/docs/id/env-vars).

**Yang harus dilakukan:**

* Dalam percakapan multi-giliran, jalankan `/compact` untuk merangkum giliran sebelumnya dan membebaskan ruang. Untuk memulai segar sebagai gantinya, jalankan `/clear`
* Untuk cara lebih banyak mengurangi penggunaan, lihat [Prompt terlalu panjang](#prompt-is-too-long)

Sebelum v2.1.216, `/context` menampilkan penggunaan di atas 100% tanpa baris peringatan yang menjelaskan apa artinya atau cara pulih.

<h3 id="request-too-large">
  Permintaan terlalu besar
</h3>

Badan permintaan mentah melebihi batas 32MB API sebelum tokenisasi, biasanya karena konten tempel besar, hasil tool, atau lampiran. Batas ini terpisah dari [context window](#prompt-is-too-long).

```text theme={null}
Request too large (max 32MB). Accumulated images and attachments in the conversation pushed the request over the limit. Run /compact, or double press esc to go back and remove attachments.
```

Ketika permintaan langsung ke Claude API dan API sendiri menolaknya, Claude Code mengukur percakapan dan merumuskan pesan berdasarkan apakah pemulihan dapat bekerja. Melalui proxy, gateway, atau penyedia cloud Anda mendapatkan pesan umum. Bentuk yang diukur:

* `Request too large (max 32MB; 20.1MB of about 33.4MB is images or documents).`: gambar atau dokumen mendorong permintaan melampaui batas. Claude Code mencoba ulang dengan mereka dihapus.
* `Request too large for the API's 32MB request limit`: pesan saja sudah melampaui batas, jadi pesan mengatakan `compacting cannot make it fit` dan Claude Code tidak mencoba ulang. Dalam [mode non-interaktif](/docs/id/headless), pesan memberi tahu Anda untuk mengurangi input atau memulai sesi baru sebagai gantinya.

Sebelum v2.1.212, percakapan dengan cukup banyak gambar terakumulasi gagal pada setiap giliran dengan `Request too large (max 32MB). Double press esc to go back and try with a smaller file.` Sebelum v2.1.229, Claude Code menampilkan saran lampiran untuk setiap penolakan, bahkan ketika compaction tidak dapat membantu.

**Yang harus dilakukan:**

* Jika pesan mengatakan `compacting cannot make it fit`, tekan Esc dua kali untuk mundur melampaui giliran yang menambahkan konten besar, atau jalankan `/clear` untuk memulai segar
* Jika tidak, jalankan `/compact`, yang menghapus gambar dan lampiran terakumulasi
* Referensikan file besar berdasarkan jalur bukan menempel konten mereka, jadi Claude dapat membacanya dalam potongan
* Untuk gambar, lihat [Gambar terlalu besar](#image-was-too-large) di bawah

<h3 id="image-was-too-large">
  Gambar terlalu besar
</h3>

Gambar yang ditempel atau dilampirkan melebihi batas ukuran atau dimensi API.

```text theme={null}
Image was too large. Double press esc to go back and try again with a smaller image.
API Error: 400 ... image dimensions exceed max allowed size
API Error: an image in the conversation could not be processed and was removed.
```

Baris `could not be processed and was removed` berarti API menolak sebuah gambar dalam percakapan, seperti gambar yang melewati batas ukuran atau dimensi.

Jika salah satu kesalahan ini terus muncul kembali, perbarui Claude Code. Pada versi lama, kesalahan gambar dapat berulang karena alasan seperti berikut:

* Sebelum v2.1.299, dalam percakapan panjang dengan banyak gambar, Claude Code dapat menghapus gambar yang terakhir Anda lampirkan alih-alih gambar yang melewati batas. Baris `was removed` kemudian berulang di setiap giliran, dan Claude tidak melihat gambar baru Anda.
* Sebelum v2.1.299, di VS Code, aplikasi Desktop, dan Agent SDK, gambar yang Anda lampirkan saat Claude sedang bekerja tidak mendapatkan pengubahan ukuran yang didapatkan gambar lampiran lainnya. Gambar tersebut mencapai API dalam ukuran aslinya, yang menyebabkan kesalahan gambar berulang dalam percakapan panjang.
* Sebelum v2.1.166, gambar yang ditempel dapat tetap berada dalam percakapan, dan kesalahan yang sama kemudian berulang di setiap pesan berikutnya

**Yang harus dilakukan:**

* Ubah ukuran gambar sebelum menempel. API menerima gambar hingga 8000 piksel di tepi terpanjang untuk satu gambar, atau 3000 piksel ketika lebih dari 20 gambar berada dalam konteks.
* Ambil tangkapan layar lebih ketat dari wilayah yang relevan bukan layar penuh

<h3 id="unable-to-resize-image">
  Tidak dapat mengubah ukuran gambar
</h3>

Claude Code tidak dapat memperkecil gambar yang dilampirkan sebelum mengirimnya ke API.

```text theme={null}
Unable to resize image — image processing is unavailable and dimensions could not be read from the file header. Please convert the image to PNG, JPEG, GIF, or WebP.
Unable to resize image — dimensions exceed the 2000x2000px limit and image processing failed. Please resize the image to reduce its pixel dimensions.
Unable to resize image (… raw, … base64). The image exceeds the … API limit and compression failed. Please resize the image manually or use a smaller image.
Unable to resize image — could not verify image dimensions are within the 2000x2000px API limit.
Unable to resize image — it is a CMYK JPEG, which Claude Code cannot decode, and at …px it is over the 2000x2000px limit, so it cannot be sent. Re-save it as an RGB PNG or JPEG and try again.
Unable to resize image — it is an animated WebP whose first frame Claude Code cannot decode, and at …px it is over the 2000x2000px limit, so it cannot be sent. Save its first frame as a PNG or JPEG and try again.
Unable to resize image — its pixels could not be decoded (the file may be damaged, or use an encoding Claude Code cannot read), and it is over the … API limit (… raw, … base64), so it cannot be sent. Re-save it as a PNG or JPEG and try again.
```

Claude Code biasanya mengubah ukuran gambar besar secara otomatis. Kesalahan ini berarti gambar tidak dapat didekode atau diubah ukurannya agar sesuai dengan batas API.

**Yang harus dilakukan:**

* Jika pesan meminta Anda mengonversi gambar, konversikan ke PNG, JPEG, GIF, atau WebP dan lampirkan lagi. Claude Code dapat memverifikasi dimensi untuk format ini dari header file, tanpa mendekode gambar.
* Jika pesan melaporkan batas dimensi atau ukuran, ubah ukuran atau kompres ulang gambar di bawah batas itu sebelum melampirkan.
* Jika pesan menyebutkan penyebab, seperti JPEG CMYK, WebP animasi, atau file yang mungkin rusak, simpan ulang gambar dalam format yang pesan sarankan dan lampirkan lagi.

<h3 id="request-rejected-as-unprocessable-by-the-model">
  Request rejected as unprocessable by the model
</h3>

API menolak permintaan sebagai permintaan yang tidak dapat diproses oleh model. Pesan tersebut berasal dari API itu sendiri.

```text theme={null}
API Error: 400 Request rejected as unprocessable by the model (too many or oversized images, or unsupported parameters)
```

Claude Code dapat menghapus gambar dan dokumen tertua dari permintaan yang ditolak lalu mengirimkannya lagi. Sebelum v2.1.290, Claude Code tidak menghapus gambar pada penolakan ini, sehingga sesi panjang yang mengakumulasi ratusan gambar dapat gagal dengan kesalahan ini di setiap giliran.

**Yang harus dilakukan:**

* Jika pesan terus muncul dalam percakapan yang berisi gambar atau dokumen, hapus sendiri gambar atau dokumen tersebut. Tekan Esc dua kali untuk mundur melewati giliran yang menambahkannya, atau jalankan `/clear` untuk memulai dari awal.

<h3 id="pdf-errors">
  Kesalahan PDF
</h3>

PDF yang Anda lampirkan tidak dapat diproses. Pesan ditampilkan di sini dalam bentuk non-interaktif mereka; dalam sesi interaktif mereka malah meminta Anda untuk menekan esc dua kali dan coba lagi.

```text theme={null}
PDF too large (max 100 pages, 20MB). Try reading the file a different way (e.g., extract text with pdftotext).
PDF is password protected. Try using a CLI tool to extract or convert the PDF.
The PDF file was not valid. Try converting it to text first (e.g., pdftotext).
```

**Yang harus dilakukan:**

* Untuk PDF berukuran besar, minta Claude membaca rentang halaman dengan tool Read bukan melampirkan seluruh file, atau ekstrak teks dengan alat seperti `pdftotext` dan referensikan file output berdasarkan jalur
* Untuk PDF yang dilindungi atau tidak valid, hapus kata sandi atau ekspor ulang file dari aplikasi sumbernya, lalu coba lagi

Ketika Claude membaca rentang halaman dari PDF dengan tool Read, pembacaan dapat gagal dengan pesan berbeda:

```text theme={null}
pdftoppm is not installed. Install poppler-utils (e.g. `brew install poppler` or `apt-get install poppler-utils`) to enable PDF page rendering.
```

Pembacaan rentang halaman merender halaman dengan `pdftoppm`. Instal poppler-utils dengan perintah yang pesan berikan, atau pada platform lain build poppler yang menempatkan `pdftoppm` di `PATH` Anda. Lihat [Perilaku tool Read](/docs/id/tools-reference#read-tool-behavior) untuk PDF mana yang dibaca berdasarkan rentang halaman.

<h3 id="extra-inputs-are-not-permitted">
  Input tambahan tidak diizinkan
</h3>

Proxy atau gateway LLM antara Claude Code dan API menghapus header permintaan `anthropic-beta`, jadi API menolak bidang yang bergantung padanya.

```text theme={null}
API Error: 400 ... Extra inputs are not permitted ... context_management
```

Claude Code mengirim bidang khusus beta seperti `context_management` bersama header `anthropic-beta` yang mengaktifkannya. Ketika gateway meneruskan badan permintaan tetapi menghapus header, API melihat bidang yang tidak dikenalinya.

**Yang harus dilakukan:**

* Konfigurasikan gateway Anda untuk meneruskan header `anthropic-beta`. Lihat [feature pass-through](/docs/id/llm-gateway-protocol#feature-pass-through) untuk apa yang harus diteruskan gateway.
* Sebagai fallback, atur [`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1`](/docs/id/env-vars) sebelum meluncurkan. [Nonaktifkan kemampuan pra-rilis](/docs/id/llm-gateway-protocol#disable-pre-release-capabilities) mencakup cakupan yang tepat.

<h3 id="tool-input-schema-is-invalid">
  Skema input tool tidak valid
</h3>

Tool dalam permintaan mendeklarasikan `input_schema` yang gagal validasi JSON Schema API, jadi API menolak seluruh permintaan. Angka setelah `tools.` adalah posisi tool yang gagal dalam daftar tool permintaan, bukan nama yang dapat Anda cari.

```text theme={null}
API Error: 400 ... tools.N.custom.input_schema: JSON schema is invalid
API Error: 400 ... tools.N.custom.input_schema.properties: Property keys should match pattern '^[a-zA-Z0-9_.-]{1,64}$'
```

Bentuk pertama berarti skema bukan JSON Schema draft 2020-12 yang valid. Bentuk kedua berarti nama properti tingkat atas tidak cocok dengan pola yang pesan kutip.

Claude Code [mengecualikan tool MCP yang skema input-nya akan gagal validasi ini](/docs/id/mcp#tools-with-invalid-input-schemas) ketika memuat tool server, jadi permintaan biasanya tidak pernah menyertakan satu.

Pada [deployment di mana pengambilan flag dimatikan](/docs/id/env-vars#features-that-need-feature-flag-fetching), atau pada mesin yang flag-nya tidak pernah tiba, Claude Code mencatat dalam log server tool mana yang akan ditolak tetapi tetap mengirimnya, jadi kesalahan ini masih dapat terjadi.

Kesalahan juga dapat terjadi untuk tool yang skemanya mendeklarasikan dialek JSON Schema selain draft 2020-12 di `$schema`. Claude Code tidak memeriksa skema tersebut terhadap meta-skema JSON Schema, meskipun pemeriksaan nama properti tingkat atas masih berlaku.

Sebelum v2.1.216, tidak ada deployment yang menjalankan pemeriksaan pengecualian.

**Yang harus dilakukan:**

* Jika versi Claude Code Anda lebih awal dari v2.1.216, jalankan `claude update`.
* Hapus atau [nonaktifkan](/docs/id/mcp#disable-a-server-without-removing-it) server MCP yang mendeklarasikan skema tidak valid. Kesalahan hanya menyebutkan tool berdasarkan posisi. Pada v2.1.216 atau lebih baru, periksa log setiap server untuk baris yang menyebutkan tool yang skema input-nya akan ditolak. Jika tidak ada log yang menyebutkan satu, nonaktifkan server satu per satu.
* Jika Anda memelihara server, perbaiki `input_schema` tool. Skema harus berupa JSON Schema yang valid, dan nama properti tingkat atas harus panjang 1 hingga 64 karakter dan hanya menggunakan huruf ASCII dan angka, `_`, `.`, dan `-`. Lihat [Tool dengan skema input tidak valid](/docs/id/mcp#tools-with-invalid-input-schemas).

<h3 id="mcp-tool-name-over-128-characters">
  Nama tool MCP lebih dari 128 karakter
</h3>

Server MCP mencantumkan tool yang nama lengkapnya, seperti `mcp__<server>__<tool>`, lebih panjang dari 128 karakter yang diterima API. Claude Code [tidak menyertakan tool tersebut dalam tool yang dikirimnya ke Claude](/docs/id/mcp#tools-with-names-longer-than-128-characters), dan tool lain dari server tersebut tetap berfungsi. Dalam sesi yang Anda mulai dengan `claude --debug` dari shell Anda, Claude Code menulis pesan ini ke log debug di `~/.claude/debug/<session-id>.txt`:

```text theme={null}
Tool "mcp__<server>__<tool>" is not sent to Claude: its name has <N> characters and the API accepts at most 128
```

**Yang harus dilakukan:**

* Jika Anda memelihara server, perpendek nama tool tersebut.
* Jika server ada di [konfigurasi MCP](/docs/id/mcp#mcp-installation-scopes) Anda, beri server tersebut nama yang lebih pendek di sana, seperti `db` sebagai pengganti `analytics-database`. Lalu perbarui apa pun yang merujuk ke server atau tool-nya dengan nama lama, seperti [aturan izin](/docs/id/permissions#mcp) dan [matcher hook](/docs/id/hooks#match-mcp-tools).
* Jika [plugin membundel server tersebut](/docs/id/mcp#plugin-provided-mcp-servers), nama lengkap tool juga menyertakan nama plugin. Minta pemelihara plugin untuk memperpendek nama server atau tool.

Sebelum v2.1.292, Claude Code tetap mengirim tool tersebut, dan API menolak setiap permintaan yang menyertakannya dengan `API Error: 400 ... tools.N.custom.name: String should have at most 128 characters`.

<h3 id="tool-use-name-over-200-characters">
  tool\_use.name lebih dari 200 karakter
</h3>

Panggilan tool dalam riwayat percakapan membawa nama yang lebih panjang dari 200 karakter yang API terima dalam permintaan:

```text theme={null}
API Error: 400 ... tool_use.name: String should have at most 200 characters
```

Claude Code memotong nama tersebut menjadi 200 karakter ketika respons tiba dan ketika memuat percakapan yang disimpan, jadi panggilan gagal dengan kesalahan tool [`No such tool available`](#no-such-tool-available) dan percakapan berlanjut tanpa kesalahan API ini.

**Yang harus dilakukan:**

* Jalankan `claude update`, lalu lanjutkan percakapan. Versi yang diperbarui memperbaiki nama yang terlalu panjang ketika memuat transkrip, jadi percakapan yang terjebak bekerja lagi.

Sebelum v2.1.281, nama yang terlalu panjang tetap berada dalam riwayat dan API menolak setiap permintaan yang mengirim ulang percakapan, termasuk `/compact` dan `--resume`, jadi kesalahan ini berulang dan percakapan terjebak.

<h3 id="theres-an-issue-with-the-selected-model">
  Ada masalah dengan model yang dipilih
</h3>

Nama model yang dikonfigurasi tidak dikenali atau akun Anda tidak memiliki akses ke model tersebut. Mulai dari v2.1.160 petunjuk trailing, ditampilkan di sini dalam bentuk interaktifnya, bervariasi menurut surface.

```text theme={null}
There's an issue with the selected model (claude-...). It may not exist or you may not have access to it. Run /model to pick a different model.
```

**Yang harus dilakukan:**

* **CLI Interaktif**: jalankan `/model` untuk memilih dari model yang tersedia untuk akun Anda.
* **Mode non-interaktif (`-p`)**: teruskan `--model` dengan alias atau ID yang valid, atau atur [`ANTHROPIC_MODEL`](/docs/id/env-vars). Teks kesalahan menampilkan `Run --model` di surface ini.
* **Agent SDK**: teks kesalahan menghilangkan petunjuk karena model diatur secara terprogram. Atur [`model` pada `Options`](/docs/id/agent-sdk/typescript#options) di TypeScript atau [`ClaudeAgentOptions(model=...)`](/docs/id/agent-sdk/python#claudeagentoptions) di Python, dan tangani kesalahan terstruktur `model_not_found` untuk menampilkan retry atau pemilih model Anda sendiri.
* Gunakan alias seperti `sonnet` atau `opus` bukan ID versi lengkap. Alias menyelesaikan ke default yang dipertahankan sehingga tidak menjadi usang. Lihat [Konfigurasi model](/docs/id/model-config).
* Jika model yang salah terus kembali di CLI, ID usang diatur di suatu tempat. Periksa tempat Anda dapat mengatur model dalam [urutan prioritas](/docs/id/model-config#setting-your-model) dan hapus nilai usang.
* Claude Code melaporkan login claude.ai yang kedaluwarsa sebagai [Login kedaluwarsa](#login-expired), bukan sebagai kesalahan ini. Sebelum v2.1.206, login yang kedaluwarsa yang tidak lagi dapat disegarkan gagal di setiap model dengan kesalahan ini; jalankan `/login` jika Anda melihat itu pada versi yang lebih lama.
* Untuk deployment Google Cloud's Agent Platform, lihat [Pemecahan masalah Google Cloud's Agent Platform](/docs/id/google-vertex-ai#troubleshooting).

<h3 id="model-is-not-a-recognized-model-id">
  Model bukan ID model yang dikenali
</h3>

String yang Anda teruskan ke sakelar model bukan yang dapat Claude Code gunakan sebagai model, jadi menolak sakelar tanpa mengirim permintaan dan sesi menyimpan model saat ini. Anda dapat mendapatkan kesalahan ini ketika model diatur melalui metode `setModel()` [Agent SDK](/docs/id/agent-sdk/typescript), oleh aplikasi yang menjalankan Claude Code CLI untuk Anda, seperti [Aplikasi Desktop](/docs/id/desktop), atau ketika Anda memilih model dari perangkat yang terhubung melalui [Remote Control](/docs/id/remote-control). Sebelum v2.1.200, Claude Code menyimpan string dan gagal pada permintaan berikutnya dengan [Ada masalah dengan model yang dipilih](#theres-an-issue-with-the-selected-model).

```text theme={null}
Model "Sonnet5" is not a recognized model id. Did you mean 'claude-sonnet-5'?
```

Dalam contoh ini aplikasi mengirim nama tampilan `Sonnet 5`, yang pesan ulangi tanpa spasi-nya. Petunjuk trailing menyebutkan alias atau ID model yang paling cocok. Ketika tidak ada yang cukup dekat, itu berbunyi `Run /model to see available models.` sebagai gantinya. Dalam sesi yang [Aplikasi Desktop](/docs/id/desktop) mulai untuk Anda, petunjuk no-match berbunyi `Switch to a different model.`

Ketika Anda beralih melalui Agent SDK atau aplikasi di Anthropic API, hanya string yang tidak dapat menjadi ID model mendapatkan kesalahan ini, seperti nama tampilan atau string kosong.

Ketika Anda memilih model dari perangkat Remote Control, Claude Code memeriksa string secara lokal. String apa pun yang bukan alias model, model yang Claude Code daftar atau Anda konfigurasikan, atau ID yang dimulai dengan `claude-` mendapatkan kesalahan ini, ID yang salah ketik seperti `claud-sonnet-5` disertakan. Sebelum v2.1.260, pemeriksaan ini tidak mencakup pilihan Remote Control, jadi string yang tidak dikenali diterapkan dan gagal pada permintaan berikutnya.

**Yang harus dilakukan:**

* Jalankan `/model` tanpa argumen untuk membuka pemilih dan pilih dari model yang tersedia untuk akun Anda, lalu teruskan alias atau ID yang ditampilkan di sana
* Jika Anda menggunakan alias yang hanya versi Claude Code yang lebih baru dukung, jalankan `claude update`, atau teruskan ID model lengkap sebagai gantinya. Server masih dapat memerlukan versi Claude Code minimum untuk model itu; lihat [Claude Code tidak mendukung model ini](#claude-code-does-not-support-this-model).
* Model yang disimpan sebelum v2.1.200 tidak diperbaiki oleh pemeriksaan ini. Jika nilai usang terus kembali, hapus dari lokasi yang tercantum di bawah [Mengatur model Anda](/docs/id/model-config#setting-your-model).
* Pada penyedia apa pun selain Anthropic API, atau di belakang gateway atau `ANTHROPIC_BASE_URL` kustom, hanya string kosong yang mendapatkan kesalahan ini. Claude Code masih dapat menulis [baris diagnostik model yang tidak dikenali](#unrecognized-model-id-on-a-request) pada waktu permintaan, di setiap penyedia.

<h3 id="model-not-found">
  Model tidak ditemukan
</h3>

Anda beralih ke model berdasarkan nama dan Claude Code tidak dapat mengkonfirmasi bahwa model dengan nama itu ada. Ketika nama bukan [alias model](/docs/id/model-config#model-aliases) atau ejaan lain yang Claude Code terima secara lokal, Claude Code memverifikasinya dengan permintaan API minimal, dan kesalahan ini biasanya jawaban endpoint API Anda. Dengan `/model <name>`, nama yang tidak dapat menjadi ID model sama sekali, seperti yang berisi spasi, mendapatkan pesan yang sama.

```text theme={null}
Model 'claude-opus-9' not found
```

Pada penyedia dengan ID model khusus penyedia, pesan dapat menambahkan saran `Try '...' instead` yang menyebutkan ID penyedia Anda untuk model fallback.

**Yang harus dilakukan:**

* Jalankan `/model` tanpa argumen dan pilih dari model yang tersedia untuk akun Anda, atau gunakan [alias model](/docs/id/model-config#model-aliases) seperti `sonnet`, yang menyelesaikan ke default yang dipertahankan
* Jika Anda mengetik ID lengkap, periksakan terhadap katalog model penyedia Anda. Model yang baru diluncurkan dapat tersedia di Anthropic API sebelum penyedia atau wilayah Anda menawarkannya.
* Dalam Agent SDK, `setModel()` gagal dengan pesan ini dan sesi terus berjalan pada model sebelumnya. Dalam SDK TypeScript, panggil [`supportedModels()`](/docs/id/agent-sdk/typescript#query-object) untuk membuat daftar model yang dapat Anda alihkan.
* Sebelum v2.1.265, `/model` juga menolak ejaan alias `opusplan[1m]` dengan kesalahan ini. Pada versi tersebut, perbarui Claude Code, atau atur model di [pengaturan](/docs/id/model-config#setting-your-model) atau dengan `--model` sebagai gantinya.

<h3 id="couldnt-confirm-model-with-the-api">
  Tidak dapat mengkonfirmasi model dengan API
</h3>

Anda beralih model melalui metode `setModel()` [Agent SDK](/docs/id/agent-sdk/typescript) atau aplikasi yang menjalankan Claude Code CLI untuk Anda, seperti [Aplikasi Desktop](/docs/id/desktop), dan permintaan yang mengkonfirmasi ID model dengan endpoint API Anda tidak mendapat jawaban dalam lima detik. Sesi menyimpan model saat ini.

```text theme={null}
Couldn't confirm model "claude-sonnet-5" with the API. Try again, or run /model to see available models.
```

Dalam sesi yang [Aplikasi Desktop](/docs/id/desktop) mulai untuk Anda, pesan berakhir di `Try again.`

**Yang harus dilakukan:**

* Alihkan ke model lagi
* Jika sakelar terus gagal, periksa bahwa Claude Code dapat menjangkau endpoint API Anda; lihat [Kesalahan jaringan dan koneksi](#network-and-connection-errors)

<h3 id="api-error-model-not-changed">
  Kesalahan API saat memeriksa model yang dipilih
</h3>

Anda memilih model dengan `/model <name>`, atau aplikasi yang terhubung ke sesi meminta sakelar. API menolak permintaan minimal yang Claude Code kirim untuk memverifikasi model, untuk alasan yang tidak memiliki entri sendiri, seperti rate limit atau kesalahan server. Sesi menyimpan model saat ini, dan pesan berakhir dengan mengatakan demikian:

```text theme={null}
API error: 429 <the server's explanation> · model not changed
```

Bagian tengah pesan adalah status HTTP dan penjelasan server sendiri.

**Yang harus dilakukan:**

* Bertindak atas penjelasan server; untuk rate limit atau status 5xx, tunggu dan pilih model lagi
* Penolakan dengan pesan mereka sendiri dicakup oleh entri sekitarnya, seperti [Model tidak ditemukan](#model-not-found) dan [Model dibatasi oleh pengaturan organisasi Anda](#model-is-restricted-by-your-organizations-settings)

<h3 id="claude-opus-is-not-available-with-the-claude-pro-plan">
  Claude Opus tidak tersedia dengan paket Claude Pro
</h3>

Paket langganan aktif Anda tidak menyertakan model yang Anda pilih.

```text theme={null}
Claude Opus is not available with the Claude Pro plan. If you have updated your subscription plan recently, run /logout and /login for the plan to take effect.
```

Dalam sesi yang aplikasi Claude Desktop jalankan, pesan mengatakan untuk `sign out and sign in again` bukan menyebutkan perintah.

**Yang harus dilakukan:**

* Jalankan `/model` dan pilih model yang paket Anda sertakan
* Jika Anda baru-baru ini meningkatkan paket dan masih melihat ini, jalankan `/logout` lalu `/login`. Token yang disimpan mencerminkan paket Anda pada saat Anda masuk, jadi meningkatkan di claude.ai tidak berlaku dalam sesi yang ada sampai Anda autentikasi ulang.
* Lihat [claude.com/pricing](https://claude.com/pricing) untuk model mana yang setiap paket sertakan

<h3 id="claude-code-does-not-support-this-model">
  Claude Code tidak mendukung model ini
</h3>

API menolak permintaan dengan 400 karena versi Claude Code Anda di bawah minimum yang diperlukan. Baik model yang Anda pilih memerlukan versi yang lebih baru, yang server periksa per model, atau kebijakan organisasi Anda memerlukan satu. 400 membawa kode kesalahan `claude_code_version_too_old`, dan pesan mengatakan minimum mana yang berlaku.

```text theme={null}
API Error: 400 Claude Code 2.1.219 does not support this model; version 2.1.255 or newer is required. Run 'claude update', or update the Claude desktop app, then try again.
```

Pesan kebijakan organisasi berbunyi:

```text theme={null}
API Error: 400 Claude Code 2.1.240 is older than the minimum version required by your organization's policy. Run 'claude update', or update the Claude desktop app, to continue.
```

Versi yang API periksa adalah yang dilaporkan oleh biner Claude Code yang membuat permintaan.

**Yang harus dilakukan:**

Perbarui biner itu, lalu mulai sesi baru. Tempat biner berasal menentukan bagaimana, kecuali dalam [lingkungan yang di-host sendiri](/docs/id/self-hosted-environments-deploy#pin-the-version):

| Biner yang membuat permintaan | Cara memperbarui |
| :- | :- |
| Claude Code yang Anda instal | Jalankan `claude update` |
| Aplikasi desktop Claude | Perbarui aplikasi |
| Biner yang [ekstensi VS Code](/docs/id/vs-code) bundel | Perbarui ekstensi |
| Biner yang paket Agent SDK bundel | [Tingkatkan paket SDK](/docs/id/agent-sdk/hosting#runtime-dependencies), lalu mulai ulang aplikasi Anda. Dalam [executable file tunggal yang dikompilasi](/docs/id/agent-sdk/typescript#compile-to-a-single-executable), build ulang |

* Jika Anda menjalankan `claude update` di [saluran rilis stable](/docs/id/setup#configure-release-channel), perintah itu tidak memindahkan Anda melewati rilis stable terbaru, yang masih dapat berada di bawah minimum yang diperlukan. Pindah ke saluran latest, lalu perbarui lagi. Jika organisasi Anda mengunci saluran atau versi Anda melalui [pengaturan terkelola](/docs/id/managed-settings), minta admin Anda untuk mengubahnya
* Untuk pesan per-model, Anda dapat terus bekerja dalam sesi saat ini dengan beralih ke model lain: jalankan `/model` di CLI, panggil [`setModel()`](/docs/id/agent-sdk/typescript#query-object) pada objek `Query` SDK TypeScript dalam mode input streaming, atau panggil [`set_model()`](/docs/id/agent-sdk/python#claudesdkclient) pada `ClaudeSDKClient` SDK Python
* Untuk pesan kebijakan organisasi, perbarui sebelum Anda melanjutkan

<h3 id="model-is-restricted-by-your-organizations-settings">
  Model dibatasi oleh pengaturan organisasi Anda
</h3>

Admin organisasi Anda telah menonaktifkan model ini di konsol admin claude.ai, atau pengaturan terkelola mengecualikannya melalui allowlist [`availableModels`](/docs/id/model-config#restrict-model-selection) atau daftar [`deniedModels`](/docs/id/model-config#block-specific-models-or-versions). Pemberitahuan muncul saat startup ketika `--model`, `ANTHROPIC_MODEL`, atau pengaturan `model` menyebutkan model yang dibatasi, dan menyebutkan model yang digunakan sesi sebagai gantinya. Jika pengaturan terkelola tidak meninggalkan model yang diizinkan untuk digunakan sesi, lihat [Pengaturan terkelola memblokir model default](#managed-settings-block-the-default-model). Pemberitahuan substitusi juga dapat muncul di tengah sesi setelah admin menonaktifkan model yang sesi jalankan di konsol admin claude.ai.

```text theme={null}
Model "claude-opus-4-8" is restricted by your organization's settings. Using claude-sonnet-4-6 instead.
```

Mengetik `/model <name>` untuk model yang dibatasi ditolak dan sesi menyimpan model saat ini. Untuk model yang dinonaktifkan di konsol admin, penolakan berbunyi `Model '<name>' is restricted by your organization's settings. Run /model to choose a different model.` Untuk model yang pengaturan terkelola kecualikan, itu berbunyi `Model '<name>' is not available. Your organization restricts model selection.`

Pemberitahuan dengan awalan nama agent, skill, atau perintah berarti pembatasan diterapkan pada [model yang diminta subagent](/docs/id/sub-agents#choose-a-model): subagent berjalan pada model yang disubstitusi dan model sesi Anda tidak berubah. Sebelum v2.1.223, Claude Code menampilkan pemberitahuan hanya untuk subagent yang diluncurkan dengan tool Agent.

Claude Code memperlakukan alias keluarga model, salah satu dari `opus`, `sonnet`, `haiku`, atau `fable`, sebagai permintaan untuk keluarga itu bukan untuk versi terbarunya. Di Anthropic API dan di [Claude Platform on AWS](/docs/id/claude-platform-on-aws), alias keluarga yang dibatasi menyelesaikan ke versi terbaru keluarga yang pengaturan organisasi Anda izinkan, dan pemberitahuan substitusi menyebutkan versi itu. Claude Code menolak `/model <alias>` hanya ketika setiap versi keluarga dibatasi. Sebelum v2.1.205, alias keluarga disubstitusi atau ditolak berdasarkan versi terbarunya saja, bahkan ketika versi yang lebih lama dari keluarga yang sama diizinkan.

**Yang harus dilakukan:**

* Jalankan `/model` untuk memilih dari model yang organisasi Anda izinkan. Model yang dibatasi disembunyikan dari pemilih.
* Jika model yang dibatasi diatur di `--model`, `ANTHROPIC_MODEL`, bidang `model` file pengaturan, atau frontmatter `model` dari [subagent](/docs/id/sub-agents#choose-a-model), skill, atau perintah, hapus atau perbarui nilai itu sehingga pemberitahuan tidak berulang
* Jika Anda memerlukan akses ke model yang dibatasi, minta admin organisasi Anda untuk mengaktifkannya. Lihat [Pembatasan model organisasi](/docs/id/model-config#organization-model-restrictions).

<h3 id="cant-switch-to-the-default-model">
  Tidak dapat beralih ke model default
</h3>

Anda memilih model Default, misalnya dengan memilih baris Default di pemilih `/model` atau mengetik `/model default`. Claude Code menolak sakelar, jadi sesi menyimpan model saat ini.

```text theme={null}
Can't switch to the default model: your organization's managed settings block it (claude-opus-4-6) in "deniedModels", and none of the models they allow can be used as the default instead. Ask your administrator to update "deniedModels" or "availableModels".
```

Pesan setelah titik dua menyebutkan apa yang memblokir sakelar:

* **`your organization's managed settings block it ... in "deniedModels"`**: daftar deny terkelola memblokir model yang opsi Default selesaikan
* **`your organization allows only the models listed in "availableModels"`**: allowlist [`availableModels`](/docs/id/model-config#restrict-model-selection) terkelola dengan [`availableModelsMatch`](/docs/id/settings-reference#availablemodelsmatch) diatur ke `"exact"` meninggalkan model yang opsi Default selesaikan
* **`Claude Code couldn't read your organization's managed settings to check which models they allow`**: [pengaturan terkelola](/docs/id/managed-settings) tidak dapat dibaca, dan Claude Code menolak sakelar bukan menerapkannya tanpa diperiksa

**Yang harus dilakukan:**

* Untuk pesan [`deniedModels`](/docs/id/settings-reference#deniedmodels) dan `availableModels`, jalankan `/model` dan pilih model yang organisasi Anda izinkan berdasarkan nama
* Minta administrator Anda untuk memperbarui pengaturan terkelola yang pesan sebutkan
* Untuk pesan `couldn't read`, mulai ulang Claude Code; jika terus terjadi, minta administrator Anda untuk memeriksa pengaturan terkelola

Jika sesi malah gagal dimulai dengan pesan `Claude Code can't start` di bawah pengaturan terkelola ini, lihat [Pengaturan terkelola memblokir model default](#managed-settings-block-the-default-model).

<h3 id="model-switch-was-blocked-by-a-premodelswitch-hook">
  Sakelar model diblokir oleh hook PreModelSwitch
</h3>

Hook [PreModelSwitch](/docs/id/hooks#premodelswitch) tidak menyetujui sakelar model yang Anda atau klien minta, jadi sesi menyimpan model saat ini. Ketika sakelar berasal dari host [Agent SDK](/docs/id/agent-sdk/overview) atau [Remote Control](/docs/id/remote-control) bukan perintah yang Anda ketik, pesan berbunyi `Model switch blocked by a PreModelSwitch hook` tanpa menyebutkan model target.

```text theme={null}
Model switch to Opus 4.6 was blocked by a PreModelSwitch hook: Opus 4.6 is retired for this project. Use a newer model.
```

Alasan setelah titik dua mengatakan apa yang menolak sakelar:

* **Alasan yang hook tulis**: hook PreModelSwitch memasok alasan itu ketika [menolak sakelar atau meminta konfirmasi](/docs/id/hooks#premodelswitch-decision-control). Tangani apa yang dimintanya, atau pilih model yang hook Anda izinkan.
* **`PreModelSwitch hook <name> did not respond before its timeout`**: hook yang tidak menjawab sebelum [timeout](/docs/id/hooks#timeouts)-nya memblokir sakelar. Perbaiki perintah yang menggantung atau naikkan `timeout` hook itu, lalu alihkan lagi.
* **`confirmation required, and this session cannot ask`**: hook menjawab `ask` tanpa alasan, dan permintaan kontrol tidak memiliki cara untuk menampilkan dialog konfirmasi. Perintah `/model` dalam [run `-p`](/docs/id/headless) melaporkan kondisi yang sama dengan `(run /model interactively to confirm)` setelah alasan. Buat sakelar dari sesi interaktif, atau ubah keputusan hook untuk model ini.
* **`so organization-managed PreModelSwitch hooks could not be checked`**: Claude Code tidak dapat mengetahui hook PreModelSwitch mana yang [plugin terkelola](/docs/id/settings-reference#enabledplugins) organisasi Anda berikan, misalnya karena plugin terkelola gagal dimuat. Salah satu hook itu mungkin memblokir sakelar, jadi Claude Code menolak bukan menerapkan sakelar tanpa diperiksa. Awal alasan menyebutkan apa yang gagal. Claude Code memeriksa ulang pada setiap upaya sakelar, jadi kegagalan yang sejak itu telah hilang berhenti memblokir; jika terus gagal, jalankan `claude --debug` dan alihkan lagi untuk menangkap detail, lalu perbaiki plugin atau minta admin Anda memperbaikinya.
* **`a PreModelSwitch hook failed before answering`** atau **`PreModelSwitch hooks were cancelled (the control stream closed) before answering`**: eksekusi hook berakhir tanpa putusan, dan Claude Code tidak memperlakukan itu sebagai persetujuan. Jalankan `claude --debug` untuk melihat apa yang gagal, lalu alihkan lagi.

Sebelum v2.1.260, penolakan plugin terkelola berbunyi `plugin hooks could not be loaded, so PreModelSwitch hooks could not be checked; see the debug log`. Claude Code mencoba ulang pemuatan plugin sekali lalu menolak sakelar berikutnya dalam sesi, bahkan ketika organisasi Anda tidak mengelola plugin. Mulai ulang sesi untuk menjalankan pemuatan plugin lagi pada versi tersebut.

<h3 id="couldnt-save-it-as-your-default">
  Tidak dapat menyimpannya sebagai default Anda
</h3>

Anda memilih model untuk disimpan sebagai default Anda, misalnya dengan `/model <name>` atau `Enter` di pemilih `/model`, dan Claude Code tidak dapat menulis pilihan ke file pengaturan pengguna Anda, `~/.claude/settings.json`. Sakelar itu sendiri diterapkan, jadi sesi saat ini berjalan pada model yang Anda pilih, tetapi default Anda tidak berubah dan sesi berikutnya dimulai pada nilai lama.

```text theme={null}
Set model to Fable 5.1 for this session only · couldn't save it as your default: ~/.claude/settings.json can't be written (EROFS)
```

Alasan setelah jalur file mengatakan apa yang gagal:

* **`can't be written (<code>)`**: penulisan gagal dengan kode kesalahan sistem operasi dalam tanda kurung, seperti `EROFS` ketika file, atau file yang ditautkannya, berada di sistem file yang menolak penulisan. Buat file dapat ditulis dan alihkan lagi. Jika alat lain menghasilkan file, atur kunci `model` di alat itu sebagai gantinya; lihat [Perubahan yang Anda buat di Claude Code hilang di sesi baru](/docs/id/settings#a-change-you-made-in-claude-code-is-lost-in-new-sessions).
* **`isn't valid JSON`**: file di disk tidak dapat diurai, dan Claude Code meninggalkannya tanpa sentuhan bukan menimpa konten yang tidak dapat dibaca kembali. Perbaiki kesalahan sintaks, lalu alihkan lagi; lihat [Perbaiki file pengaturan yang rusak](/docs/id/settings#fix-a-broken-settings-file).

Pemberitahuan yang berakhir `couldn't confirm it was saved as your default (~/.claude/settings.json is still being written)` berarti penulisan belum selesai setelah tiga detik. Itu berlanjut di latar belakang, jadi default mungkin masih disimpan; periksa model mana yang sesi berikutnya mulai, atau jalankan `/model <name>` lagi.

Sebelum v2.1.265, pemberitahuan mengatakan model itu `saved as your default for new sessions` bahkan ketika penulisan gagal.

<h3 id="advisor-is-less-capable-than-the-current-main-model">
  Advisor kurang mampu dibandingkan model utama saat ini
</h3>

[Model advisor](/docs/id/advisor) Anda berperingkat di bawah model utama sesi Anda, jadi Claude Code mempertahankan pilihan tetapi tidak melampirkan advisor ke permintaan model utama.

```text theme={null}
Advisor set to Opus 4.8
Note: Opus 4.8 is less capable than the current main model (Sonnet 5.5), so the advisor will not activate. Choose a more capable advisor, or switch to a smaller main model.
```

Pesan lain melaporkan kondisi yang sama:

* Dalam sesi interaktif, notifikasi berbunyi `Advisor will not activate on the main model (advisor is less capable); subagents may still use it and may use more tokens · /advisor`.
* Saat peluncuran dengan flag `--advisor`, peringatan berbunyi `"<advisor>" cannot advise "<main model>" (the advisor must be at least as capable as the main model). The advisor will not be used for the main model.` dan sesi tetap dimulai.

**Yang harus dilakukan:**

* Pilih advisor berperingkat lebih tinggi atau model utama berperingkat lebih rendah. [Pilih model advisor](/docs/id/advisor#choose-an-advisor-model) menampilkan peringkat dan mencantumkan advisor yang diterima untuk setiap model utama.
* Biarkan advisor tetap diatur jika Anda ingin [subagent](/docs/id/sub-agents) yang modelnya dapat diberi saran olehnya tetap menggunakannya

Sebelum v2.1.287, Claude Code memberi peringkat beberapa pasangan secara berbeda. Claude Code menampilkan catatan ini untuk advisor Sonnet 5.5 dengan model utama Opus 4.7 atau Opus 4.8, pasangan yang kini diterimanya. Claude Code juga melampirkan beberapa advisor yang kini menghasilkan catatan ini, seperti advisor Opus 4.8 dengan model utama Sonnet 5.5.

<h3 id="thinking-type-enabled-is-not-supported-for-this-model">
  thinking.type.enabled tidak didukung untuk model ini
</h3>

Versi Claude Code Anda lebih lama dari minimum untuk model yang dipilih. CLI mengirim konfigurasi thinking yang model tidak lagi terima.

```text theme={null}
API Error: 400 ... "thinking.type.enabled" is not supported for this model. Use "thinking.type.adaptive" and "output_config.effort" to control thinking behavior.
```

**Yang harus dilakukan:**

* Jalankan `claude update` dan mulai ulang Claude Code. Opus 4.7 memerlukan v2.1.111 atau lebih baru. Opus 4.8 memerlukan v2.1.154 atau lebih baru. Sonnet 5 memerlukan v2.1.197 atau lebih baru. Opus 5 memerlukan v2.1.219 atau lebih baru. Opus 5.5 memerlukan v2.1.280 atau lebih baru. Sonnet 5.5 memerlukan v2.1.284 atau lebih baru
* Di [saluran rilis stable](/docs/id/setup#configure-release-channel), pembaruan tidak memindahkan Anda melewati rilis stable terbaru, yang masih dapat lebih lama dari versi-versi ini. Pindah ke saluran latest, lalu perbarui
* Jika Anda tidak dapat meningkatkan, jalankan `/model` dan pilih Opus 4.6 atau Sonnet 4.6 sebagai gantinya
* Jika Anda mengalami ini di [Agent SDK](/docs/id/agent-sdk/overview), tingkatkan paket SDK sebagai gantinya. Opus 4.8 memerlukan TypeScript SDK v0.3.154 atau lebih baru dan Python SDK v0.2.88 atau lebih baru. Sonnet 5 memerlukan TypeScript SDK v0.3.197 atau lebih baru. Opus 5 memerlukan TypeScript SDK v0.3.219 atau lebih baru. Opus 5.5 memerlukan TypeScript SDK v0.3.280 atau lebih baru. Sonnet 5.5 memerlukan TypeScript SDK v0.3.284 atau lebih baru

<h3 id="effort-isnt-available-with-thinking-turned-off">
  Effort tidak tersedia dengan thinking dimatikan
</h3>

Anda mematikan [extended thinking](/docs/id/model-config#extended-thinking) dan berjalan pada [tingkat effort](/docs/id/model-config#adjust-effort-level) di atas `high`. Model tidak menerima kombinasi itu, jadi API menolak permintaan.

```text theme={null}
API Error: Effort 'xhigh' isn't available with thinking turned off on this model · run /effort high to continue, or turn thinking back on (unset MAX_THINKING_TOKENS=0)
```

Petunjuk setelah `·` bervariasi menurut sesi: dalam sesi non-interaktif itu berbunyi `use --effort high (or the effortLevel setting)`, dan dalam sesi yang aplikasi Claude Desktop jalankan itu berbunyi `you can lower effort to High`.

**Yang harus dilakukan:**

* [Turunkan tingkat effort](/docs/id/model-config#set-the-effort-level) ke `high` atau di bawah.
* Aktifkan thinking kembali, misalnya dengan membatalkan [`MAX_THINKING_TOKENS`](/docs/id/env-vars) atau menghapus [`"alwaysThinkingEnabled": false`](/docs/id/settings-reference#alwaysthinkingenabled) dari pengaturan Anda.

Sebelum v2.1.242, Claude Code menampilkan pesan API sendiri: `API Error: 400 output_config.effort 'xhigh' is not supported when thinking is disabled on this model. Use effort 'high' or below, or enable thinking.` Sebelum v2.1.251, Claude Code mengirim permintaan pada tingkat effort yang Anda atur, jadi Opus 5 menolak setiap permintaan di atas `high` dengan thinking dimatikan. Claude Code sekarang mengirim effort `high` sebagai gantinya ke model yang diketahui menolak kombinasi, seperti Opus 5.

<h3 id="thinking-budget-exceeds-output-limit">
  Thinking budget melebihi batas output
</h3>

Thinking budget extended thinking yang dikonfigurasi melebihi panjang respons maksimum, jadi tidak ada ruang yang tersisa untuk jawaban sebenarnya.

```text theme={null}
API Error: 400 ... max_tokens must be greater than thinking.budget_tokens
```

**Yang harus dilakukan:**

* Naikkan [`CLAUDE_CODE_MAX_OUTPUT_TOKENS`](/docs/id/env-vars) di atas thinking budget
* Lihat [Extended thinking](/docs/id/model-config#extended-thinking) untuk bagaimana budget berinteraksi dengan panjang output

<h3 id="response-exceeded-the-output-token-maximum">
  Response exceeded the output token maximum
</h3>

Balasan Claude mencapai jumlah token output terbesar yang diizinkan permintaan dan terpotong di sana:

```text theme={null}
API Error: Claude's response exceeded the ... output token maximum. To configure this behavior, set the CLAUDE_CODE_MAX_OUTPUT_TOKENS environment variable.
API Error: Claude's response exceeded the 64000 output token maximum for a request sent without streaming. The CLAUDE_CODE_MAX_OUTPUT_TOKENS environment variable cannot raise this limit.
```

Bentuk yang menyebut `a request sent without streaming` berarti permintaan streaming gagal dan Claude Code mengirim ulang tanpa streaming, yang membatasi balasan hingga 64.000 token output. Sebelum v2.1.299, balasan yang terpotong pada permintaan yang dikirim ulang seperti itu mengakhiri giliran tanpa pesan ini, seolah-olah balasannya lengkap.

**Yang harus dilakukan:**

* Jika Claude menulis sebagian teks sebelum balasan terpotong, balas `continue` dalam sesi interaktif untuk meminta sisanya. Teks tersebut tetap ada dalam percakapan.
* Jika pesannya meminta Anda mengatur `CLAUDE_CODE_MAX_OUTPUT_TOKENS`, lihat [`CLAUDE_CODE_MAX_OUTPUT_TOKENS`](/docs/id/env-vars) untuk bagaimana nilainya dibatasi dan [Mengatur environment variable](/docs/id/env-vars#set-environment-variables) untuk tempat mengaturnya
* Agar setiap balasan tetap di bawah batas, minta Claude memberikan output dalam bagian-bagian yang lebih kecil, seperti satu file atau satu bagian per balasan

<h3 id="tool-use-or-thinking-block-mismatch">
  Ketidakcocokan blok penggunaan tool atau thinking
</h3>

Riwayat percakapan mencapai API dalam keadaan tidak konsisten.

```text theme={null}
API Error: 400 due to tool use concurrency issues. Run /rewind to recover the conversation.
API Error: 400 orphaned tool_result in conversation history. Run /rewind to recover the conversation.
API Error: 400 duplicate tool_use ID in conversation history. Run /rewind to recover the conversation.
API Error: 400 ... unexpected `tool_use_id` found in `tool_result` blocks
API Error: 400 ... thinking blocks ... cannot be modified
```

Semua varian berarti hal yang sama: urutan blok `tool_use`, `tool_result`, dan `thinking` dalam riwayat tidak lagi cocok dengan apa yang API harapkan.

**Yang harus dilakukan:**

* Jika Anda menggunakan Opus 4.7 atau Opus 4.8, jalankan `claude update` terlebih dahulu. Versi sebelum v2.1.156 dapat memicu kesalahan ini selama penggunaan tool normal, dan `/rewind` tidak menghapusnya.
* Jalankan `/rewind`, atau tekan Esc dua kali, untuk mundur ke checkpoint sebelum giliran yang rusak dan lanjutkan dari sana. Lihat [Checkpointing](/docs/id/checkpointing) untuk bagaimana checkpoint dibuat dan dipulihkan.

<h3 id="invalid-data-in-redacted-thinking-block">
  Data tidak valid dalam blok redacted\_thinking
</h3>

API menolak permintaan dengan 400 karena tidak dapat menerima blok `redacted_thinking` yang dibawa giliran sebelumnya dalam riwayat percakapan.

```text theme={null}
API Error: 400 ... Invalid `data` in `redacted_thinking` block
```

Claude Code meninggalkan thinking percakapan sebelumnya dari permintaan dan mencoba ulang sekali, jadi sesi berlanjut tanpa menampilkan kesalahan. Sebelum v2.1.282, Claude Code menyimpan blok yang ditolak, dan setiap giliran berikutnya gagal dengan kesalahan yang sama.

**Yang harus dilakukan:**

* Jika Anda di v2.1.281 atau lebih awal dan setiap giliran gagal dengan kesalahan ini, jalankan `claude update` dan lanjutkan sesi
* Jika kesalahan berlanjut, jalankan `/clear` untuk memulai percakapan yang tidak membawa blok

<h3 id="unsupported-tool-content-removed">
  Konten tool yang tidak didukung dihapus
</h3>

Ketika Claude Code terhubung langsung ke Anthropic API dan memuat atau melihat pratinjau sesi yang disimpan, Claude Code menghapus konten tool yang Anthropic API tidak terima dan meninggalkan baris ini di tempat konten yang dihapus berada di antara dua thinking block:

```text theme={null}
[Unsupported tool content removed]
```

Konten seperti itu mencapai file sesi ketika sesuatu selain Anthropic API menjawab dalam format API, biasanya proxy pihak ketiga yang diatur melalui [`ANTHROPIC_BASE_URL`](/docs/id/env-vars) yang menerjemahkan panggilan tool penyedia lain. Claude Code menghapusnya hanya ketika sesi terhubung langsung ke Anthropic API, dan memuat riwayat yang disimpan apa adanya ketika sesi berjalan melalui proxy atau di penyedia lain. Sebelum v2.1.246, Claude Code mengirim penggunaan tool dan hasilnya kembali ke API, dan setiap giliran sesi yang dilanjutkan gagal dengan kesalahan 400 seperti `messages.1.content.0.server_tool_use.name: Input should be 'web_search', 'web_fetch', ...`.

**Yang harus dilakukan:**

* Tidak ada yang diperlukan ketika Anda melihat baris placeholder. Sesi berlanjut tanpa konten yang dihapus.
* Jika setiap giliran sesi yang dilanjutkan gagal dengan kesalahan 400 sebagai gantinya, jalankan `claude update` dan lanjutkan sesi lagi. Versi sebelum v2.1.246 tidak menghapus konten.

<h3 id="role-system-must-precede-an-assistant-message">
  role 'system' harus mendahului pesan 'assistant'
</h3>

API menolak permintaan dengan 400 karena pesan sistem berada pada posisi dalam percakapan yang tidak diterimanya:

```text theme={null}
API Error: 400 messages.6: role 'system' must precede an 'assistant' message or end the array; ...
```

Claude Code mengirim beberapa teks pengingat dan lampiran-nya sebagai pesan sistem di dalam percakapan. Ketika API menolak posisi salah satunya, Claude Code mencoba ulang permintaan sekali dengan teks itu dikirim sebagai pesan pengguna biasa sebagai gantinya. Pesan penempatan serupa dari API, seperti `use the top-level 'system' parameter for the initial system prompt`, mendapatkan pemulihan yang sama.

Ketika kesalahan muncul, pesan sistem yang ditolak bukan yang Claude Code dapat hapus. Itu biasanya berarti proxy atau [gateway LLM](/docs/id/llm-gateway) antara Claude Code dan API menambahkan pesan sistemnya sendiri.

**Yang harus dilakukan:**

* Jika kesalahan berulang pada setiap giliran di belakang proxy atau gateway yang dikonfigurasi melalui [`ANTHROPIC_BASE_URL`](/docs/id/env-vars), terhubung tanpa proxy untuk mengkonfirmasi sumber, dan laporkan kesalahan ke siapa pun yang mengoperasikannya
* Jalankan `/clear` untuk memulai percakapan segar. Jika kesalahan kembali di sana juga, penyebabnya ada di jalur permintaan, bukan di percakapan yang disimpan.

Sebelum v2.1.280, Claude Code tidak mengenali pesan ini, jadi kesalahan juga muncul ketika pesan sistem yang ditolak adalah yang Claude Code sendiri kirim, dan setiap giliran berikutnya dalam percakapan gagal dengan cara yang sama.

<h3 id="invalid-encrypted-content-in-search-result-block">
  Encrypted\_content tidak valid dalam blok search\_result
</h3>

API menolak permintaan dengan 400 karena riwayat percakapan menyimpan konten pencarian web yang dihosting yang tidak dapat didekripsi. Pesan menyebutkan bidang yang tidak dapat dibacanya:

```text theme={null}
API Error: 400 ... Invalid `encrypted_content` in `search_result` block
API Error: 400 ... Invalid `encrypted_index` in `text` block
API Error: 400 ... Failed to decrypt web search result content
API Error: 400 ... Invalid `encrypted_stdout` in `encrypted_code_execution_result` block
```

Hasil dari [tool pencarian web yang dihosting](https://platform.claude.com/docs/en/agents-and-tools/tool-use/web-search-tool) API membawa bidang terenkripsi yang hanya dapat dibaca oleh API. Pesan `encrypted_stdout` menyebutkan output program eksekusi kode yang dihosting yang membaca hasil seperti itu; output tersebut juga dienkripsi oleh API. API menolak permintaan yang memutar ulang konten yang tidak dapat didekripsi, seperti konten yang diproduksi untuk organisasi berbeda.

[Tool WebSearch](/docs/id/tools-reference#websearch-tool-behavior) Claude Code sendiri mencatat hasil pencarian sebagai teks biasa, jadi blok ini biasanya mencapai percakapan melalui proxy atau [gateway LLM](/docs/id/llm-gateway) yang menjalankan pencarian web yang dihosting itu sendiri.

Untuk tiga pesan pencarian web, Claude Code meninggalkan panggilan pencarian, hasil, dan kutipan dari apa yang dikirimnya dan mencoba ulang permintaan sekali, jadi sesi berlanjut tanpa menampilkan kesalahan. Pesan `encrypted_stdout` tidak memiliki pemulihan seperti itu, jadi pesan itu masih mencapai Anda. Sebelum v2.1.282, Claude Code menyimpan blok pencarian web yang ditolak juga, dan setiap giliran berikutnya dan `/compact` gagal dengan cara yang sama.

**Yang harus dilakukan:**

* Jika Anda di v2.1.281 atau lebih awal dan setiap giliran gagal dengan salah satu pesan pencarian web, jalankan `claude update` dan lanjutkan sesi
* Jika kesalahan berlanjut, atau pesan menyebutkan `encrypted_stdout`, jalankan `/rewind` untuk mundur ke checkpoint sebelum giliran yang menambahkan konten, atau jalankan `/clear` untuk memulai percakapan yang tidak membawanya
* Jika Anda menjalankan Claude Code di belakang proxy atau gateway, laporkan kesalahan ke siapa pun yang mengoperasikannya

<h3 id="usage-policy-refusal">
  Penolakan Kebijakan Penggunaan
</h3>

API menolak untuk merespons karena konten dalam percakapan memicu pemeriksaan [Kebijakan Penggunaan](https://www.anthropic.com/legal/aup).

Jika pesan menyertakan baris `` Details: `[reasoning_extraction]` ``, lihat [Pengaman menandai permintaan untuk penalaran Claude](#safeguards-flagged-a-request-for-claudes-reasoning).

Pesan menyertakan ID Permintaan dan ID Pesan yang dapat Anda kutip kepada dukungan jika Anda yakin penolakan tidak benar.

```text theme={null}
API Error: Opus 4.6 can't help with this. Start a new session to continue.

Send feedback with /feedback or learn more: https://www.anthropic.com/legal/aup
```

Pesan menyebutkan model yang menolak, atau `Claude` ketika tidak ada model yang dicatat.

Pemeriksaan mengevaluasi seluruh percakapan, bukan hanya prompt terbaru Anda, jadi mengirim pesan baru dalam sesi yang sama biasanya memicu ulang penolakan yang sama. Hal yang sama berlaku setelah keluar dan membuka kembali sesi dengan `--continue` atau `--resume`, karena transkrip di disk masih berisi konten yang memicu. Di [Amazon Bedrock](/docs/id/amazon-bedrock), [Google Cloud's Agent Platform](/docs/id/google-vertex-ai), dan [Microsoft Foundry](/docs/id/microsoft-foundry), pesan ini juga mencakup permintaan yang ditandai oleh langkah-langkah keselamatan model sebagai topik keamanan siber. Lihat [Langkah-langkah keselamatan menandai topik keamanan siber](#safety-measures-flagged-a-cybersecurity-topic).

Sebelum v2.1.219, pesan berbunyi `Claude Code is unable to respond to this request, which appears to violate our Usage Policy (https://www.anthropic.com/legal/aup). Please double press esc to edit your last message or start a new session for Claude Code to assist with a different task.`

**Yang harus dilakukan:**

* Tekan Esc dua kali atau jalankan `/rewind` untuk mundur ke checkpoint sebelum giliran yang memicu penolakan, lalu ubah susunan kata atau ambil pendekatan berbeda. Lihat [Checkpointing](/docs/id/checkpointing).
* Jika Anda tidak dapat mengidentifikasi giliran mana yang menyebabkannya, jalankan `/clear` untuk memulai percakapan segar dalam proyek yang sama. Percakapan sebelumnya Anda disimpan di disk dan tetap tersedia di `/resume`.
* Dalam [mode non-interaktif](/docs/id/headless) (`-p`), di mana rewind tidak tersedia, coba lagi dengan prompt yang diubah dalam sesi baru tanpa `--continue`. Pemeriksaan kebijakan bervariasi menurut model, jadi beralih ke model berbeda dengan `--model` juga dapat menyelesaikan penolakan dalam beberapa kasus.

<h3 id="safety-measures-flagged-a-cybersecurity-topic">
  Langkah-langkah keselamatan menandai topik keamanan siber
</h3>

Langkah-langkah keselamatan model menandai konten dalam percakapan sebagai topik keamanan siber. Pesan menyebutkan model yang menandai permintaan:

```text theme={null}
API Error: Opus 4.8's safeguards flagged this message. Our intentionally broad safeguards allow us to deliver more capabilities faster, but can sometimes flag legitimate cybersecurity work. Send feedback with /feedback or learn more: https://support.claude.com/en/articles/14604842-real-time-cyber-safeguards-on-claude
```

Jika pesan menyertakan baris `` Details: `[reasoning_extraction]` ``, lihat [Pengaman menandai permintaan untuk penalaran Claude](#safeguards-flagged-a-request-for-claudes-reasoning).

Pesan ini menautkan ke [Program Verifikasi Siber](https://support.claude.com/en/articles/14604842-real-time-cyber-safeguards-on-claude), yang memberikan akses untuk pekerjaan keamanan siber yang sah. Model dengan [fallback model otomatis](/docs/id/model-config#automatic-model-fallback) menampilkan pesan berbeda, tanpa tautan ini; di Opus 5.5 dan Sonnet 5.5 pesan itu dibuka dengan `<model>'s safeguards flagged this session`. Bagian tersebut juga membahas kapan Claude Code beralih model sebagai gantinya.

Di [Amazon Bedrock](/docs/id/amazon-bedrock), [Google Cloud's Agent Platform](/docs/id/google-vertex-ai), dan [Microsoft Foundry](/docs/id/microsoft-foundry), penandaan keamanan siber menghasilkan pesan [Penolakan Kebijakan Penggunaan](#usage-policy-refusal) sebagai gantinya.

**Yang harus dilakukan:**

* Jika pekerjaan Anda memerlukan konten ini, ajukan permohonan akses melalui [Program Verifikasi Siber](https://support.claude.com/en/articles/14604842-real-time-cyber-safeguards-on-claude)
* Jika permintaan Anda bukan tentang topik keamanan siber, jalankan `/feedback` untuk melaporkan positif palsu
* Untuk terus bekerja dalam sesi yang sama, tekan Esc dua kali atau jalankan `/rewind` untuk mundur ke checkpoint sebelum giliran yang memicu penandaan, lalu ambil pendekatan berbeda. Lihat [Checkpointing](/docs/id/checkpointing).

Jika pesan yang Anda lihat memiliki susunan kata seperti salah satu dari berikut ini, itu adalah penandaan yang sama pada versi Claude Code yang lebih lama:

* Dari v2.1.219 hingga v2.1.296, pesan tersebut juga dapat menyertakan `Apply to the Cyber Verification Program to reduce these interruptions.` sebelum kalimat penutupnya
* Dari v2.1.203 hingga v2.1.218, pesan tersebut berbunyi `<model> has safety measures that flagged this message for a cybersecurity topic. To learn about the Cyber Verification Program and apply for access, visit our help center:` diikuti oleh tautan pusat bantuan yang sama. Dalam sesi interaktif, pesan tersebut dilanjutkan dengan `If you were not engaging in a cybersecurity topic, please send feedback via /feedback.`
* Sebelum v2.1.203, pesan tersebut berbunyi `<model>'s safeguards flagged this message for a cybersecurity topic. If your work requires this access, you can apply for an exemption:` diikuti oleh tautan formulir pengecualian

<h3 id="safeguards-flagged-a-request-for-claudes-reasoning">
  Pengaman menandai permintaan untuk penalaran Claude
</h3>

API menolak permintaan karena pengaman menandainya sebagai meminta model untuk mereproduksi penalaran internalnya dalam respons. API menamai [kategori penolakan](https://platform.claude.com/docs/en/build-with-claude/refusals-and-fallback#refusal-response) ini `reasoning_extraction`, dan pesan penolakan menyertakan baris ini:

```text theme={null}
Details: `[reasoning_extraction]`
```

Sebelum v2.1.234, pesan penolakan tidak menyertakan baris `Details`.

**Yang harus dilakukan:**

* Hapus atau ubah susunan kata instruksi apa pun yang meminta Claude menuliskan thinking atau penalarannya kata demi kata atau dalam format tetap, seperti bagian `<thinking>`, bagian scratchpad, atau bidang `reasoning` dalam output JSON. Instruksi tersebut dapat berada dalam prompt Anda atau dalam kustomisasi yang dimuat Claude Code bersamanya, seperti CLAUDE.md, skill, prompt subagent, gaya output, atau deskripsi tool MCP.
* Untuk memeriksa apakah kustomisasi adalah pemicunya, jalankan [`claude --safe-mode`](/docs/id/cli-reference#cli-flags) di terminal Anda untuk memulai sesi dengan kustomisasi dinonaktifkan, lalu kirim prompt yang sama
* Setelah Anda mengubah kustomisasi, mulai sesi baru
* Untuk mengubah susunan kata prompt yang sudah Anda kirim, lihat [Rewind dan rangkum](/docs/id/checkpointing#rewind-and-summarize)
* Anda masih dapat meminta Claude menjelaskan jawabannya. Minta penjelasan singkat, bukti di balik suatu hasil, atau ringkasan tindakan yang diambilnya. Untuk membaca ringkasan pemikiran Claude, lihat [`showThinkingSummaries`](/docs/id/settings-reference#showthinkingsummaries).
* Untuk contoh lainnya, dan apa yang harus dilakukan jika permintaan yang sudah diubah susunan katanya masih ditolak, lihat [Simpan penalaran dalam thinking block](https://platform.claude.com/docs/en/build-with-claude/refusals-and-fallback#keep-reasoning-in-thinking-blocks)

<h3 id="output-blocked-by-content-filtering-policy">
  Output blocked by content filtering policy
</h3>

Filter konten output API menghentikan respons yang sedang dihasilkan Claude. Teks pesan berasal dari API:

```text theme={null}
API Error: Output blocked by content filtering policy
```

**Yang harus dilakukan:**

* Ubah susunan kata pesan terakhir Anda atau ambil pendekatan berbeda
* Untuk mundur ke checkpoint sebelum giliran yang memicu pemblokiran, tekan Esc dua kali atau jalankan `/rewind`. Lihat [Checkpointing](/docs/id/checkpointing)

<h2 id="command-line-errors">
  Kesalahan baris perintah
</h2>

Kesalahan ini berasal dari baris perintah `claude` dan subperintahnya, dari nama perintah yang Anda kirimkan di prompt, dan dari perintah seperti `/security-review` yang mengumpulkan konteks dengan menjalankan perintah shell sebelum prompt-nya berjalan. Kesalahan ini juga berasal dari `/tui`, yang meluncurkan ulang CLI.

<h3 id="conflict-between-bg-and-print">
  Konflik antara `--bg` dan `--print`
</h3>

Pesan ini memerlukan Claude Code v2.1.198 atau yang lebih baru. Anda menggabungkan `--bg` dengan `-p` atau `--print` dalam pemanggilan `claude` yang sama. `--bg` memulai [sesi latar belakang](/docs/id/agent-view#from-your-shell) yang nantinya Anda sambungkan dengan `claude agents`, sedangkan `--print` berjalan secara [non-interaktif](/docs/id/headless) dan tidak pernah memulai sesi interaktif yang disambungkan oleh `claude agents`. Sebelum v2.1.198, kombinasi ini secara diam-diam membuat pekerjaan latar belakang yang tidak pernah dapat disambungkan.

```text theme={null}
--bg and --print conflict: --print never starts the interactive session that `claude agents` attaches to, so the job would be unattachable. The prompt is the positional — drop --print: `claude --bg '<task>'`.
```

**Yang perlu dilakukan:**

* Hapus `-p` atau `--print`. `--bg` menerima prompt sebagai argumen posisionalnya, sehingga `claude --bg "<task>"` adalah perintah lengkapnya. Lihat [Dispatch agent baru dari shell Anda](/docs/id/agent-view#from-your-shell).
* Untuk menjalankan prompt secara non-interaktif dan mencetak hasilnya alih-alih membuat sesi latar belakang, hapus `--bg` dan jalankan `claude -p "<task>"`

<h3 id="couldnt-tell-whether-bg-is-a-flag-or-text">
  Couldn't tell whether `--bg` is a flag or text
</h3>

Anda menjalankan `claude` dengan `--bg` atau `--background` pada posisi di mana Claude Code tidak dapat membedakan apakah Anda memaksudkannya sebagai flag latar belakang atau sebagai teks. Perintah tersebut tidak memulai apa pun, mencetak baris ini, dan keluar dengan kode 1:

```text theme={null}
Couldn't tell whether --bg is a flag or text here, so nothing was started. To start a background session put it first: claude --bg <prompt>
```

Jika Anda mengetik `--background`, baris tersebut akan menyebut `--background` sebagai gantinya.

**Yang harus dilakukan:**

* Untuk memulai [sesi latar belakang](/docs/id/agent-view#from-your-shell), jalankan kembali perintah di shell Anda dengan flag diletakkan pertama: `claude --bg --name nightly-audit "<task>"`

<h3 id="conflict-between-a-system-prompt-flag-and-its-file-form">
  Konflik antara flag system prompt dan bentuk file-nya
</h3>

Anda memberikan [`--append-subagent-system-prompt`](/docs/id/cli-reference#cli-flags) bersama dengan `--append-subagent-system-prompt-file` dalam satu pemanggilan `claude`, sehingga `claude` keluar dengan kode 1 alih-alih memulai sesi:

```text theme={null}
Error: Cannot use both --append-subagent-system-prompt and --append-subagent-system-prompt-file. Please use only one.
```

Sebelum v2.1.283, `claude` keluar dengan cara yang sama ketika Anda memberikan `--system-prompt` dengan `--system-prompt-file`, atau `--append-system-prompt` dengan `--append-system-prompt-file`, karena pasangan tersebut berkonflik alih-alih [digabungkan](/docs/id/cli-reference#system-prompt-flags). Pada versi tersebut, pesan menyebutkan pasangan yang Anda gabungkan.

**Yang perlu dilakukan:**

* Pertahankan satu bentuk flag dan hapus yang lain. Untuk menggabungkan file prompt tetap dengan teks per-run, gabungkan teks tersebut ke dalam file sebelum meluncurkan alih-alih memberikan kedua flag

<h3 id="invalid-agents-configuration">
  Konfigurasi `--agents` tidak valid
</h3>

Nilai yang Anda berikan ke `--agents` tidak valid, sehingga `claude` keluar dengan kode 1 alih-alih memulai sesi. Ketika Anda memberikan `--safe-mode` atau mengatur [`CLAUDE_CODE_SAFE_MODE`](/docs/id/env-vars#variables), Claude Code mengabaikan `--agents` sepenuhnya. Dengan `--resume` atau `--continue`, nilai JSON inline tidak diperiksa dan sesi dimulai; nilai yang dibaca dari file diperiksa pada setiap peluncuran. Sebelum v2.1.242, Claude Code tetap memulai sesi.

```text theme={null}
Error: Invalid --agents configuration:
<what failed>
```

Apa yang mengikuti baris pertama bergantung pada bagaimana nilai tersebut gagal. Claude Code menjalankan pemeriksaan ini secara berurutan dan berhenti pada pemeriksaan pertama yang gagal. Jika nilai Anda memiliki dua jenis masalah, Anda baru melihat masalah kedua setelah memperbaiki yang pertama:

1. Ketika nilai diawali dengan `{` tetapi tidak dapat diurai sebagai JSON, atau isi file `--agents` tidak dapat diurai, Claude Code mencetak satu baris `invalid JSON:` yang memuat pesan dari pengurai JSON itu sendiri
2. Ketika nilai dapat diurai tetapi definisi agent tidak sesuai dengan skema untuk [subagent yang didefinisikan melalui CLI](/docs/id/sub-agents#choose-the-subagent-scope), Claude Code mencetak satu baris per masalah
3. Ketika nama agent diawali dengan `-`, Claude Code mencetak `<name>: agent names must not start with '-'`

Ketika terdapat lebih dari 20 baris masalah, Claude Code mencetak 20 baris pertama dan mengganti sisanya dengan `…and N more`.

Dengan `--print`, `--agents` juga menerima [path ke file JSON](/docs/id/sub-agents#choose-the-subagent-scope) sebagai pengganti objek inline. Sebelum v2.1.281, `--agents` hanya menerima JSON inline dan memperlakukan path file sebagai JSON yang tidak valid. Bentuk file memiliki penolakannya sendiri, yang dicetak sebagai pengganti pesan ini, termasuk yang berikut:

* **`Error: --agents takes a JSON object, or a file path only with --print (-p)`**: Claude Code membaca nilai sebagai path file dalam sesi interaktif. Berikan definisi sebagai JSON inline, atau tambahkan `-p` untuk membacanya dari file.
* **`Error: --agents file not found: <path>`**: tidak ada file di path tersebut. Nilai yang tidak diawali dengan `{` dan bukan JSON yang valid dibaca sebagai path, sehingga JSON inline yang dirusak oleh shell Anda juga dapat gagal dengan cara ini. Periksa path atau tanda kutipnya dan jalankan perintah lagi.

**Yang perlu dilakukan:**

* Perbaiki setiap masalah yang dicantumkan pesan, lalu jalankan perintah lagi. Lihat [field yang diterima subagent yang didefinisikan melalui CLI](/docs/id/sub-agents#choose-the-subagent-scope).

<h3 id="cloud-sessions-cannot-be-created-from-a-restricted-session">
  Sesi cloud tidak dapat dibuat dari sesi `--restricted`
</h3>

Ketika Anda memulai sesi dengan [`--restricted`](/docs/id/cli-reference#cli-flags), Claude Code menolak membuat [sesi cloud](/docs/id/claude-code-on-the-web#from-terminal-to-cloud) darinya, karena sesi baru akan berjalan di luar proses yang dibatasi dan tidak akan menerapkan mode terbatas. Claude Code menolak di sisi klien, sebelum menghubungi server, sehingga tidak ada sesi cloud yang dibuat:

```text theme={null}
Cloud sessions cannot be created from a --restricted session: they would not enforce it.
```

**Yang perlu dilakukan:**

* Jalankan tugas secara lokal di sesi terbatas
* Jika Anda mengendalikan cara sesi diluncurkan, mulai sesi `claude` baru tanpa `--restricted` dan buat sesi cloud dari sana

Sebelum v2.1.248, Claude Code tidak memiliki flag `--restricted`; versi sebelumnya menolak flag itu sendiri dengan kesalahan opsi tidak dikenal.

<h3 id="cloud-sessions-are-disabled-by-your-organizations-policy">
  Sesi cloud dinonaktifkan oleh kebijakan organisasi Anda
</h3>

Kebijakan `allow_remote_sessions` organisasi Anda dimatikan, sehingga [sesi cloud](/docs/id/claude-code-on-the-web) dan perintah yang menggunakannya tidak tersedia:

```text theme={null}
Cloud sessions are disabled by your organization's policy. Contact your organization admin to enable them.
```

Pesan ini muncul ketika Anda [membuat sesi cloud dari terminal](/docs/id/claude-code-on-the-web#from-terminal-to-cloud) dan ketika Anda mengirimkan perintah yang memerlukan sesi cloud, seperti `/teleport`, `/remote-env`, atau `/web-setup`. Sebelum v2.1.268, mengirimkan salah satu perintah tersebut mengembalikan [`Unknown command`](#unknown-command).

Jika pesan justru menyebutkan kredensial yang digunakan sesi ini dan diakhiri dengan `Cloud sessions use your claude.ai login.`, lihat [Cloud sessions use your claude.ai login](#cloud-sessions-use-your-claude-ai-login). Jika Claude Code sama sekali tidak dapat memuat kebijakan organisasi Anda, Anda akan melihat [pesan yang berbeda](#couldnt-verify-your-organizations-policy-for-cloud-sessions) sebagai gantinya.

**Yang perlu dilakukan:**

* Minta [Owner](/docs/id/server-managed-settings#access-control) di organisasi Anda untuk mengaktifkan sesi cloud di pengaturan admin Claude Code di [claude.ai/admin-settings/claude-code](https://claude.ai/admin-settings/claude-code)

<h3 id="cloud-sessions-use-your-claude-ai-login">
  Cloud sessions use your claude.ai login
</h3>

Ketika [penolakan kebijakan](#cloud-sessions-are-disabled-by-your-organizations-policy) menyebutkan kredensial yang digunakan sesi ini dan diakhiri dengan kalimat ini, Claude Code memeriksa kebijakan sesi cloud dari organisasi yang menerbitkan kredensial tersebut. Organisasi tersebut dapat berbeda dari organisasi tempat login claude.ai Anda berada:

```text theme={null}
Cloud sessions are disabled by your organization's policy. This session is using ANTHROPIC_API_KEY, so Claude Code checked the policy for the organization that key belongs to. Cloud sessions use your claude.ai login.
```

Kalimat terakhir berarti bahwa sesi cloud berjalan dengan login claude.ai Anda, bukan dengan kredensial tersebut. Bentuk ini muncul ketika Anda memulai, melanjutkan, atau mengirim pesan ke sesi cloud dari shell Anda, seperti dengan `--cloud` atau `--teleport`. Sebelum v2.1.296, Claude Code juga mencetak bentuk yang meminta Anda menghubungi admin organisasi dalam kasus ini.

<h3 id="couldnt-verify-your-organizations-policy-for-cloud-sessions">
  Couldn't verify your organization's policy for cloud sessions
</h3>

Pesan-pesan ini berarti Claude Code tidak dapat memuat kebijakan organisasi Anda, yang diperiksanya sebelum membuat, melanjutkan, atau mengirim pesan ke [sesi cloud](/docs/id/claude-code-on-the-web). Selama permintaan kebijakan belum selesai, pesannya adalah:

```text theme={null}
Couldn't verify your organization's policy for cloud sessions. Check your network connection and try again.
```

Di dalam sesi, perintah yang memerlukan sesi cloud, seperti `/teleport` atau `/web-setup`, juga memberikan pesan ini. Hal ini terjadi bahkan ketika shell Anda akan mencetak bentuk `Cloud sessions aren't available:`, dan kalimat keduanya berbunyi `Check your network connection, then restart Claude Code and try again.`

Setelah permintaan kebijakan gagal, pesan menyebutkan apa yang gagal. Hal ini berlaku ketika Anda memulai, melanjutkan, atau mengirim pesan ke sesi cloud dari shell Anda dengan flag seperti `--cloud` atau `--teleport`. Tanpa rute ke API, pesannya berbunyi:

```text theme={null}
Cloud sessions aren't available: couldn't reach api.anthropic.com to load your organization's policy. Check your network or proxy.
```

Kegagalan lain mengikuti pembuka yang sama dengan penyebabnya masing-masing, seperti proxy yang menolak permintaan dengan HTTP 403, kesalahan server, atau kredensial yang tidak diterima API. Ketika API tidak menerima kredensial yang digunakan sesi ini sebagai pengganti login claude.ai Anda, seperti environment variable `ANTHROPIC_API_KEY`, pesan juga dapat menyebutkannya dan meminta Anda untuk menghapusnya:

```text theme={null}
Cloud sessions aren't available: api.anthropic.com didn't accept this session's credentials when Claude Code asked for your organization's policy. Cloud sessions use your claude.ai login. ANTHROPIC_API_KEY is set, so this session is using API-key auth — unset it (or run in a shell without it) to use cloud sessions.
```

Sebelum v2.1.296, kegagalan ini juga mencetak pesan `Couldn't verify`.

**Yang harus dilakukan:**

* Untuk pesan `Couldn't verify`, periksa koneksi jaringan Anda dan coba lagi. Di dalam sesi, mulai ulang Claude Code terlebih dahulu
* Untuk pesan `Cloud sessions aren't available:`, lakukan apa yang diperlukan oleh penyebabnya, seperti memeriksa proxy Anda atau menghapus kredensial yang disebutkannya, lalu jalankan perintah lagi

<h3 id="nothing-was-stashed-because-a-folder-replaced-a-tracked-file">
  Nothing was stashed because a folder replaced a tracked file
</h3>

Pesan ini berarti sebuah folder di checkout Anda kini berada di tempat yang sebelumnya ditempati file atau link yang dilacak git. Pesan ini muncul setelah Anda memilih opsi stash saat menarik [sesi cloud](/docs/id/claude-code-on-the-web#from-cloud-to-terminal) ke terminal Anda, misalnya dengan `claude --teleport` atau `/teleport`. Melakukan stash pada kondisi tersebut dapat menghapus file di dalam folder, sehingga Claude Code menolak stash dan membiarkan checkout serta index Anda tidak berubah:

```text wrap theme={null}
Error: Nothing was stashed: "f" is now a folder in place of a tracked file or link, and stashing could delete what's in it for good. Commit the change or move the folder somewhere else, then try again.
```

**Yang perlu dilakukan:**

* Lakukan commit atas perubahan tersebut atau pindahkan folder ke tempat lain, seperti yang disebutkan pesan, lalu jalankan teleport lagi

<h3 id="the-json-schema-value-is-not-a-valid-json-schema">
  Nilai `--json-schema` bukan JSON Schema yang valid
</h3>

Skema yang Anda berikan ke [`--json-schema`](/docs/id/cli-reference#cli-flags) dalam [mode non-interaktif](/docs/id/headless#get-structured-output) gagal dikompilasi sebagai JSON Schema, sehingga `claude` keluar dengan kode 1 alih-alih menjalankan prompt. Sebelum v2.1.205, skema yang tidak valid menghasilkan output tidak terstruktur tanpa kesalahan, dan setiap skema yang menggunakan kata kunci `format` diperlakukan sebagai tidak valid.

```text theme={null}
Error: --json-schema is not a valid JSON Schema: data/type must be equal to one of the allowed values
```

Teks setelah titik dua kedua adalah diagnostik validator dan menyebutkan kata kunci atau lokasi yang gagal. Skema yang menggunakan kata kunci `format`, seperti `"format": "email"`, adalah valid: Claude Code menerima `format` sebagai anotasi dan tidak menerapkannya.

Claude Code menjalankan dua pemeriksaan sebelum kompilasi skema: Claude Code menolak nilai yang bukan JSON yang dapat diurai dengan `Error: --json-schema is not valid JSON`, dan JSON valid yang bukan objek dengan `Error: --json-schema must be a JSON object`.

**Yang perlu dilakukan:**

* Perbaiki bagian skema yang disebutkan oleh diagnostik, lalu jalankan ulang perintah
* Lihat [Mendapatkan output terstruktur](/docs/id/headless#get-structured-output) untuk skema dan perintah yang berfungsi

<h3 id="settings-file-exceeds-the-2mib-limit">
  File pengaturan melebihi batas 2MiB
</h3>

File yang Anda berikan ke [`--settings`](/docs/id/cli-reference#cli-flags) berukuran lebih dari 2 MiB, sehingga `claude` keluar dengan kode 1 saat startup alih-alih memuatnya. Sebelum v2.1.214, Claude Code membaca file tanpa pemeriksaan ukuran, dan file berukuran beberapa gigabyte atau file perangkat seperti `/dev/zero` membuat memori bertambah tanpa batas.

```text theme={null}
Error: Settings file exceeds the 2MiB limit: /path/to/settings.json
```

Claude Code menolak path `--settings` yang bukan file biasa dengan cara yang sama: perangkat, FIFO, atau socket melaporkan `Error: Cannot use settings file (Not a regular file (device, FIFO, or socket))` diikuti path-nya, dan direktori melaporkan alasan `EISDIR`.

**Yang perlu dilakukan:**

* Arahkan `--settings` ke file pengaturan JSON biasa yang berukuran di bawah 2 MiB. Lihat [Pengaturan](/docs/id/settings) untuk formatnya.

<h3 id="the-current-directory-no-longer-exists">
  Direktori saat ini sudah tidak ada
</h3>

Anda memulai `claude` dari direktori yang dihapus atau dipindahkan setelah shell Anda memasukinya, misalnya worktree atau direktori sementara yang dihapus oleh shell lain. Claude Code tidak dapat membaca direktori kerjanya, sehingga keluar dengan kode 1 sebelum memulai sesi, baik dalam mode interaktif maupun [non-interaktif](/docs/id/headless). Sebelum v2.1.239, Claude Code mengalami crash dengan sumber bundle yang diminifikasi dan stack `ENOENT ... uv_cwd` mentah di stderr alih-alih pesan ini.

```text theme={null}
The current directory no longer exists (it was deleted or moved). Start Claude Code from an existing directory.
error: The current working directory was deleted, so that command didn't work. Please cd into a different directory and try again.
```

Penyebab dan perbaikannya sama untuk kedua bentuk.

Ketika Claude Code tidak dapat membaca direktori kerja karena alasan lain, seperti perubahan permission, pesan menyebutkan kode kesalahannya: `Can't read the current directory (EACCES). Start Claude Code from a different directory.`

Di macOS, `EPERM` untuk direktori di `~/Desktop`, `~/Documents`, `~/Downloads`, atau iCloud Drive biasanya berarti macOS memblokir aplikasi terminal Anda dari folder tersebut. Perintah lain yang membaca folder tersebut gagal dengan cara yang sama: `ls` di sana melaporkan `Operation not permitted`, bahkan dengan `sudo`.

**Yang perlu dilakukan:**

* Pindah ke direktori yang ada, seperti direktori home atau direktori proyek Anda, lalu jalankan `claude` lagi
* Jika direktori dibuat ulang di path yang sama, shell Anda masih memegang direktori yang telah dihapus. Jalankan `cd "$PWD"` atau keluar lalu masuk kembali ke direktori tersebut, lalu jalankan `claude` lagi
* Untuk `EPERM` di macOS, tutup aplikasi terminal Anda dengan Cmd+Q, buka lagi, kembali ke folder tersebut, dan jalankan `claude`. Jika `ls` di folder tersebut masih gagal, buka **System Settings > Privacy & Security > Files and Folders**, aktifkan folder tersebut untuk aplikasi terminal Anda, lalu buka kembali terminal

<h3 id="temp-directory-refused-or-cannot-be-created">
  Direktori sementara ditolak atau tidak dapat dibuat
</h3>

Di macOS dan Linux, Claude Code membuat direktori sementara privat saat startup, `claude-<uid>` di bawah direktori sementara sistem atau override [`CLAUDE_CODE_TMPDIR`](/docs/id/env-vars). Ketika direktori tidak dapat dibuat, atau entri yang sudah ada di path tersebut gagal dalam pemeriksaan keamanan, Claude Code mencetak kegagalan ke stderr dan keluar dengan kode 1 alih-alih memulai sesi:

```text wrap theme={null}
ENOSPC: no space left on device, mkdir '/tmp/claude-501'

Temp directory /tmp/claude-501 is not a directory (may be an attacker-planted symlink). Refusing to use it. Set CLAUDE_CODE_TMPDIR to a directory you control, or ask an administrator to remove it.

Temp directory /tmp/claude-501 is owned by uid 502, expected 501. Refusing to use it — another user may have pre-created it. Set CLAUDE_CODE_TMPDIR to a directory you control, or ask an administrator to remove it.

Temp directory /tmp/claude-501 is not readable (its mode may have been altered, or a path component denies search). Refusing to use it — restore its permissions (chmod 0700) or remove it. Set CLAUDE_CODE_TMPDIR to a directory you control, or ask an administrator to remove it.
```

**Yang perlu dilakukan:**

* Untuk `ENOSPC`, kosongkan ruang disk pada volume yang menampung direktori sementara
* Untuk bentuk `Refusing to use it`, hapus entri yang disebutkan itu sendiri, bukan yang ditunjuk oleh tautan, dan mulai Claude Code lagi; untuk bentuk `owned by uid`, hanya administrator atau pengguna tersebut yang dapat menghapusnya
* Untuk `is not readable`, jalankan `chmod 0700` pada direktori yang disebutkan, atau hapus direktori tersebut dan mulai lagi
* Dalam semua kasus ini, atur [`CLAUDE_CODE_TMPDIR`](/docs/id/env-vars) ke direktori yang Anda kendalikan dan mulai Claude Code lagi, tanpa mengubah path yang ditolak

<h3 id="directory-couldnt-be-resolved-to-a-real-location">
  Direktori tidak dapat di-resolve ke lokasi sebenarnya
</h3>

Anda menjalankan `/add-dir` untuk subdirektori dari direktori kerja Anda, dan Claude Code tidak dapat me-resolve direktori tersebut ke lokasi sebenarnya.

Anda sudah memiliki akses file ke subdirektori dari direktori kerja, sehingga `/add-dir` hanya memuat skill, perintah, dan agent-nya. Sebelum memuatnya, Claude Code memeriksa bahwa lokasi sebenarnya direktori tersebut, dengan semua symlink di-resolve, berada di dalam direktori kerja. Ketika Claude Code tidak dapat me-resolve lokasi tersebut, Claude Code tidak memuat apa pun dan menampilkan pesan ini:

```text theme={null}
packages/app couldn't be resolved to a real location, so its skills, commands, and agents weren't loaded. Check that it is a directory inside the working directory and try again.
```

**Yang perlu dilakukan:**

* Periksa bahwa path tersebut menunjuk ke direktori nyata di dalam direktori kerja, lalu jalankan `/add-dir` lagi
* Pesan ini tidak mengubah akses file Anda; pesan ini hanya melaporkan bahwa konten `.claude/` direktori tersebut tidak dimuat

Sebelum v2.1.261, pesan ini juga muncul untuk setiap `/add-dir <subdirectory>` ketika direktori kerja berada di automount `/net/<host>`, tempat Claude Code memang tidak me-resolve path berdasarkan desain; direktorinya baik-baik saja dan mencoba ulang tidak membantu.

<h3 id="workspace-not-trusted-when-starting-remote-control">
  Workspace tidak dipercaya saat memulai Remote Control
</h3>

Anda memulai mode server [Remote Control](/docs/id/remote-control) dengan `claude remote-control` atau alias `claude rc`-nya di direktori yang belum Anda percayai, dan perintah tersebut tidak dapat menanyakan apakah Anda ingin memercayainya. Misalnya, input standar atau output standar perintah bukan terminal karena salah satunya dialihkan atau di-pipe. Perintah keluar dengan kode 1:

```text theme={null}
Error: Workspace not trusted. Please run `claude` in /Users/you/project first to review and accept the workspace trust dialog.
```

Dua varian yang juga diawali dengan `Error: Workspace not trusted.` muncul di terminal yang terlalu kecil untuk menampilkan apa yang diaktifkan dengan memercayai direktori, atau terminal yang tidak melaporkan ukurannya. Perbesar jendela atau beralih ke jendela terminal biasa, lalu jalankan `claude rc` lagi.

Di direktori home Anda, pesannya berbeda, karena dialog kepercayaan workspace tidak pernah menyimpan kepercayaan untuk direktori home, sehingga menerimanya di sana tidak dapat memenuhi pemeriksaan ini. Sebelum v2.1.214, direktori home menampilkan pesan di atas, yang sarannya tidak dapat berhasil di sana.

```text theme={null}
Error: Workspace not trusted. /Users/you is your home directory, and for security home-directory trust is never saved, so running `claude` here first won't help. Run `claude rc` from a project directory instead (run `claude` there once to accept the trust dialog).
```

Jika Anda menjawab `n` atau menekan Enter pada [pertanyaan `Trust <directory>?`](/docs/id/remote-control#requirements), perintah mencetak pesan `Remote Control did not start` yang menyebutkan direktori tersebut dan keluar dengan kode 1. Jalankan `claude rc` lagi untuk menjawab `y`.

**Yang perlu dilakukan:**

* Percayai direktori tersebut dari terminal terlebih dahulu: jalankan `claude rc` di sana dan jawab `y`, atau jalankan `claude` di sana dan terima [dialog kepercayaan workspace](/docs/id/permissions#project-allow-rules-and-workspace-trust), lalu jalankan perintah asli Anda lagi
* Di direktori home Anda, pindah ke direktori proyek dan mulai Remote Control di sana

Sebelum v2.1.284, perintah tidak pernah bertanya, bahkan di terminal.

<h3 id="not-carried-over-to-the-sessions-remote-control-starts">
  Tidak diteruskan ke sesi yang dimulai Remote Control
</h3>

Anda memulai [Remote Control](/docs/id/remote-control) dengan flag `claude` global sebelum kata kerja `remote-control`, yaitu flag yang akan membatasi atau mengonfigurasi sesi yang dimulai Remote Control, seperti `--settings`, `--setting-sources`, `--permission-mode`, `--disallowed-tools`, atau `--mcp-config`. Flag yang ditempatkan sebelum kata kerja tidak pernah mencapai sesi tersebut. Claude Code menolak untuk memulai, dengan menyebutkan flag tersebut:

```text theme={null}
Error: `--settings` before `remote-control` is not carried over to the sessions Remote Control starts, so Remote Control refuses to start rather than drop it — remove it, and give Remote Control's own options after the verb (see `claude remote-control --help`).
```

Claude Code tidak menolak flag global yang aman untuk diabaikan, seperti `--verbose`, `--model`, atau `--session-id` atau `--plugin-dir` yang disisipkan oleh wrapper: Claude Code mengabaikannya dan Remote Control dimulai.

Claude Code juga menolak untuk memulai untuk flag global yang belum dikenalinya sebagai aman, sehingga flag yang ditambahkan dalam rilis yang lebih baru dapat muncul dalam pesan ini hingga rilis berikutnya menandainya sebagai aman.

**Yang perlu dilakukan:**

* Hapus flag dari posisi sebelum kata kerja dan berikan [opsi Remote Control sendiri](/docs/id/remote-control#start-a-remote-control-session) setelahnya; `claude remote-control --help` mencantumkannya
* Ketika flag yang ditolak adalah `--permission-mode`, jalankan `claude remote-control --permission-mode <mode>` untuk mengatur mode izin bagi sesi yang dimulai Remote Control

Sebelum v2.1.248, `claude remote-control` tidak menerima flag-nya sendiri ketika flag global muncul lebih dulu, dan perintah gagal dengan kesalahan `unknown option`.

<h3 id="sandbox-is-not-supported-by-claude-remote-control">
  `--sandbox` or `--no-sandbox` is not supported by claude remote-control
</h3>

Error ini berarti perintah yang memulai server [Remote Control](/docs/id/remote-control) Anda meneruskan `--sandbox` atau `--no-sandbox` setelah `remote-control`, dan `claude remote-control` tidak menerima kedua flag tersebut. Server keluar dengan kode 1 alih-alih dimulai:

```text theme={null}
Error: --sandbox is not supported by claude remote-control. The flag had no effect and was removed. To sandbox sessions, set sandbox.enabled to true in settings.
Error: --no-sandbox is not supported by claude remote-control. The flag had no effect and was removed. Remove it from the command.
```

**Yang harus dilakukan:**

* Hapus flag dari perintah, termasuk di skrip atau definisi layanan yang memulai server untuk Anda, lalu jalankan lagi
* Untuk menjalankan sesi yang dimulai server dalam sandbox, aktifkan [sandboxing](/docs/id/sandboxing) dengan mengatur [`sandbox.enabled`](/docs/id/settings-reference#sandbox-enabled) ke `true` dalam [file pengaturan](/docs/id/settings#where-settings-live)

Kedua flag dihapus dari `claude remote-control` di v2.1.300, sehingga perintah yang ditulis untuk versi sebelumnya masih dapat memuat salah satunya.

<h3 id="claude-import-is-not-yet-available-in-this-build">
  claude import belum tersedia dalam build ini
</h3>

Anda menjalankan [`claude import`](/docs/id/cli-reference#cli-commands), dan Claude Code mendapati alur impor dimatikan, sehingga perintah keluar dengan kode 1 alih-alih memulai impor. Sebelum v2.1.222, build dengan alur impor yang dimatikan memperlakukan `import` sebagai prompt dan memulai sesi interaktif alih-alih mencetak pesan ini.

```text theme={null}
`claude import` is not yet available in this build. Run `claude` and use /mcp or edit ~/.claude/settings.json directly.
```

Claude Code mengaktifkan `claude import` melalui feature flag yang diambilnya dari Anthropic dan di-cache di disk. Pesan ini berarti nilai yang di-cache dimatikan. Penyebabnya biasanya salah satu dari berikut:

* Anda belum memulai sesi sejak instalasi, sehingga Claude Code belum mengambil flag tersebut. `claude import` pertama dapat mencetak pesan ini bahkan ketika fitur tersebut tersedia untuk Anda.
* Anda menggunakan Claude Code melalui Amazon Bedrock, Agent Platform dari Google Cloud, Microsoft Foundry, atau Claude Platform on AWS, atau melalui [Claude apps gateway](/docs/id/claude-apps-gateway#availability-and-limitations). Claude Code tidak mengambil feature flag dalam sesi ini, sehingga `claude import` tetap tidak tersedia.
* Anda mengatur `DISABLE_TELEMETRY`, `DO_NOT_TRACK`, `DISABLE_GROWTHBOOK`, atau [`CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`](/docs/id/env-vars), yang mematikan pengambilan feature flag, sehingga `claude import` tetap tidak tersedia.

**Yang perlu dilakukan:**

* Pada instalasi baru, mulai `claude`, tunggu hingga sesi dimuat, keluar, dan jalankan `claude import` lagi
* Jika pengambilan feature flag tetap dimatikan, siapkan konfigurasi sendiri: tambahkan server MCP dengan [`claude mcp add`](/docs/id/mcp#installing-mcp-servers), dan buat [file `CLAUDE.md`](/docs/id/memory#how-claude-md-files-load), [skill dan perintah](/docs/id/skills#where-skills-live), serta [subagent](/docs/id/sub-agents#choose-the-subagent-scope) yang ingin Anda bawa. Pesan ini juga menyebutkan `~/.claude/settings.json`. Dari konfigurasi yang dibawa `claude import`, file tersebut hanya menyimpan [mode izin](/docs/id/settings-reference#permission-settings); Claude Code tidak membaca server MCP darinya.

<h3 id="could-not-read-claude-code-config">
  Tidak dapat membaca konfigurasi Claude Code
</h3>

Anda menjalankan [`claude import`](/docs/id/cli-reference#cli-commands) saat Claude Code tidak dapat mengurai `~/.claude.json`, file tempat Claude Code menyimpan login dan status per proyek Anda. Subperintah membaca file tersebut untuk memeriksa ketersediaan tetapi tidak menampilkan dialog pemulihan yang ditampilkan sesi interaktif, sehingga keluar dengan kode 1. Sebelum v2.1.222, `claude import` dengan file konfigurasi yang tidak dapat dibaca memulai sesi interaktif, yang dialog pemulihannya menangani file tersebut.

```text theme={null}
Could not read Claude Code config — run `claude` with no arguments to recover it.
```

**Yang perlu dilakukan:**

* Jalankan `claude` tanpa argumen. Claude Code mendeteksi file yang tidak valid dan menawarkan untuk meresetnya. Lalu jalankan `claude import` lagi.
* Untuk mempertahankan suntingan manual yang telah Anda buat, perbaiki sintaks JSON di `~/.claude.json` dengan editor, lalu jalankan ulang `claude import`

<h3 id="could-not-import-a-server-from-claude-desktop">
  Tidak dapat mengimpor server dari Claude Desktop
</h3>

Claude Code tidak dapat menambahkan salah satu server yang Anda pilih di `claude mcp add-from-claude-desktop`. Perintah tetap mengimpor server terpilih lainnya dan mencetak satu baris per server yang tidak dapat ditambahkannya. Sebelum v2.1.205, server pertama yang gagal menghentikan impor.

```text theme={null}
Could not import my server: Invalid name my server. Names can only contain letters, numbers, hyphens, and underscores.
```

Teks setelah nama server adalah alasannya. Yang paling umum adalah pemeriksaan nama: Claude Desktop mengizinkan karakter dalam nama server, seperti spasi dan titik, yang dibatasi `claude mcp` hanya pada huruf, angka, tanda hubung, dan garis bawah. Alasan lainnya termasuk konfigurasi server yang gagal validasi dan server yang diblokir oleh [kebijakan MCP](/docs/id/managed-mcp) organisasi Anda.

**Yang perlu dilakukan:**

* Ganti nama server di `claude_desktop_config.json` agar hanya menggunakan huruf, angka, tanda hubung, dan garis bawah, lalu jalankan `claude mcp add-from-claude-desktop` lagi
* Tambahkan server tersebut secara langsung dengan `claude mcp add` atau `claude mcp add-json` dengan nama yang valid. Lihat [Mengimpor server MCP dari Claude Desktop](/docs/id/mcp#import-mcp-servers-from-claude-desktop).

<h3 id="cannot-add-mcp-server-to-the-managed-scope">
  Tidak dapat menambahkan server MCP ke cakupan managed
</h3>

Anda menjalankan `claude mcp add` atau `claude mcp add-json` dengan `--scope managed`. Cakupan tersebut menampung server yang disediakan organisasi Anda melalui pengaturan terkelola [`managedMcpServers`](/docs/id/settings-reference#managedmcpservers). Claude Code hanya membacanya dari pengaturan terkelola, sehingga perintah tidak dapat menulis server ke cakupan tersebut.

```text theme={null}
Cannot add MCP server to scope: managed
```

**Yang perlu dilakukan:**

* Tambahkan server ke cakupan yang dapat Anda tulis: `local`, `user`, atau `project`. Tanpa `--scope`, perintah menggunakan `local`. Lihat [Cakupan instalasi MCP](/docs/id/mcp#mcp-installation-scopes)
* Untuk menyediakan server bagi setiap pengguna di organisasi Anda, tambahkan ke [`managedMcpServers`](/docs/id/settings-reference#managedmcpservers) di pengaturan terkelola yang Anda deploy

<h3 id="cannot-add-mcp-server-when-managed-settings-allow-only-plugin-servers">
  Tidak dapat menambahkan server MCP ketika pengaturan terkelola hanya mengizinkan server plugin
</h3>

Anda menjalankan `claude mcp add` atau `claude mcp add-json` sementara pengaturan terkelola organisasi Anda mengatur [`strictPluginOnlyCustomization`](/docs/id/settings-reference#strictpluginonlycustomization) ke `true` atau ke daftar yang mencakup `mcp`. Dengan pengaturan tersebut, Claude Code tidak memuat server MCP dari `~/.claude.json` atau `.mcp.json`, sehingga perintah keluar dengan kode 1 alih-alih menyimpan server yang tidak akan pernah dimuat:

```text theme={null}
Cannot add MCP server: your organization's managed settings allow only MCP servers that plugins provide. Install a plugin that provides this server, or ask your administrator to make it available.
```

`claude mcp add-from-claude-desktop` melaporkan setiap server yang Anda pilih sebagai tidak diimpor, dengan pesan ini sebagai alasannya. [`/import`](/docs/id/commands#all-commands) melaporkan pesan ini untuk setiap server MCP yang coba ditambahkannya dan tetap mengimpor item lain yang ditemukannya.

Sebelum v2.1.284, perintah ini menyimpan server dan melaporkan keberhasilan, dan server tidak pernah dimuat.

**Yang perlu dilakukan:**

* Instal [plugin](/docs/id/plugins/install) yang menyediakan server tersebut
* Minta administrator Anda untuk mendistribusikan server dalam [plugin](/docs/id/plugins/org), atau menyediakannya melalui [`managedMcpServers`](/docs/id/settings-reference#managedmcpservers) jika server tersebut adalah server HTTP atau SSE jarak jauh

<h3 id="cant-read-mcp-json">
  Tidak dapat membaca .mcp.json
</h3>

Perintah yang membaca [`.mcp.json`](/docs/id/mcp#project-scope) proyek, seperti `claude mcp add` atau `claude mcp add-json` dengan `--scope project`, atau `claude mcp remove`, mendapati bahwa file di direktori Anda saat ini bukan file biasa atau berukuran lebih dari 2 MiB, sehingga perintah keluar dengan kesalahan ini alih-alih membaca file.

```text theme={null}
Can't read .mcp.json: it isn't a regular file or is larger than 2097152 bytes. Fix or remove it, then run the command again.
```

Sebelum v2.1.257, FIFO di `.mcp.json` membuat perintah menunggu selamanya tanpa output, dan symlink ke file perangkat seperti `/dev/zero` membuat memori bertambah hingga proses dihentikan.

**Yang perlu dilakukan:**

* Periksa apa yang ada di `.mcp.json` di direktori Anda saat ini. Ganti dengan file JSON biasa dalam [format cakupan proyek](/docs/id/mcp#project-scope), atau hapus, lalu jalankan perintah lagi.

<h3 id="mcp-server-was-not-saved-or-removed">
  Server MCP tidak disimpan atau dihapus
</h3>

Anda menjalankan `claude mcp add`, `claude mcp add-json`, atau `claude mcp remove` untuk server di [cakupan](/docs/id/mcp#mcp-installation-scopes) `user` atau `local`. Kedua cakupan disimpan di `~/.claude.json`, dan perubahan tidak ada di file tersebut ketika Claude Code membacanya kembali setelah menulis. Perintah keluar dengan kesalahan ini alih-alih baris keberhasilannya.

```text theme={null}
MCP server "example" was not saved to /home/user/.claude.json. If that file is read-only or protected by a sandbox, make it writable or run the command outside the sandbox, then add the server again.
```

Setelah penghapusan, pesan berbunyi `was not removed from` dan diakhiri dengan `then remove the server again`. Untuk server cakupan `local`, path diikuti oleh direktori proyek tempat entri tersebut berada, sebagai `(local scope for /path/to/project)`.

Sebelum v2.1.283, `claude mcp add`, `claude mcp add-json`, dan `claude mcp remove` melaporkan keberhasilan bahkan ketika perubahan tidak mencapai file.

**Yang perlu dilakukan:**

* Buat file yang disebutkan pesan dapat ditulis, atau jalankan perintah di luar sandbox, lalu jalankan perintah tambah atau hapus yang sama lagi.

<h3 id="mcp-server-may-not-have-been-saved-or-removed">
  Server MCP mungkin tidak disimpan atau dihapus
</h3>

Anda menjalankan `claude mcp add`, `claude mcp add-json`, atau `claude mcp remove` untuk server di [cakupan](/docs/id/mcp#mcp-installation-scopes) `user` atau `local`, dan Claude Code tidak dapat membaca kembali `~/.claude.json` untuk mengonfirmasi perubahan. Perubahan mungkin ada atau tidak ada di disk. Teks dalam tanda kurung adalah kesalahan dari pembacaan tersebut.

```text theme={null}
MCP server "example" may not have been saved: /home/user/.claude.json could not be read to confirm the change (EACCES: permission denied, open '/home/user/.claude.json'). Run `claude mcp get example` to check, then add the server again if it is missing.
```

Setelah penghapusan, pesan berbunyi `may not have been removed` dan diakhiri dengan `then remove the server again if it is still listed`.

Sebelum v2.1.283, perintah melaporkan keberhasilan bahkan ketika perubahan tidak dapat dikonfirmasi.

**Yang perlu dilakukan:**

* Jalankan `claude mcp get <name>` untuk memeriksa apakah perubahan ada di disk. Untuk server cakupan `local`, jalankan dari direktori proyek tempat server tersebut berada, karena cakupan lokal berlaku per proyek.
* Jika server tidak ada setelah penambahan, atau masih tercantum setelah penghapusan, jalankan perintah tambah atau hapus yang sama lagi.

<h3 id="anthropic-hosted-and-doesnt-support-local-oauth">
  Server di-host oleh Anthropic dan tidak mendukung OAuth lokal
</h3>

Anda memulai proses masuk untuk server MCP yang URL-nya menunjuk ke host konektor yang di-host Anthropic yang melakukan autentikasi melalui penyedia identitas pihak ketiga. Host ini mencakup `microsoft365.mcp.claude.com`, `gmail.mcp.claude.com`, dan `gcal.mcp.claude.com`. Claude Code menolak memulai alur OAuth lokalnya untuk host ini baik dari panel `/mcp` maupun `claude mcp login`, karena [proses masuknya hanya berfungsi melalui claude.ai](/docs/id/mcp#use-mcp-servers-from-claude-ai).

```text theme={null}
"gmail" is Anthropic-hosted and doesn't support local OAuth. Connect it via Settings → Connectors on claude.ai (requires `claude login`), then it'll be available here automatically.
```

**Yang perlu dilakukan:**

* Hapus entri Anda dengan `claude mcp remove <name>`, agar entri tersebut tidak menyembunyikan konektor claude.ai di URL yang sama
* Setelah menghapusnya, hubungkan layanan di [claude.ai/customize/connectors](https://claude.ai/customize/connectors), sambil masuk ke akun yang Anda gunakan di Claude Code. Setelah terhubung, [konektor muncul di Claude Code secara otomatis](/docs/id/mcp#use-mcp-servers-from-claude-ai) jika metode autentikasi aktif Anda adalah login langganan claude.ai

<h3 id="server-rejected-the-authorization-header-minted-by-the-configured-headershelper">
  Server menolak header Authorization yang dibuat oleh headersHelper yang dikonfigurasi
</h3>

Server MCP yang [`headersHelper`](/docs/id/mcp#use-dynamic-headers-for-custom-authentication)-nya menyediakan header `Authorization` menjawab koneksi dengan HTTP 401 atau 403, sehingga Claude Code melaporkan koneksi sebagai gagal. Karena helper menyediakan header `Authorization`, Claude Code [tidak melakukan fallback ke OAuth](/docs/id/mcp#authenticate-with-remote-mcp-servers) untuk server tersebut:

```text theme={null}
Server rejected the Authorization header minted by the configured headersHelper (HTTP 401). Check that the helper command returns a valid credential for this MCP endpoint — OAuth fallback is disabled when the helper supplies Authorization.
```

Claude Code menjalankan ulang helper pada setiap upaya koneksi, sehingga retry setelah penolakan sementara, seperti race rotasi token, dapat berhasil dengan kredensial baru.

**Yang perlu dilakukan:**

* Jalankan perintah `headersHelper` sendiri dengan cara yang sama seperti Claude Code menjalankannya: dari [direktori tempat Claude Code menjalankannya](/docs/id/mcp#where-the-helper-runs), dengan [environment variable yang diatur Claude Code untuknya](/docs/id/mcp#use-dynamic-headers-for-custom-authentication), dan tanpa [variabel kredensial yang dihapus Claude Code](/docs/id/mcp#which-variables-a-helper-can-read) untuk server dari `.mcp.json` proyek, plugin, atau file agent proyek. Periksa bahwa perintah tersebut mencetak nilai `Authorization` yang diterima endpoint server
* Setelah memperbaiki helper atau sumber kredensialnya, pilih server di `/mcp` dan pilih **Reconnect**

Sebelum v2.1.248, Claude Code menjalankan penemuan OAuth untuk server yang helper-nya menyediakan header `Authorization`. Penemuan tersebut dapat gagal dengan `Incompatible auth server: does not support dynamic client registration` alih-alih melaporkan kredensial yang ditolak.

<h3 id="mcp-permission-prompt-tool-not-found">
  Tool prompt izin MCP tidak ditemukan
</h3>

Tool yang Anda berikan ke [`--permission-prompt-tool`](/docs/id/cli-reference#cli-flags) tidak termasuk di antara tool MCP yang terhubung saat run pertama kali memerlukan keputusan izin, baik karena servernya tidak pernah terhubung atau karena tidak ada server terhubung yang menyediakan tool dengan nama tersebut. Claude Code tetap mengirimkan prompt Anda: run [non-interaktif](/docs/id/headless) keluar dengan kesalahan ini, dan exit code 1, pada panggilan tool pertama, sehingga tidak menghasilkan jawaban meskipun permintaan telah dibuat. Sebelum prompt pertama, Claude Code menunggu hingga timeout koneksi per server selama 30 detik yang diatur oleh [`MCP_TIMEOUT`](/docs/id/env-vars) agar server tersebut terhubung. Sebelum v2.1.206, startup tidak menunggu server selesai terhubung, sehingga server yang lambat dimulai tetapi sehat juga menghasilkan kesalahan ini.

```text theme={null}
Error: MCP tool mcp__permissions__approve (passed via --permission-prompt-tool) not found. Available MCP tools: none
```

Daftar setelah `Available MCP tools:` menyebutkan tool MCP yang terhubung.

**Yang perlu dilakukan:**

* Periksa bahwa server dimulai dan tetap terhubung: jalankan `claude mcp list` di direktori yang sama dan pastikan server tercantum sebagai terhubung
* Pastikan nama tool cocok dengan nama `mcp__<server>__<tool>` yang disediakan server
* Jika server memerlukan lebih dari 30 detik untuk dimulai, naikkan [`MCP_TIMEOUT`](/docs/id/env-vars)

<h3 id="oauth-callback-port-is-already-in-use">
  Port callback OAuth sudah digunakan
</h3>

Ketika Anda masuk ke server MCP jarak jauh dengan OAuth, Claude Code memulai listener lokal untuk menerima callback proses masuk. Jika port yang diperlukan listener tersebut dipegang oleh proses lain, proses masuk gagal dengan pesan ini. Hal ini sebagian besar terjadi dengan [port callback tetap](/docs/id/mcp#use-a-fixed-oauth-callback-port) yang diatur melalui variabel [`MCP_OAUTH_CALLBACK_PORT`](/docs/id/env-vars) atau `--callback-port`, karena tanpa itu Claude Code memilih port yang tersedia.

```text theme={null}
OAuth callback port <port> is already in use — another process may be holding it. Run `lsof -ti:<port> -sTCP:LISTEN` to find it.
```

Di Windows, perintah yang disarankan adalah `netstat -ano | findstr :<port>`.

**Yang perlu dilakukan:**

* Jalankan perintah dari pesan untuk menemukan proses yang memegang port, dan hentikan proses tersebut atau tunggu hingga selesai
* Jika program lain memerlukan port tersebut secara permanen, daftarkan URI redirect yang berbeda dengan server dan atur port-nya dengan `MCP_OAUTH_CALLBACK_PORT` atau `--callback-port`, mana pun yang Anda gunakan
* Lalu mulai proses masuk lagi, misalnya dengan memilih server di `/mcp`

<h3 id="no-available-ports-for-oauth-redirect">
  Tidak ada port yang tersedia untuk redirect OAuth
</h3>

Ketika Anda masuk ke server MCP jarak jauh dengan [OAuth](/docs/id/mcp#authenticate-with-remote-mcp-servers), Claude Code memulai listener lokal untuk menerima callback proses masuk. Proses masuk gagal dengan pesan ini ketika Claude Code tidak dapat mengikat port lokal untuknya. Sesuatu di mesin mencegahnya mendengarkan di `127.0.0.1`, misalnya perangkat lunak keamanan atau kebijakan sandbox yang menolak listener lokal.

```text theme={null}
No available ports for OAuth redirect
```

Sebelum v2.1.268, Claude Code tidak melakukan fallback ke port yang ditetapkan sistem operasi, sehingga pesan ini juga muncul ketika hanya port yang dipilih sendiri olehnya yang tidak dapat diikat. Hal itu dapat terjadi pada host Windows tempat Hyper-V mencadangkan rentang port yang mencakup port yang dipilih Claude Code.

**Yang perlu dilakukan:**

* Periksa apakah perangkat lunak keamanan atau kebijakan sandbox memblokir proses dari mendengarkan di `127.0.0.1`, dan izinkan Claude Code mengikat port lokal
* Lalu mulai proses masuk lagi, misalnya dengan memilih server di `/mcp`

<h3 id="security-review-fails-without-origin-head">
  /security-review gagal tanpa origin/HEAD
</h3>

[`/security-review`](/docs/id/commands#all-commands) membangun konteks review-nya dengan membuat diff branch Anda terhadap `origin/HEAD`, ref lokal yang mencatat branch mana yang menjadi default pada remote `origin` Anda. Ketika ref tersebut tidak ada, perintah git yang mengumpulkan diff gagal dan review berhenti sebelum dimulai.

```text theme={null}
Error: Shell command failed for pattern "!`git diff --name-only origin/HEAD...`": [stderr]
fatal: ambiguous argument 'origin/HEAD...': unknown revision or path not in the working tree.
Use '--' to separate paths from revisions, like this:
'git <command> [<revision>...] -- [<file>...]'
```

Pesan ini mungkin mengutip `git log` atau `git diff` yang berbeda. Git membuat `origin/HEAD` hanya ketika remote mengiklankan branch default dan refspec fetch Anda mencakupnya, yang dilakukan oleh `git clone` penuh dari remote yang memiliki commit. Ref tersebut tidak ada dalam pengaturan berikut:

* Checkout single-branch atau CI, yang melakukan fetch dengan refspec yang terlalu sempit
* Remote yang HEAD di sisi server-nya menunjuk ke branch yang tidak pernah di-push siapa pun
* Repositori tanpa remote `origin`, atau yang tidak pernah Anda fetch

Claude Code menampilkan error yang sama untuk skill apa pun yang [menyisipkan konteks dinamis](/docs/id/skills#when-an-injected-command-fails), dan perintah sisipan yang gagal membatalkan pemanggilan skill tersebut.

String serupa muncul sebelum perintah dijalankan sama sekali:

* `Shell command permission check failed for pattern "..."`: pemeriksaan izin perintah tidak mengizinkannya. [Pemeriksaan izin pada perintah sisipan](/docs/id/skills#permission-checks-on-injected-commands) menjelaskan hasil mana yang membatalkan di setiap mode izin dan cara menyetujui perintah sebelumnya dengan `allowed-tools`
* ``Skill <name> requires bash (`shell: bash` in frontmatter) but Git Bash was not found``: frontmatter skill menuntut bash pada mesin yang tidak memilikinya. Instal Git for Windows atau ubah frontmatter menjadi `shell: powershell`. Lihat [Cara perintah sisipan dijalankan](/docs/id/skills#how-injected-commands-run)
* `No shell command in <name> was run`: salah satu perintah `!` di file mengandung karakter kontrol mentah selain tab atau baris baru, sehingga tidak ada satu pun yang dijalankan. Lihat [cara menemukan dan menghapus karakter tersebut](#no-shell-command-was-run)

**Yang perlu dilakukan:**

* Buat ref dengan menyebutkan branch default remote Anda: `git remote set-head origin <default-branch>`. Ini berfungsi setiap kali ref pelacakan lokal `origin/<default-branch>` ada. Jika tidak ada, seperti pada clone single-branch, fetch branch tersebut terlebih dahulu: jalankan `git remote set-branches --add origin <branch>`, lalu `git fetch origin`, lalu jalankan ulang perintah set-head. Jalankan ulang `/security-review`.
* Jika Anda lebih memilih tidak menyebutkan branch, jalankan `git fetch origin` lalu `git remote set-head origin --auto`, yang menanyakan kepada remote branch mana yang menjadi default-nya. Perintah ini gagal dengan `error: Cannot determine remote HEAD` ketika remote tidak mengiklankan branch default, karena remote kosong atau HEAD-nya menunjuk ke branch yang tidak pernah di-push siapa pun; sebutkan branch secara eksplisit sebagai gantinya. Perintah ini gagal dengan `error: Not a valid ref` ketika clone Anda tidak melakukan fetch branch tersebut; perluas refspec seperti di atas terlebih dahulu.
* Jika repositori tidak memiliki remote, tambahkan dengan `git remote add origin <url>` dan lakukan fetch sebelum membuat ref. Jika remote kosong, push branch Anda terlebih dahulu dengan `git push -u origin HEAD` dan sebutkan branch tersebut dalam perintah set-head; `origin/HEAD` kemudian menunjuk ke branch yang baru saja Anda push, sehingga `/security-review` melihat diff kosong hingga branch menyimpang darinya.

<h3 id="no-shell-command-was-run">
  No shell command in a skill or command was run
</h3>

Salah satu [perintah konteks dinamis](/docs/id/skills#inject-dynamic-context) `` !`<command>` `` dalam file skill atau perintah kustom mengandung karakter kontrol mentah selain tab atau baris baru. Claude Code menolak seluruh pemanggilan sebelum perintah mana pun di file tersebut dijalankan.

Pesan menyebutkan tool shell yang seharusnya menjalankan perintah-perintah tersebut, Bash atau PowerShell, dan diakhiri dengan perintah yang ditolak. Setiap karakter tersebut diganti dengan `�` sehingga Anda dapat melihat lokasinya:

```text theme={null}
No shell command in /my-skill was run, because the Bash tool does not accept one of them: command contains control characters that would be hidden in the approval dialog. Unprintable characters are shown as � below: remove them from the skill or command file, or from the arguments or options substituted into it.
build.sh --target�dist
```

**Yang harus dilakukan:**

* Temukan setiap `�` dalam perintah yang dikutip di akhir pesan. Hapus karakter yang diwakilinya dari file skill atau perintah, atau dari argumen atau opsi yang disubstitusikan ke dalam file.

<h3 id="input-must-be-provided-when-using-print">
  Input harus diberikan saat menggunakan `--print`
</h3>

`claude` tanpa argumen memerlukan stdout berupa terminal untuk memulai UI interaktif. Ketika stdout dialihkan, atau konsol bukan terminal sungguhan, seperti PowerShell ISE dan beberapa panel output IDE, `claude` berjalan secara [non-interaktif](/docs/id/headless). Itu adalah mode yang sama dengan `claude -p`, yang memerlukan prompt, sehingga pesan menyebutkan `--print` bahkan ketika Anda tidak memberikan flag tersebut. Memberikan `-p`/`--print` tanpa prompt dan tanpa apa pun yang di-pipe ke stdin menghasilkan kesalahan yang sama di mana pun.

```text theme={null}
Error: Input must be provided either through stdin or as a prompt argument when using --print
```

**Yang perlu dilakukan:**

* Untuk penggunaan interaktif, jalankan `claude` di terminal sungguhan: Windows Terminal atau konsol PowerShell alih-alih ISE, dan terminal terintegrasi IDE Anda alih-alih panel output
* Untuk penggunaan sekali jalan, berikan prompt: `claude -p "your question"`, atau pipe dengan `echo "your question" | claude -p`

<h3 id="claude-code-cant-read-the-keyboard-here">
  Claude Code tidak dapat membaca keyboard di sini
</h3>

Anda menjalankan `claude` tanpa [`-p`](/docs/id/headless), yang memulai [sesi interaktif](/docs/id/interactive-mode), tetapi input standarnya bukan terminal. Sesuatu melakukan pipe atau mengalihkannya, atau program yang meluncurkan `claude` menyediakan aliran inputnya sendiri.

Sesi interaktif memerlukan terminal untuk membaca ketikan Anda, dan apa yang dilakukan Claude Code tanpa terminal bergantung pada platform Anda:

* **Windows**: Claude Code mencetak pesan ke stderr dan keluar dengan kode 1 alih-alih memulai antarmuka
* **macOS dan Linux**: Claude Code membaca ketikan Anda dari `/dev/tty` dan memulai sesi, dengan teks yang di-pipe sebagai prompt pertama Anda. Anda melihat pesan ini ketika `/dev/tty` tidak dapat dibuka, dan baris pertamanya menyebutkan `/dev/tty` sebagai pengganti kata-kata untuk Windows.

Di Windows, pesannya berbunyi:

```text theme={null}
Claude Code can't read the keyboard here: stdin is not a terminal (it is piped, redirected, or supplied by the program that launched claude), and on Windows it can't fall back to the console for input yet.
Run claude directly in Windows Terminal, PowerShell, or Command Prompt, without piping or redirecting its input.
To send text as a prompt and print the reply instead, add -p; it also works with --continue and --resume <session-id> (for example: type notes.md | claude -p --continue).
```

**Yang perlu dilakukan:**

* Untuk bekerja secara interaktif, jalankan `claude` langsung di terminal, tanpa melakukan pipe atau mengalihkan inputnya
* Untuk mendapatkan balasan tanpa antarmuka interaktif, misalnya dari skrip, tambahkan `-p` dan berikan prompt sebagai argumen atau melalui stdin, seperti `claude -p "your question"` atau `echo "your question" | claude -p`. Hal yang sama berlaku dengan `--continue` dan `--resume <session-id>`.

Sebelum v2.1.287, Claude Code memulai antarmuka alih-alih mencetak pesan ini, lalu tidak menampilkan apa pun di layar atau gagal dengan kesalahan yang berisi `Raw mode is not supported`.

Jika Anda melihat `Raw mode is not supported` selama `claude install`, lihat [`Raw mode is not supported` selama instalasi](/docs/id/troubleshoot-install#raw-mode-is-not-supported-during-install).

<h3 id="input-contained-only-whitespace">
  Input hanya berisi whitespace
</h3>

Dalam [mode non-interaktif](/docs/id/headless), Claude Code menolak prompt yang seluruhnya terdiri dari spasi, tab, atau baris baru alih-alih mengirimkannya, karena API menolak pesan tanpa teks yang terlihat. Pesan yang Anda lihat bergantung pada asal prompt kosong tersebut:

* **Argumen prompt atau stdin yang di-pipe untuk `claude -p`**: `claude` keluar dengan `Error: Input contained only whitespace. Provide a prompt with text through stdin or as a prompt argument when using --print`
* **Pesan yang dikirimkan ke sesi `--input-format stream-json` atau [Agent SDK](/docs/id/agent-sdk/overview) yang sedang berjalan**: Claude Code mengakhiri giliran tanpa memanggil model dan sesi tetap dapat digunakan. Penolakan tiba sebagai pesan informasi dan sebagai teks hasil giliran: `Blank prompt — the message was only whitespace, so nothing was sent to the model.`

Sebelum v2.1.229, Claude Code mengirimkan pesan yang hanya berisi whitespace ke API, yang menolak permintaan dengan kesalahan 400.

**Yang perlu dilakukan:**

* Sertakan teks yang terlihat dalam prompt. Jika skrip membangun prompt dari variabel atau file, periksa bahwa sumbernya tidak kosong sebelum memanggil Claude Code.

<h3 id="stream-json-input-carried-over-256m-characters-with-no-newline">
  Input stream-json membawa lebih dari 256M karakter tanpa baris baru
</h3>

Program Anda mengirimkan lebih dari 268.435.456 karakter di stdin tanpa baris baru ke run `claude -p --input-format stream-json`, sehingga Claude Code mencetak kesalahan ini ke stderr dan keluar dengan kode 1 alih-alih menampung lebih banyak input. Pesan menyatakan batas tersebut sebagai `256M`. Sebelum v2.1.257, Claude Code menampung input semacam itu tanpa batas, membuat memori bertambah hingga proses crash atau dihentikan.

```text theme={null}
Error: stream-json input carried over 256M characters with no newline. Each stream-json message must be a single newline-terminated JSON line: either the producer is not newline-terminating its messages, or one message exceeded this budget.
```

Input sepanjang ini tanpa baris baru biasanya berarti produsernya sama sekali bukan produsen stream-json, seperti file biner atau output log biasa yang tidak sengaja di-pipe. Satu pesan yang melebihi batas gagal dalam pemeriksaan yang sama.

**Yang perlu dilakukan:**

* Periksa apa yang di-pipe ke stdin. Dengan [`--input-format stream-json`](/docs/id/cli-reference#cli-flags), setiap pesan harus berupa satu baris JSON yang diakhiri baris baru
* Untuk mengirimkan teks biasa, hapus `--input-format stream-json`; `claude -p` membaca prompt teks biasa dari stdin secara default

<h3 id="unknown-command">
  Unknown command
</h3>

Dalam sesi terminal interaktif, Anda mengirimkan nama `/` yang tidak cocok dengan perintah apa pun dalam sesi ini, sehingga Claude Code melaporkan nama tersebut alih-alih menjalankan apa pun:

```text theme={null}
Unknown command: /hepl. Did you mean /help?
```

Claude Code menyarankan nama perintah atau alias terdekat yang dicantumkan menu dalam sesi ini. Ketika tidak ada yang mendekati, pesan berakhir setelah nama tersebut. Penyebabnya biasanya salah satu dari berikut:

* Salah ketik, seperti `/hepl` untuk `/help`. [Cara menu perintah mencocokkan apa yang Anda ketik](/docs/id/commands#how-the-command-menu-matches-what-you-type) membahas cara memilih kecocokan terdekat sebelum Anda mengirimkan
* Perintah yang ada tetapi tidak tersedia dalam sesi ini karena suatu persyaratan tidak terpenuhi, seperti platform, paket, atau metode autentikasi Anda. Entri pemecahan masalah untuk [`/web-setup`](/docs/id/web-quickstart#web-setup-shows-no-commands-match-or-unknown-command) dan [`/schedule`](/docs/id/routines#schedule-returns-unknown-command) menjelaskan dua kasus umum. Beberapa perintah menjawab dengan pesannya sendiri ketika kebijakan organisasi Anda menonaktifkannya, seperti [`Cloud sessions are disabled by your organization's policy`](#cloud-sessions-are-disabled-by-your-organizations-policy)
* Perintah dari [plugin](/docs/id/plugins/overview) atau [server MCP](/docs/id/mcp#use-mcp-prompts-as-commands) yang tidak diinstal atau tidak terhubung dalam sesi ini

Claude Code menjawab nama `/` yang tidak cocok dengan cara ini hanya dalam sesi terminal interaktif. Dalam setiap sesi lainnya, Claude Code mengirimkan prompt ke Claude sebagai pesan biasa, dengan catatan bahwa perintah tidak dijalankan dan daftar perintah yang dapat dijalankan Claude dalam sesi tersebut. Sesi tersebut meliputi:

* Run `-p`
* Aplikasi [Agent SDK](/docs/id/agent-sdk/overview)
* Tab Code di [aplikasi Desktop](/docs/id/desktop)
* Panel chat [ekstensi VS Code](/docs/id/vs-code)
* [Sesi cloud](/docs/id/claude-code-on-the-web) dan [routine](/docs/id/routines)

Untuk perintah bawaan yang tidak dapat berjalan di salah satu sesi tersebut, Claude Code tetap menjawab bahwa perintah tidak tersedia alih-alih mengirimkannya ke Claude. Sebelum v2.1.274, hanya sesi cloud dan routine yang mengirimkan nama yang tidak cocok ke Claude. Sebelum v2.1.273, sesi tersebut juga menjawab `Unknown command`.

Claude Code tidak memperlakukan setiap prompt yang diawali dengan `/` sebagai perintah. Claude Code mengirimkan prompt ke Claude sebagai pesan biasa ketika kata pertama setelah `/` diawali dengan tanda baca, seperti `/--` yang membuka komentar dokumentasi Lean, atau merupakan path seperti `/var/log/syslog`.

Sebelum v2.1.236, jika Anda menekan `Enter` saat menu perintah mencantumkan kecocokan terdekat untuk nama yang Anda ketik, Claude Code menjalankan kecocokan tersebut, sehingga salah ketik seperti `/hepl` menjalankan `/help` alih-alih menghasilkan pesan ini.

**Yang perlu dilakukan:**

* Jalankan nama yang disarankan, atau ketik `/` diikuti sebagian nama untuk melihat apa yang tersedia dalam sesi ini
* Jika Claude Code melaporkan perintah yang terdokumentasi sebagai tidak dikenal, periksa barisnya di [referensi perintah](/docs/id/commands) untuk persyaratan yang disebutkannya

<h3 id="diff-is-too-large-for-ultrareview">
  Diff terlalu besar untuk ultrareview
</h3>

Diff antara branch Anda dan branch dasar, termasuk perubahan yang belum di-commit dan yang di-stage, melebihi batas ukuran untuk [ultrareview](/docs/id/ultrareview), sehingga `/code-review ultra` dan subperintah `claude ultrareview` menolak review sebelum sesi cloud dimulai. Review yang ditolak tidak menggunakan run gratis dan tidak menagih kredit penggunaan. Pesan menyebutkan batas yang berlaku, ukuran diff Anda, dan file yang paling banyak menyumbang baris yang diubah. Sebelum v2.1.216, pesan hanya menampilkan statistik diff mentah.

```text theme={null}
Diff is too large for ultrareview: 812 files, 96,410 lines changed (limits: 500 files, 8,000 lines). Largest files: package-lock.json (41,904 lines), dist/bundle.js (18,210 lines), src/generated/api.ts (9,876 lines). Pass a closer base branch (`/code-review ultra <branch>`) to narrow the scope, or split the change.
```

Me-review pull request menerapkan batas yang sama; bentuk pesan tersebut diawali dengan `PR #<N> is too large for ultrareview` dan menyebutkan jumlah file dan baris PR.

**Yang perlu dilakukan:**

* Berikan branch dasar yang lebih dekat dengan pekerjaan Anda, seperti `/code-review ultra develop`, sehingga review hanya mencakup diff terhadap branch tersebut
* Pecah perubahan menjadi branch yang lebih kecil dan review masing-masing. File yang disebutkan pesan menyumbang baris yang diubah paling banyak, jadi mulailah dengan memindahkannya ke branch tersendiri.

<h3 id="could-not-find-merge-base-with-the-base-branch">
  Tidak dapat menemukan merge-base dengan branch dasar
</h3>

`/code-review ultra` dan subperintah `claude ultrareview` me-review diff antara branch Anda dan branch dasar, yang memerlukan commit yang dimiliki bersama oleh keduanya. Ketika `git merge-base` tidak menemukannya, Claude Code menolak review sebelum sesi cloud dimulai. Pada clone yang dapat diverifikasi Claude Code sebagai lengkap, dengan setidaknya satu branch, Claude Code melakukan fallback ke [me-review setiap file yang dilacak](/docs/id/ultrareview#diff-limits-and-fallbacks) alih-alih menolak. Anda melihat penolakan ini ketika branch dasar sama sekali tidak dapat ditemukan, ketika Claude Code tidak dapat memverifikasi bahwa clone Anda lengkap, atau pada repositori langka tempat diff seluruh tree tidak dimungkinkan, seperti format objek SHA-256.

```text theme={null}
Could not find merge-base with main. Pass the base branch explicitly (e.g. `/code-review ultra develop`) or make sure you're in a git repo with a main branch.
```

Petunjuk setelah kalimat pertama bergantung pada apa yang diamati Claude Code:

* **Anda tidak memberikan branch dasar**: Claude Code membandingkan dengan branch default repositori dan menyarankan untuk memberikan branch dasar Anda secara eksplisit, seperti pada contoh di atas
* **Anda memberikan branch dasar yang sudah ada di clone Anda**: petunjuknya berbunyi ``Make sure <branch> exists locally or on origin (try `git fetch origin <branch>`)``
* **Anda meneruskan base branch yang tidak ada di clone Anda**: Claude Code melakukan fetch dari origin sebelum membandingkan. Petunjuk berbunyi ``<branch> was fetched from origin but shares no history with HEAD. If another branch is your real base, pass it explicitly (`/code-review ultra <branch>`)``; ketika Claude Code tidak dapat mengetahui apakah clone Anda shallow, ia menyarankan `git fetch --unshallow origin` sebagai gantinya. Sebelum v2.1.221, petunjuk menyarankan `git fetch --unshallow origin` untuk setiap base branch yang di-fetch, dan pada clone yang lengkap perintah tersebut gagal dengan `fatal: --unshallow on a complete repository does not make sense`.

**Yang perlu dilakukan:**

* Jika branch lain adalah branch dasar Anda yang sebenarnya, berikan secara eksplisit: `/code-review ultra <branch>`
* Jika clone Anda mungkin tidak memiliki riwayat lengkap, jalankan `git fetch --unshallow origin` dan jalankan ulang review

<h3 id="your-checkout-has-no-branches">
  Checkout Anda tidak memiliki branch
</h3>

Checkout dapat memiliki commit tetapi tidak memiliki branch: jika Anda menjalankan `git init` diikuti dengan `git fetch <url>` dan `git checkout FETCH_HEAD`, Anda mendapatkan HEAD terlepas tanpa ref. Claude Code mengemas repositori Anda sebagai git bundle untuk mengunggahnya untuk [ultrareview](/docs/id/ultrareview), dan tidak dapat mem-bundle repositori yang tidak memiliki branch atau ref lain, sehingga `/code-review ultra` dan subperintah `claude ultrareview` menolak review sebelum sesi cloud dimulai.

```text theme={null}
Your checkout has no branches (detached HEAD only), which cloud review can't bundle. Create one first — `git checkout -b <name>` — then rerun /code-review ultra.
```

Sebelum v2.1.221, Claude Code mencoba me-review setiap file yang dilacak dalam checkout ini, dan unggahan gagal.

**Yang perlu dilakukan:**

* Buat branch pada commit Anda saat ini dengan `git checkout -b <name>`, lalu jalankan ulang review

<h3 id="no-github-account-is-connected-to-your-claude-account">
  Tidak ada akun GitHub yang terhubung ke akun Claude Anda
</h3>

Anda menjalankan `/code-review ultra <PR#>` atau `claude ultrareview <PR#>`, dan sebelum membuat sesi cloud, Claude Code menanyakan kepada server apakah [akun GitHub yang terhubung ke akun Claude Anda](/docs/id/ultrareview#review-a-pull-request) dapat menjangkau repositori PR. Tidak ada akun yang terhubung, atau koneksinya kedaluwarsa, sehingga clone di cloud akan gagal dan Claude Code menolak peluncuran. Claude Code tidak menggunakan run gratis atau menagih kredit penggunaan untuk peluncuran yang ditolak.

```text theme={null}
Ultrareview clones <owner>/<repo> in the cloud with the GitHub account connected to your Claude account, and none is connected (or the connection expired). To fix: run /web-setup to reuse your GitHub CLI login, or connect an account at https://claude.ai/connect-github — then re-run /code-review ultra 1234 (allow a minute after connecting).
```

Ketika [`/web-setup`](/docs/id/web-quickstart#connect-from-your-terminal) tidak tersedia dalam sesi Anda, pesan hanya menyebutkan tautan claude.ai.

**Yang perlu dilakukan:**

* Jalankan `/web-setup` untuk menghubungkan login GitHub CLI Anda ke akun Claude Anda, atau hubungkan akun di [claude.ai/connect-github](https://claude.ai/connect-github)
* Jalankan ulang review satu menit setelah menghubungkan

Sebelum v2.1.248, Claude Code tidak memeriksa hal ini sebelum peluncuran.

<h3 id="your-connected-github-account-cant-see-the-repository">
  Akun GitHub yang terhubung tidak dapat melihat repositori
</h3>

Anda menjalankan `/code-review ultra <PR#>` atau `claude ultrareview <PR#>`, dan [akun GitHub yang terhubung ke akun Claude Anda](/docs/id/ultrareview#review-a-pull-request) tidak dapat membaca repositori PR, sehingga clone di cloud akan gagal dan Claude Code menolak peluncuran. Claude Code tidak menggunakan run gratis atau menagih kredit penggunaan untuk peluncuran yang ditolak.

```text theme={null}
Your connected GitHub account can't see <owner>/<repo> — usually the Claude GitHub app isn't installed on <owner> or wasn't granted this repo (web-connected accounts need it for private repos), or a different GitHub account is connected. To fix: run /web-setup to reuse your GitHub CLI login, or install the app at https://github.com/apps/claude/installations/new — then re-run /code-review ultra 1234.
```

Ketika [`/web-setup`](/docs/id/web-quickstart#connect-from-your-terminal) tidak tersedia dalam sesi Anda, pesan hanya menyebutkan instalasi aplikasi.

**Yang perlu dilakukan:**

* Jika CLI `gh` lokal Anda dapat membaca repositori, jalankan `/web-setup` untuk menghubungkan login tersebut ke akun Claude Anda
* Jalankan ulang review setelah perubahan

Sebelum v2.1.248, Claude Code tidak memeriksa hal ini sebelum peluncuran.

<h3 id="the-github-app-preflight-failed-transiently">
  Preflight GitHub App gagal sementara
</h3>

Anda memulai [sesi cloud](/docs/id/claude-code-on-the-web) dari repositori lokal, dan dua langkah gagal bersamaan. Claude Code tidak dapat mem-build atau mengunggah bundle repositori Anda. Sebelum pengunggahan, Claude Code memeriksa apakah layanan cloud dapat melakukan clone repositori dari GitHub, dan alih-alih jawaban pasti, pemeriksaan tersebut berakhir dengan kesalahan yang dapat diatasi dengan retry, seperti kesalahan jaringan, timeout, atau kesalahan server sementara. Pesan lengkap diawali dengan apa yang menghentikan bundle, misalnya `Could not upload repo bundle (<error>)`, dan diakhiri dengan kalimat preflight:

```text theme={null}
Could not upload repo bundle (<error>). The GitHub App preflight failed transiently (network or service hiccup) — retry in a moment to start from GitHub instead
```

**Yang perlu dilakukan:**

* Jalankan ulang perintah setelah beberapa saat. Ketika pemeriksaan GitHub berhasil, Claude Code dapat memulai sesi dari clone GitHub, sehingga unggahan yang gagal tidak lagi memblokir peluncuran
* Jika retry terus gagal, awal pesan menyebutkan apa yang menghentikan unggahan. Ketika penyebab tersebut dapat Anda perbaiki, perbaiki agar sesi dapat dimulai dari repositori lokal Anda

Sebelum v2.1.251, Claude Code mengakhiri pesan dengan `Please set up GitHub on https://claude.ai/code` bahkan ketika pemeriksaan GitHub hanya gagal sementara, dan saran penyiapan tidak dapat mengatasi kegagalan sementara.

<h3 id="the-repository-upload-cant-follow-a-git-setting">
  Unggahan repositori tidak dapat mengikuti pengaturan git
</h3>

Anda memulai [sesi cloud yang mengunggah repositori lokal Anda](/docs/id/claude-code-on-the-web#send-local-repositories-without-github), atau [ultrareview](/docs/id/ultrareview) dari suatu branch, dan unggahan tidak dapat mengikuti salah satu pengaturan git yang menentukan aturan atribut mana yang berlaku untuk file Anda. Jika unggahan tetap dilanjutkan dan melewatkan suatu aturan, file yang diubah git sebelum menyimpannya, seperti file yang dienkripsi oleh clean filter, dapat sampai ke cloud dalam keadaan seperti di disk. Claude Code menolak unggahan, dan tidak ada yang diunggah:

```text theme={null}
Not uploading this working tree: core.ignoreCase (which decides whether .gitattributes patterns match file names regardless of letter case) is set in <file>, and the upload cannot follow that setting, so a file git would change before storing it (to encrypt it, for example) could be uploaded as it is on disk. Move the core.ignoreCase line into this repository’s .git/config or directly into your ~/.gitconfig, then retry.
```

Pesan menyebutkan pengaturan dan tempat pengaturan tersebut diatur, dan diakhiri dengan perbaikan untuk kasus yang Anda alami. Penolakan yang sama muncul untuk `core.attributesFile` dan `attr.tree`, masing-masing dengan perbaikannya sendiri.

Pesan dapat menyebutkan file konfigurasi yang ditarik konfigurasi git Anda melalui direktif `include` atau `includeIf`, bahkan ketika kondisi direktif tersebut tidak berlaku untuk repositori ini.

**Yang perlu dilakukan:**

* Terapkan perbaikan pada kalimat terakhir pesan

<h3 id="github-isnt-connected-to-your-claude-account">
  GitHub tidak terhubung ke akun Claude Anda
</h3>

Anda memulai [sesi cloud](/docs/id/claude-code-on-the-web) dari repositori lokal Anda, misalnya dengan `/autofix-pr`. Tidak ada akun GitHub yang terhubung ke akun Claude Anda, atau koneksinya kedaluwarsa, sehingga Claude Code menolak peluncuran:

```text theme={null}
GitHub isn't connected to your Claude account, so this repository can't be cloned in the cloud. Run /web-setup to connect with your GitHub CLI login, or connect on the web at https://claude.ai/connect-github
```

Ketika Anda membuat routine dengan [`/schedule`](/docs/id/routines), pesan yang sama muncul sebagai catatan penyiapan yang menyebutkan repositori; catatan tersebut tidak memblokir pembuatan routine.

**Yang perlu dilakukan:**

* Jalankan `/web-setup` untuk menghubungkan login GitHub CLI Anda ke akun Claude Anda, atau hubungkan akun di [claude.ai/connect-github](https://claude.ai/connect-github). Lihat [Opsi autentikasi GitHub](/docs/id/claude-code-on-the-web#github-authentication-options) untuk perbedaan keduanya.
* Jalankan ulang perintah satu menit setelah menghubungkan

Sebelum v2.1.268, Claude Code melaporkan hal ini sebagai kegagalan sementara pemeriksaan Claude GitHub App dan menyarankan untuk mencoba ulang atau menginstal aplikasi; tidak satu pun dari keduanya menghubungkan akun GitHub.

<h3 id="a-github-organization-policy-is-blocking-claude">
  Kebijakan organisasi GitHub memblokir Claude
</h3>

Anda menjalankan perintah di prompt Claude Code yang memulai sesi cloud, seperti [`/autofix-pr`](/docs/id/claude-code-on-the-web#auto-fix-pull-requests). Sebelum membuat sesi, Claude Code memeriksa akses Claude ke repositori di GitHub, dan GitHub menolak karena organisasi GitHub Anda memiliki kebijakan yang memblokir Claude. Claude Code berhenti di situ dan menampilkan pesan yang menyebutkan kebijakan tersebut.

Jika yang memblokir akses adalah IP allow list, pesannya berbunyi:

```text theme={null}
Your GitHub organization has an IP allowlist that is blocking Claude. Add Claude's IP ranges to your GitHub allowlist.
```

Jika yang memblokirnya adalah single sign-on, pesannya berbunyi:

```text theme={null}
Your GitHub organization requires single sign-on. Disconnect and reconnect GitHub on the Connectors page in Claude on the web, click Authorize next to your organization when GitHub asks, then try again.
```

Jika yang memblokirnya adalah kebijakan Conditional Access Microsoft Entra ID, pesannya berbunyi:

```text theme={null}
Your GitHub organization's identity provider (Microsoft Entra ID) has a Conditional Access policy that is blocking Claude. Ask your GitHub Enterprise or Entra ID admin to allow Claude in that policy.
```

**Yang perlu dilakukan:**

* **IP allow list**: minta pemilik organisasi atau enterprise GitHub Anda untuk mengizinkan alamat IP keluar Anthropic. Lihat [Allow list dan firewall GitHub](/docs/id/network-config#github-allow-lists-and-firewalls) untuk alamat dan pengaturan GitHub yang perlu diubah.
* **Single sign-on**: putuskan koneksi GitHub di [claude.ai/customize/connectors](https://claude.ai/customize/connectors), lalu hubungkan kembali. Saat GitHub meminta, klik **Authorize** di samping organisasi Anda agar koneksi baru diotorisasi untuk single sign-on-nya.
* **Kebijakan Conditional Access**: minta admin GitHub Enterprise atau Microsoft Entra ID Anda untuk mengizinkan Claude dalam kebijakan tersebut
* Setelah perubahan, jalankan perintah itu lagi

<h3 id="single-sign-on-authorization-needed">
  Otorisasi single sign-on diperlukan
</h3>

Anda menjalankan [`/install-github-app`](/docs/id/github-actions#quick-setup) dan memilih repositori yang organisasinya menerapkan SAML single sign-on. Sebelum penyiapan, Claude Code memeriksa akses Anda ke repositori dengan GitHub CLI, dan GitHub menolak pemeriksaan tersebut karena token `gh` Anda belum diotorisasi untuk organisasi tersebut. Wizard menampilkan peringatan beserta langkah-langkah untuk mengotorisasi:

```text theme={null}
Single sign-on authorization needed
<owner>/<repo> belongs to an organization that enforces SAML single sign-on, and your GitHub CLI token isn't authorized for it yet.
```

**Yang perlu dilakukan:**

* Otorisasi ulang login GitHub CLI Anda dengan scope `repo` dan `workflow` dengan menjalankan `gh auth refresh -h github.com -s repo,workflow`, lalu otorisasi organisasi saat GitHub meminta single sign-on
* Jika Anda mengautentikasi dengan personal access token di `GH_TOKEN`, buka [github.com/settings/tokens](https://github.com/settings/tokens), pilih **Configure SSO** pada token tersebut, lalu otorisasi organisasi
* Jalankan `/install-github-app` lagi

Sebelum v2.1.273, Claude Code menampilkan peringatan `Admin permissions required` untuk kondisi ini.

<h3 id="failed-to-resume-the-conversation">
  Gagal melanjutkan percakapan
</h3>

Claude Code tidak dapat membaca atau memproses transkrip tersimpan untuk sesi yang Anda pilih dari [pemilih `claude --resume`](/docs/id/sessions#use-the-session-picker), sehingga ia mengakhiri proses alih-alih melanjutkan dalam keadaan termuat sebagian. Pesan tersebut menyertakan perintah untuk mencoba ulang:

```text theme={null}
Failed to resume the conversation.
Run claude --resume <session-id> to retry, or claude to start a new session.
```

Claude Code keluar dengan kode 1 setelah menampilkan pesan tersebut. Pemilih `/resume` di dalam sesi yang sedang berjalan melaporkan `Failed to resume conversation` di dalam percakapan, dan sesi Anda saat ini tetap berjalan. Sebelum v2.1.216, kegagalan melanjutkan dari pemilih `claude --resume` tetap berada di spinner `Resuming conversation…` tanpa batas waktu alih-alih menampilkan pesan ini.

**Yang perlu dilakukan:**

* Jalankan `claude --resume <session-id>` dengan ID sesi dari pesan tersebut untuk mencoba ulang
* Pada versi sebelum v2.1.285, jika percobaan ulang gagal dengan cara yang sama, jalankan `claude update` lalu lanjutkan lagi. Versi-versi tersebut gagal melanjutkan ketika transkrip tersimpan berisi entri yang tidak dapat dibacanya.
* Jika percobaan ulang gagal lagi, jalankan `claude` untuk memulai sesi baru

<h3 id="no-conversation-found-with-the-session-id">
  Tidak ada percakapan yang ditemukan dengan ID sesi
</h3>

Anda meneruskan ID sesi ke `claude --resume <session-id>` dan tidak ada transkrip tersimpan yang cocok dengannya:

```text theme={null}
No conversation found with session ID: <session-id>
```

Claude Code keluar dengan kode 1 setelah menampilkan pesan tersebut. Claude Code [mencari ID tersebut di proyek saat ini terlebih dahulu, lalu di setiap proyek lain di mesin ini](/docs/id/sessions#where-the-session-picker-looks). Sebelum v2.1.223, pencarian berhenti di direktori proyek saat ini dan git worktree-nya, jadi lanjutkan sesi dari direktori tempat sesi terakhir bekerja.

Penyebab umum:

* **Salah ketik ID**: untuk eksekusi non-interaktif, ID adalah field `session_id` dari [output `--output-format json`](/docs/id/headless#get-structured-output)
* **Transkrip terhapus**: Claude Code menghapus transkrip setelah [periode retensi](/docs/id/sessions#where-transcripts-are-stored), 30 hari secara default, mengikuti [aturan pembersihan retensi](/docs/id/claude-directory#cleaned-up-automatically)
* **Mesin berbeda**: Claude Code menyimpan transkrip secara lokal, jadi lanjutkan sesi di mesin tempat sesi tersebut dijalankan
* **Salinan duplikat**: jika Anda menyalin direktori proyek di bawah `~/.claude/projects` sehingga dua transkrip memiliki ID yang sama, Claude Code melaporkan pesan ini alih-alih melanjutkan salah satu salinan secara sembarang

**Yang perlu dilakukan:**

* Untuk sesi interaktif, buka [pemilih sesi](/docs/id/sessions#use-the-session-picker) dengan `claude --resume` dan tekan `Ctrl+A` untuk memperluasnya ke setiap proyek di mesin ini, lalu pilih sesinya
* Sesi yang dibuat dengan `claude -p` atau [Agent SDK](/docs/id/agent-sdk/overview) tidak muncul di pemilih, jadi periksa kembali ID tersebut terhadap `session_id` yang dicetak oleh eksekusi awal Anda

<h3 id="windows-reported-an-error-ebadf">
  Windows melaporkan kesalahan (EBADF) saat Claude Code membaca file transkrip sesi ini
</h3>

Anda melanjutkan sesi di Windows, [file transkrip](/docs/id/sessions#where-transcripts-are-stored) tersimpannya terbuka secara normal, lalu pembacaannya gagal dengan kesalahan sistem EBADF. Kesalahan sistem tidak menyebutkan alasan pembacaan gagal, sehingga pesan tersebut menyarankan kemungkinan penyebab dan hal yang dapat dicoba:

```text theme={null}
Windows reported an error (EBADF) when Claude Code read this session's transcript file, although the file had opened normally. This can happen when other software intercepts file reads — security, encryption or endpoint-management tools, for example. If it keeps happening for this conversation, try excluding the folder that holds Claude Code's session transcripts from such software (the .claude folder in your user profile, unless the app or CLAUDE_CONFIG_DIR points Claude Code elsewhere), or adding Claude Code to its allowed applications, then resume again.
```

Pesan tersebut muncul setelah baris kegagalan perintah itu sendiri, seperti `Failed to resume session <session-id>`. Perintah `claude --resume` atau [`claude -p`](/docs/id/headless) keluar dengan kode 1 setelah menampilkannya. Setelah `/resume` di dalam sesi, sesi Anda saat ini tetap berjalan.

**Yang perlu dilakukan:**

* Kecualikan folder yang menyimpan transkrip sesi Anda dari perangkat lunak yang memindai atau mencegat pembacaan file, seperti alat keamanan, enkripsi, atau manajemen endpoint. Transkrip berada di `%USERPROFILE%\.claude\projects` secara default, atau di direktori yang disebutkan oleh [`CLAUDE_CONFIG_DIR`](/docs/id/env-vars)
* Jika Anda tidak dapat menambahkan pengecualian, tambahkan Claude Code ke daftar aplikasi yang diizinkan oleh perangkat lunak tersebut
* Lanjutkan sesi lagi

Sebelum v2.1.282, kegagalan muncul tanpa penjelasan: `claude --resume <session-id>` berakhir di `Failed to resume session <session-id>`, dan eksekusi `-p` hanya mencetak teks kesalahan sistem, seperti `Failed to resume session: EBADF: bad file descriptor, read`.

<h3 id="cannot-switch-renderers-in-this-session">
  Tidak dapat beralih renderer dalam sesi ini
</h3>

Saat Anda beralih renderer, Claude Code memulai ulang prosesnya. Anda menjalankan [`/tui`](/docs/id/fullscreen#enable-fullscreen-rendering) dalam sesi yang ditolak untuk dimulai ulang oleh Claude Code, sehingga ia tidak beralih dan tidak menyimpan apa pun. Pesan yang Anda lihat menunjukkan penyebabnya:

* `Cannot switch renderers while work is running in the background`: Anda memiliki pekerjaan latar belakang yang sedang berjalan yang akan ditinggalkan oleh mulai ulang, seperti shell latar belakang atau subagent. Tunggu hingga pekerjaan selesai atau hentikan dengan [`/tasks`](/docs/id/commands), lalu jalankan `/tui fullscreen` atau `/tui default` lagi
* `Cannot switch renderers in this session`: sesi memiliki batasan yang tidak dapat diteruskan Claude Code ke proses yang dimulai ulang. Sebelum v2.1.234, Claude Code tetap memulai ulang dan sesi yang diluncurkan kembali berjalan tanpa batasan tersebut

Dalam pesan batasan, bagian di dalam tanda kurung menyebutkan batasan yang ditemukan Claude Code:

```text theme={null}
Cannot switch renderers in this session — it has restrictions a restart can't carry over (permission rules set for this session only). Nothing was changed. Running /tui fullscreen in a session started without them switches every later session too.
```

Setiap alasan yang dapat ditampilkan pesan di dalam tanda kurung:

* `launch flags: a custom system prompt, a tool allowlist, or restricted settings`: Anda memulai sesi dengan flag yang tidak diteruskan kembali oleh Claude Code ke proses yang dimulai ulang. Flag ini mencakup [`--system-prompt`](/docs/id/cli-reference#cli-flags), `--system-prompt-file`, `--append-system-prompt-file`, allowlist [`--tools`](/docs/id/cli-reference#cli-flags), [`--setting-sources`](/docs/id/cli-reference#cli-flags), dan [`--permission-prompt-tool`](/docs/id/cli-reference#cli-flags)
* `permission rules set for this session only`: sebuah [pembaruan izin](/docs/id/hooks#permission-update-entries) dari hook atau pemanggil SDK menambahkan aturan deny atau ask dengan tujuan `session`. Aturan allow yang dibatasi ke sesi tidak memicu penolakan. Mulai ulang akan menghapusnya, dan Claude Code akan meminta izin lagi
* `ask-before-running rules with no command-line form`: pembaruan izin dari hook atau pemanggil SDK menambahkan aturan ask di samping aturan yang diteruskan kembali oleh Claude Code sebagai `--allowed-tools` dan `--disallowed-tools`. Tidak ada flag untuk aturan ask
* `permission rules a command line cannot carry intact` dan `added directories a command line cannot carry intact`: pembaruan izin menambahkan aturan atau path direktori di tengah sesi. Baris perintah proses yang dimulai ulang tidak dapat membawa teksnya sebagai nilai yang sama

**Yang perlu dilakukan:**

* Dalam sesi yang dimulai tanpa batasan tersebut, jalankan `/tui fullscreen`, atau `/tui default` untuk beralih kembali. Claude Code menyimpan [pengaturan `tui`](/docs/id/settings-reference#tui) di sana

<h3 id="claude-code-couldnt-restart">
  Claude Code couldn't restart
</h3>

Jika pesan ini menyatakan bahwa percakapan Anda tersimpan, percakapan tersebut ada di disk dan Anda dapat melanjutkannya dari titik berhentinya. Claude Code sedang memulai ulang dirinya sendiri, misalnya untuk beralih ke atau dari rendering fullscreen setelah Anda menjalankan [`/tui`](/docs/id/fullscreen#enable-fullscreen-rendering), dan tidak dapat memulai proses baru, sehingga keluar dengan status 1:

```text theme={null}
Claude Code couldn't restart. Your conversation is saved. Start Claude Code again and run /resume to pick it up.
```

Jika proses mulai ulang tidak memiliki percakapan untuk dibuka kembali, misalnya karena `/tui` adalah input pertama Anda di sesi baru, pesannya berbunyi `Claude Code couldn't restart. Start Claude Code again.`

**Yang perlu dilakukan:**

* Jalankan `claude` lagi di shell Anda. Jika pesan menyatakan bahwa percakapan Anda tersimpan, jalankan [`/resume`](/docs/id/sessions#resume-a-session) di sesi baru dan pilih percakapannya. Jika tidak ada di daftar, [perluas picker sesi](/docs/id/sessions#where-the-session-picker-looks)
* Jika proses mulai ulang terus gagal, mulai Claude Code dari shell Anda dengan [`claude --debug-file claude-debug.log`](/docs/id/cli-reference#cli-flags). Jika mulai ulang dari sesi tersebut gagal, `claude-debug.log` di direktori tempat Anda memulai mencatat baris `Failed to relaunch:` dengan error dari sistem operasi. Sertakan baris tersebut saat Anda [melaporkan masalahnya](#report-an-error)

<h3 id="couldnt-open-claude-desktop">
  Tidak dapat membuka Claude Desktop
</h3>

Anda menjalankan [`/desktop`](/docs/id/desktop#coming-from-the-cli) atau aliasnya `/app` dalam sesi, atau [`claude --desktop`](/docs/id/cli-reference#cli-flags) di shell Anda, dan perintah sistem yang digunakan Claude Code untuk membuka Claude Desktop gagal. Setelah `/desktop`, sesi tetap berada di terminal; `claude --desktop` mencetak pesan tanpa awalan `Error:` dan keluar dengan status 1.

Teks di dalam tanda kurung menyebutkan perintah yang gagal, beserta status keluarnya dan baris pertama output kesalahannya jika perintah tersebut menghasilkannya. Di macOS perintah tersebut adalah `open`, seperti dalam contoh ini; di Windows perintahnya adalah `rundll32`:

```text theme={null}
Error: Couldn't open Claude Desktop (`open` exited 1: LSOpenURLsWithRole() failed for the URL claude://resume?session=<session-id> with error -10814). Open Claude Desktop and try again.
```

**Yang perlu dilakukan:**

* Buka Claude Desktop sendiri, lalu jalankan `/desktop` atau `claude --desktop` lagi
* Untuk membaca output kesalahan lengkap dari perintah yang gagal, aktifkan logging debug dengan `/debug` lalu jalankan `/desktop` lagi, atau jalankan `claude --desktop --debug-file <path>`, lalu periksa log debug

Sebelum v2.1.285, pesan tersebut diakhiri dengan `Open Claude Desktop and run /desktop again.` Sebelum v2.1.275, pesannya adalah `Failed to open Claude Desktop. Please try opening it manually.` dan tidak menyebutkan apa yang gagal.

<h3 id="terminal-setup-left-your-zed-keymap-unchanged">
  /terminal-setup membiarkan keymap Zed Anda tidak berubah
</h3>

Anda menjalankan [`/terminal-setup`](/docs/id/terminal-config#enter-multiline-prompts) di Zed, dan Claude Code tidak dapat menyelesaikan pembaruan pada `keymap.json` Zed Anda, sehingga file tersebut dibiarkan seperti semula.

Setiap pesan menyebutkan path ke keymap Anda dan diakhiri dengan blok pintasan keyboard untuk Anda tambahkan sendiri:

```text theme={null}
Couldn't update your Zed keymap, so it was left unchanged.
To add the binding yourself, add this block to the keymap array in <path to keymap.json>:
{ "context": "Terminal", "bindings": { "shift-enter": ["terminal::SendText", "\u001b\r"] } }
```

Baris pertama pesan menyebutkan penyebabnya:

* `Couldn't read your Zed keymap, so it was left unchanged.`: Claude Code tidak dapat membaca file tersebut, misalnya karena hak akses file
* `Your Zed keymap isn't a readable list of keybindings, so it was left unchanged.`: file terbaca dengan baik tetapi tidak dapat di-parse sebagai array blok pintasan keyboard, bahkan dengan komentar `//` dan koma di akhir yang diizinkan
* `Couldn't back up your Zed keymap; not modifying it.`: Claude Code tidak dapat menyalin file ke cadangan `.bak` di sebelahnya, sehingga tidak mengubah apa pun
* `Couldn't update your Zed keymap, so it was left unchanged.`: hasil penggabungan tidak terverifikasi sebagai keymap valid yang memuat pintasan tersebut, sehingga Claude Code membuangnya alih-alih menulisnya. Blok pintasan keyboard dengan kunci duplikat dapat menyebabkan hal ini

**Yang perlu dilakukan:**

* Salin blok dari pesan ke dalam array tingkat atas di `keymap.json` Anda pada path yang disebutkan pesan
* Untuk `isn't a readable list of keybindings`, perbaiki kesalahan sintaksis, atau jadikan nilai tingkat atas file sebagai array, lalu jalankan `/terminal-setup` lagi

Sebelum v2.1.247, `/terminal-setup` tidak dapat mem-parse keymap Zed yang menggunakan komentar `//` atau koma di akhir, dan mengganti seluruh file hanya dengan pintasannya sendiri sambil melaporkan pintasan tersebut sebagai terpasang. Untuk memulihkan keymap yang diganti oleh versi sebelumnya, gunakan file cadangan `.bak` yang dijelaskan di [Memasukkan prompt multibaris](/docs/id/terminal-config#enter-multiline-prompts).

<h3 id="skill-usage-reports-are-not-available-on-this-connection">
  Laporan penggunaan skill tidak tersedia pada koneksi ini
</h3>

Anda menjalankan [`/skill-doctor`](/docs/id/skills#find-unused-skills) melalui [Remote Control](/docs/id/remote-control), dari ponsel atau browser Anda. Claude Code tidak mengirim laporan penggunaan skill melalui Remote Control dan membalas dengan pesan ini:

```text theme={null}
Skill usage reports are not available on this connection.
```

**Yang perlu dilakukan:**

* Jalankan `/skill-doctor` di terminal pada mesin tempat sesi berjalan, atau jalankan `claude -p "/skill-doctor"` di sana

<h3 id="custom-output-styles-cant-be-selected-over-remote-control">
  Gaya output kustom tidak dapat dipilih melalui Remote Control
</h3>

Anda menjalankan [`/output-style`](/docs/id/output-styles#change-your-output-style) dari aplikasi seluler atau web melalui [Remote Control](/docs/id/remote-control), atau perintah tersebut tiba dalam pesan yang diteruskan ke dalam sesi. Karena giliran seperti itu mungkin tidak berasal dari pemilik akun, Claude Code hanya mencantumkan dan memilih [gaya bawaan](/docs/id/output-styles#built-in-output-styles) pada giliran tersebut, dan menambahkan pemberitahuan ini setiap kali perintah mencantumkan gaya atau tidak mengenali nama yang Anda berikan. Nama [gaya kustom](/docs/id/output-styles#create-a-custom-output-style) mendapat balasan yang sama dengan nama yang tidak ada:

```text theme={null}
Custom output styles can't be selected over Remote Control or from a relayed message. Select one in the session itself, or pick a built-in style here.
```

**Yang perlu dilakukan:**

* Pilih gaya bawaan, misalnya `/output-style concise`
* Untuk menggunakan gaya kustom, atur [`outputStyle`](/docs/id/settings-reference#outputstyle) di `.claude/settings.local.json` proyek, atau jalankan `/output-style <style>` di terminal sesi itu sendiri jika ada

<h3 id="output-styles-are-saved-to-local-settings-which-this-session-doesnt-load">
  Gaya output disimpan ke pengaturan lokal yang tidak dimuat oleh sesi ini
</h3>

Anda mencoba beralih [gaya output](/docs/id/output-styles) dengan `/output-style <style>` atau `/config outputStyle=<style>` dalam sesi yang sumber pengaturannya tidak menyertakan `local`. Contohnya adalah sesi [Agent SDK](/docs/id/agent-sdk/typescript) yang [`settingSources`](/docs/id/agent-sdk/typescript#options)-nya tidak menyertakan `"local"` dan sesi CLI yang dimulai dengan nilai [`--setting-sources`](/docs/id/cli-reference#cli-flags) yang tidak menyertakan `local`. Kedua perintah menyimpan gaya ke `.claude/settings.local.json`, file yang tidak pernah dibaca kembali oleh sesi seperti itu, sehingga Claude Code menolak alih-alih menulis pengaturan yang tidak akan berpengaruh:

```text theme={null}
Output styles are saved to local settings (.claude/settings.local.json), which this session doesn't load, so the style can't be changed here.
```

**Yang perlu dilakukan:**

* Tambahkan `local` ke sumber pengaturan sesi lalu beralih lagi
* Atur kunci [`outputStyle`](/docs/id/settings-reference#outputstyle) di file pengaturan yang dimuat oleh sesi, seperti `.claude/settings.json` di proyek atau `~/.claude/settings.json`. Di TypeScript SDK, atur `outputStyle` di dalam objek `settings` inline; lihat [Mengaktifkan gaya output](/docs/id/agent-sdk/modifying-system-prompts#activate-an-output-style)

<h3 id="recap-only-runs-when-you-ask-for-it-yourself">
  /recap hanya berjalan saat Anda sendiri yang memintanya
</h3>

Permintaan [`/recap`](/docs/id/interactive-mode#session-recap) tidak berasal dari input Anda sendiri. Permintaan tersebut tiba dalam pesan yang diteruskan ke dalam sesi dari thread Slack, Teams, atau [proyek](/docs/id/claude-projects), atau dalam prompt yang dikirim oleh [routine](/docs/id/routines) atau program lain.

Pesan yang diteruskan tetap mendapat pemberitahuan ini meskipun Anda sendiri yang menulisnya. Claude Code tidak dapat memastikan bahwa pesan yang diteruskan atau otomatis berasal dari orang yang akunnya menjalankan sesi, sehingga ia menjawab dengan pemberitahuan ini alih-alih ringkasan:

```text theme={null}
/recap only runs when you ask for it yourself in this session: from the terminal, the Claude app or claude.ai/code, or over Remote Control. A message relayed from Slack, Teams or a project thread, or sent by a routine or another program, can't request it.
```

`/recap` yang Anda teruskan ke `claude -p`, atau yang dikirim oleh aplikasi [Agent SDK](/docs/id/agent-sdk/overview) Anda sendiri ke sesi yang diluncurkannya, dihitung sebagai input Anda sendiri.

**Yang perlu dilakukan:**

* Buka sesi sendiri dan jalankan `/recap` di sana: di terminalnya, di [aplikasi Desktop](/docs/id/desktop) atau [aplikasi seluler](/docs/id/mobile), di [claude.ai/code](https://claude.ai/code), atau melalui [Remote Control](/docs/id/remote-control)
* Jika routine atau program lain yang mengirimnya, hapus `/recap` dari prompt tersebut

<h2 id="plugin-errors">
  Kesalahan plugin
</h2>

Kesalahan ini berasal dari konfigurasi [plugin](/docs/id/plugins/overview) dan [marketplace](/docs/id/plugins/overview). Untuk masalah plugin yang tidak menghasilkan salah satu pesan di halaman ini, seperti URL marketplace yang tidak memuat atau plugin yang terpasang tetapi tidak muncul, lihat [Pemecahan masalah plugin](/docs/id/plugins/troubleshooting).

<h3 id="plugin-eval-is-currently-in-early-access">
  plugin eval is currently in early access
</h3>

Anda menjalankan [`claude plugin eval`](/docs/id/plugin-evals) atau `claude plugin eval init` dan keluar dengan kode 1 dengan salah satu pesan ini sebelum melakukan apa pun:

```text theme={null}
`plugin eval` is currently in early access
```

```text theme={null}
`plugin eval` is currently unavailable
```

Pesan pertama berarti build Anda lebih lama dari v2.1.269, versi pertama di mana perintah tersedia secara umum. Pesan kedua berarti Anthropic telah mematikan perintah di sisi server; tidak ada yang di mesin Anda yang menghidupkannya kembali.

**Yang harus dilakukan:**

* Jalankan `claude --version`, kemudian `claude update`, dan jalankan perintah lagi dalam sesi baru. Lihat [persyaratan untuk plugin evals](/docs/id/plugin-evals#requirements)
* Jika Anda melihat pesan kedua pada build saat ini, coba lagi nanti setelah `claude update` lain

<h3 id="marketplace-is-registered-from-an-untrusted-source">
  Marketplace is registered from an untrusted source
</h3>

Marketplace terdaftar dengan nama yang [dicadangkan untuk marketplace Anthropic resmi](/docs/id/plugins/marketplace-reference#marketplace-file), tetapi sumber terdaftarnya bukan repositori GitHub `anthropics`. Claude Code memeriksa ulang nama yang dicadangkan setiap kali memuat atau menyegarkan marketplace, sehingga marketplace dan plugin yang dipasang darinya berhenti memuat. Sebelum v2.1.205, entri yang terdaftar sebelum namanya dicadangkan terus memuat.

```text theme={null}
Marketplace "claude-community" is registered from an untrusted source: The name 'claude-community' is reserved for official Anthropic marketplaces. Only repositories from 'github.com/anthropics/' can use this name. To fix it, remove the marketplace and re-add it from the official source.
```

Untuk marketplace yang sumbernya bukan repositori GitHub atau URL Git, seperti direktori lokal, kalimat tengah berbunyi `can only be used with GitHub sources from the 'anthropics' organization` sebagai gantinya. `claude plugin marketplace add` menjalankan pemeriksaan yang sama, dan menolak nama yang dicadangkan dengan `Failed to add marketplace:` diikuti oleh kalimat nama yang dicadangkan yang sama.

**Yang harus dilakukan:**

* Jika marketplace sudah terdaftar, jalankan `claude plugin marketplace remove <name>`, kemudian tambahkan lagi dari repositori `github.com/anthropics` resmi
* Jika Anda menerbitkan marketplace pihak ketiga yang menggunakan nama sebelum dicadangkan, ubah namanya dan minta pengguna untuk menambahkannya kembali dari sumber Anda
* Lihat daftar nama yang dicadangkan di bawah [Marketplace schema](/docs/id/plugins/marketplace-reference#marketplace-file)

<h3 id="marketplace-name-is-another-spelling-of-a-reserved-name">
  Marketplace name is another spelling of a reserved name
</h3>

Nama marketplace bukan sendiri nama yang dicadangkan, tetapi Claude Code memperlakukannya sebagai ejaan lain dari salah satu nama yang dicadangkan. [Nama yang dicadangkan](/docs/id/plugins/marketplace-reference#reserved-name-spellings) mencantumkan ejaan mana yang dihitung sebagai nama yang dicadangkan. Claude Code menolak nama seperti itu ketika Anda menambahkan marketplace:

```text theme={null}
Failed to add marketplace: "claude.code.plugins" is another spelling of "claude-code-plugins", a reserved marketplace name.
```

Ketika marketplace sudah terdaftar dengan nama seperti itu, entrinya berhenti memuat, dan `/plugin`, `claude plugin install`, dan `claude plugin update` memperingatkan:

```text wrap theme={null}
known_marketplaces.json has an entry named "claude.code.plugins", another spelling of the reserved marketplace name "claude-code-plugins", so it is ignored. Remove it with: claude plugin marketplace remove claude.code.plugins
```

Ketika nama memerlukan quoting shell, penolakan saat penambahan berbunyi `This marketplace's name is another spelling of "<reserved>", a reserved marketplace name. It is not exactly the reserved name it appears to be.`

**Yang harus dilakukan:**

* Ubah nama marketplace menjadi nama yang tidak mengeja nama yang dicadangkan dan tambahkan lagi
* Untuk peringatan entri yang diabaikan, jalankan perintah `claude plugin marketplace remove` yang diberikannya, atau hapus entri dari `~/.claude/plugins/known_marketplaces.json`

<h3 id="claude-code-refuses-the-marketplace-name">
  Claude Code refuses the marketplace name
</h3>

Nama marketplace yang terdaftar [menyamar sebagai marketplace Anthropic resmi](/docs/id/plugins/marketplace-reference#reserved-names) di bawah aturan yang bagian itu daftar.

Jika marketplace terdaftar dengan nama seperti itu sebelum pemeriksaan memblokir, marketplace dan plugin yang dipasang darinya berhenti memuat, karena Claude Code memeriksa nama setiap kali membaca katalog marketplace. Ketika nama meniru yang resmi, `claude plugin list` dan tab **Errors** `/plugin` melaporkan setiap plugin yang terpengaruh dengan pesan yang dimulai:

```text theme={null}
Claude Code refuses the marketplace name "anthropic-plugins-v2"
```

Untuk nama yang meniru, kesalahan marketplace itu sendiri berbunyi `Claude Code refuses this marketplace's name: it looks like one of Anthropic's own` sebagai gantinya. `claude plugin marketplace add` menolak nama yang menyamar apa pun dengan `Marketplace name impersonates an official Anthropic/Claude marketplace`.

Sebelum v2.1.282, `claude plugin list` dan `/plugin` melaporkan plugin dari nama yang meniru sebagai gagal memuat juga, tanpa menamai nama marketplace sebagai penyebabnya.

**Yang harus dilakukan:**

* Untuk mempertahankan marketplace yang dideklarasikan secara inline oleh file pengaturan dengan `"source": "settings"`, ubah namanya sebelum Anda menghapus nama lama, karena menghapus marketplace juga menghapus entrinya dari file pengaturan Anda. Claude Code v2.1.292 atau yang lebih baru mencantumkan langkah-langkah ini dalam pesan:
  1. Di setiap file pengaturan yang mencantumkan marketplace di bawah `extraKnownMarketplaces`, berikan kunci entri dan `source.name`-nya satu nama baru berupa ASCII biasa yang tidak terlihat seperti nama resmi. Jika administrator menambahkan marketplace melalui pengaturan terkelola organisasi Anda, administrator yang melakukan langkah ini
  2. Jalankan `claude plugin marketplace remove <old-name>`, atau hapus nama lama di tab **Marketplaces** di `/plugin`. Ini juga mencopot plugin-pluginnya dan menghapus data, opsi, dan rahasianya
  3. Mulai Claude Code lagi, di folder proyek jika file tersebut adalah file pengaturan proyek. Kemudian pasang plugin dari marketplace yang telah diubah namanya
* Untuk mempertahankan marketplace lainnya, tunggu sampai pemeliharanya mengganti namanya, kemudian jalankan `claude plugin marketplace update <name>`
* Untuk menghapus marketplace, jalankan `claude plugin marketplace remove <name>`. Ini juga mencopot plugin yang dipasang dari marketplace dan menghapus data, opsi, dan rahasianya
* Jika Anda menerbitkan marketplace, ubah namanya di `marketplace.json` Anda; pengguna kemudian memperbarui marketplace daripada menghapusnya

<h3 id="marketplace-is-already-added-from-a-different-source">
  Marketplace is already added from a different source
</h3>

Anda menyebutkan sumber marketplace baru dengan [`--marketplace <source>` pada perintah install](/docs/id/plugins/install#add-a-marketplace-and-install-in-one-command), dalam sesi atau dari shell Anda. Katalog yang Claude Code ambil dari sumber itu memiliki nama yang sama dengan marketplace yang sudah Anda tambahkan dari sumber berbeda. Claude Code menyimpan marketplace yang ada daripada menggantinya, dan plugin tidak terpasang.

```text theme={null}
Marketplace "acme-tools" is already added from a different source (github:acme/plugins). To use this source instead, remove that marketplace first with /plugin marketplace remove acme-tools.
```

**Yang harus dilakukan:**

* Jika marketplace yang sudah Anda tambahkan adalah yang Anda inginkan, pasang dari sana berdasarkan nama: `/plugin install <plugin>@<name>`
* Untuk beralih ke sumber baru, jalankan `/plugin marketplace remove <name>`, kemudian coba instalasi lagi

<h3 id="plugin-command-references-user-config">
  Plugin command references user\_config in a shell command
</h3>

Hook plugin, [monitor](/docs/id/plugins/components#monitors), atau perintah MCP [`headersHelper`](/docs/id/mcp#use-dynamic-headers-for-custom-authentication) mereferensikan opsi `${user_config.KEY}` [plugin](/docs/id/plugins/manifest-reference#user-configuration), dan string yang disubstitusi akan diteruskan ke shell. Nilai yang dikonfigurasi berisi `$(...)`, backtick, atau `;` akan berjalan sebagai kode di sana, jadi Claude Code menolak untuk memulai komponen daripada mensubstitusi nilai. Pemeriksaan berjalan pada template perintah, jadi kesalahan muncul bahkan ketika tidak ada nilai yang dikonfigurasi. Sebelum v2.1.207, nilai disubstitusi ke dalam perintah shell.

Kata-katanya tergantung pada permukaan mana yang mereferensikan opsi. Hook bentuk shell melaporkan:

```text theme={null}
Hook from plugin formatter@acme-tools references ${user_config.*} in a shell-form command. The substituted value would be re-parsed by the shell. Use exec form instead — {"command": "<executable>", "args": ["${user_config.KEY}", ...]} — or read $CLAUDE_PLUGIN_OPTION_<KEY> from the hook's environment. Command: ./scripts/notify.sh ${user_config.webhook_url}
```

Monitor melaporkan:

```text theme={null}
Monitor "deploy-status" from plugin deploy-tools references ${user_config.*} in its command. The substituted value would be passed to a shell. Monitor commands cannot safely reference ${user_config.*}; have the monitor script read the value from a config file or prompt instead.
```

MCP `headersHelper` melaporkan:

```text theme={null}
headersHelper for MCP server 'internal-api' references ${user_config.*}. The substituted value would be passed to a shell; read the value inside the helper script instead (e.g. from an env var set in the server's "env" block).
```

**Yang harus dilakukan:**

* Untuk hook, tambahkan array `args` sehingga berjalan dalam [exec form](/docs/id/hooks#exec-form-and-shell-form), di mana setiap `${user_config.KEY}` menjadi satu argumen tanpa shell di antaranya. Atau lepaskan referensi dan baca variabel lingkungan `$CLAUDE_PLUGIN_OPTION_<KEY>` di dalam skrip
* Untuk monitor, lepaskan referensi dan buat skrip monitor membaca nilai dari file konfigurasi
* Untuk `headersHelper`, pindahkan `${user_config.KEY}` ke bidang `headers` server, yang tidak diurai shell, atau baca nilai di dalam skrip helper

<h3 id="plugin-archive-integrity-check-failed">
  Plugin archive integrity check failed
</h3>

Entri marketplace plugin menggunakan sumber [`archive`](/docs/id/plugins/marketplace-reference#archive-plugin-source) dengan pin `sha256`, dan digest file yang diunduh tidak cocok dengan pin. Claude Code menolak instalasi, jadi tidak ada yang berubah dalam cache plugin. Ketidakcocokan memiliki tiga kemungkinan penyebab:

* File di URL berubah setelah penulis menghitung pin
* Penulis memasukkan digest yang salah di entri marketplace
* URL melayani file yang berbeda dari yang penulis pin

```text theme={null}
Plugin archive integrity check failed for https://artifacts.example.com/claude-plugins/my-plugin.zip: expected sha256 6bfa50e3d2e00c052b46abe51fff89346ac803e45771f76dcf6df1ab74cca5e1, got ac52220c0914ef8ca6a602e4a7362f88d30fb021110f72a6d15b68c3fe7df2b7. The archive was not installed. Verify the sha256 in the marketplace entry, or that the URL serves the intended file.
```

**Yang harus dilakukan:**

* Jika Anda menerbitkan plugin, hitung ulang digest file yang tepat yang dilayani URL, misalnya dengan `shasum -a 256 my-plugin.zip`, atau `Get-FileHash -Algorithm SHA256 my-plugin.zip` di PowerShell, dan perbarui `sha256` di entri marketplace
* Jika Anda memasang plugin, jalankan `/plugin marketplace update <name>` untuk menyegarkan katalog jika entri telah diperbaiki, kemudian coba instalasi lagi
* Jika digest masih tidak setuju setelah penyegaran, tanyakan kepada pemilik marketplace file mana yang mereka pin sebelum memasang

<h3 id="path-escapes-plugin-directory">
  Path escapes plugin directory
</h3>

Jalur komponen plugin, yang dideklarasikan dalam `plugin.json` plugin atau dalam [entri marketplace](/docs/id/plugins/marketplace-reference#plugin-entries), diselesaikan di luar direktori plugin itu sendiri. Claude Code menghapus jalur itu dan memuat sisa plugin. Nama komponen dalam pesan, seperti `commands` atau `hooks`, menamai bidang yang mendeklarasikan jalur.

```text theme={null}
commands path escapes plugin directory: ./../shared.md
```

Dalam output perintah `claude plugin`, kesalahan yang sama berbunyi `Path escapes plugin directory: ./../shared.md (commands)`.

Claude Code menolak baik jalur yang menunjuk di luar plugin seperti yang ditulis, seperti `../shared-utils`, dan symlink yang mengarah di luar plugin dan bukan salah satu yang [aturan symlink marketplace](/docs/id/plugins/host-marketplace#share-files-within-a-marketplace-with-symlinks) izinkan. Untuk symlink, pesan juga mengatakan di mana jalur diselesaikan:

```text theme={null}
commands path escapes plugin directory: ./commands/deploy.md — it resolves to /home/user/shared/deploy.md, outside the plugin directory
```

Di macOS dan Linux, Claude Code juga menolak jalur komponen yang berisi backslash di mana pun di dalamnya, bahkan ketika jalur tetap berada di dalam plugin. Plugin yang jalur komponen menggunakan pemisah gaya Windows memuat di Windows dan memicu penolakan ini di platform lain:

```text theme={null}
commands path escapes plugin directory: ./commands\deploy.md — its path contains a backslash, which is not resolved reliably on this platform
```

Sebelum v2.1.251, Claude Code memuat jalur `commands` yang dideklarasikan dalam entri marketplace bahkan ketika menunjuk di luar direktori plugin.

Sebelum v2.1.257, pemeriksaan hanya melihat ejaan jalur, bukan di mana symlink mengarah.

**Yang harus dilakukan:**

* Pindahkan file yang direferensikan ke dalam direktori plugin dan arahkan jalur ke sana dengan jalur relatif `./`
* Jika jalur adalah symlink ke file di luar plugin, ganti symlink dengan salinan file
* Jika pesan mengatakan jalur berisi backslash, tulis jalur dengan garis miring maju, misalnya `./commands/deploy.md`
* Untuk berbagi file dengan plugin lain di marketplace yang sama, tautkan dengan symlink di dalam direktori plugin, mengikuti [aturan symlink](/docs/id/plugins/host-marketplace#share-files-within-a-marketplace-with-symlinks)

<h3 id="path-could-not-be-checked">
  Path could not be checked
</h3>

Claude Code menanyakan sistem operasi apakah jalur plugin ada dan mendapat kesalahan selain "tidak ditemukan", jadi tidak memuat apa yang dinamai jalur. Berapa banyak plugin yang memuat tergantung pada jalur mana yang gagal:

* Salah satu dari [lokasi komponen default](/docs/id/plugins/manifest-reference#standard-layout) plugin, seperti folder `skills/`, file `monitors/monitors.json`, atau [`SKILL.md` di root plugin](/docs/id/plugins/components#skills): komponen lain plugin masih memuat
* Direktori plugin itu sendiri: tidak ada yang memuat dari plugin itu

Anda tidak melihat kesalahan ini untuk jalur yang tidak ada sama sekali. Di `/plugin`, kesalahan muncul di bawah plugin dan menamai jalur dan kode yang dikembalikan sistem operasi:

```text theme={null}
skills path could not be checked: /home/user/my-plugin/skills (ELOOP)
```

Di `claude plugin list`, kesalahan yang sama berbunyi `Path not found: /home/user/my-plugin/skills (skills, ELOOP)`.

Penyebab yang menghasilkan kesalahan ini termasuk:

* `ELOOP`: symlink dalam jalur menunjuk pada dirinya sendiri atau membentuk loop
* `EIO` atau `ESTALE`: jalur berada di mount jaringan yang rusak atau basi
* `EACCES`: salah satu direktori di atas jalur menolak Anda izin untuk melintasinya

**Yang harus dilakukan:**

* Ganti symlink yang menunjuk pada dirinya sendiri dengan folder nyata, atau hapus
* Jika jalur berada di mount jaringan, pasang kembali bagian
* Jika kodenya adalah `EACCES`, pulihkan izin eksekusi Anda di direktori di atas jalur
* Jalankan `/reload-plugins` setelah memperbaiki jalur, atau mulai ulang Claude Code, untuk memuat plugin atau komponen

Sebelum v2.1.265, Claude Code memperlakukan folder komponen default yang tidak dapat diperiksa sebagai tidak ada dan memuat plugin tanpa komponen itu, tanpa kesalahan.

<h3 id="marketplace-entry-path-does-not-stay-inside-the-marketplace-directory">
  Marketplace entry path does not stay inside the marketplace directory
</h3>

[Entri marketplace](/docs/id/plugins/marketplace-reference#plugin-entries) plugin mendeklarasikan jalur sumber yang Claude Code tidak dapat diselesaikan ke lokasi di dalam direktori marketplace itu sendiri, jadi plugin tidak memasang atau memuat. Penolakan mencakup:

* Jalur entri yang absolut, memanjat keluar dari marketplace dengan `..`, atau dieja seperti jalur jaringan
* Di macOS dan Linux, jalur entri yang berisi backslash di mana pun setelah `./` terkemuka
* Entri di marketplace yang diambil dari sumber jarak jauh, seperti git atau URL, yang mencapai targetnya melalui symlink yang diselesaikan di luar direktori marketplace
* Entri relatif di marketplace yang ditambahkan dari URL langsung ke `marketplace.json`: Claude Code hanya mengunduh file itu, jadi tidak ada file plugin lokal untuk jalur yang dinamai. Lihat [Plugins with relative paths fail in URL-based marketplaces](/docs/id/plugins/troubleshooting#plugins-with-relative-paths-fail-in-url-based-marketplaces)

`claude plugin install` melaporkan penolakan seperti ini:

```text theme={null}
Cannot install my-plugin@my-marketplace: its marketplace entry path does not stay inside the marketplace directory (an absolute, climbing, network-shaped, backslash-containing or link-traversing entry, an entry of a fetched marketplace that resolves or opens outside its tree — or a relative entry in a url-catalog marketplace, which has no local directory)
```

Ketika entri plugin yang sudah terpasang gagal pemeriksaan yang sama, `claude plugin list` menampilkan plugin sebagai `failed to load` dengan:

```text theme={null}
Plugin source path refused: ./my-plugin does not stay inside its marketplace directory. Check that the marketplace entry has a plain relative path.
```

**Yang harus dilakukan:**

* Jika Anda memelihara marketplace, tulis `source` entri sebagai jalur relatif biasa dengan garis miring maju, seperti `./plugins/my-plugin`, dan jaga agar symlink apa pun yang dilintasinya menunjuk ke dalam direktori marketplace
* Jika Anda menambahkan marketplace dari URL langsung, entri relatif tidak dapat diselesaikan. Minta penulis marketplace untuk menggunakan [sumber plugin lain](/docs/id/plugins/marketplace-reference#plugin-sources), atau tambahkan marketplace dari repositori git-nya sebagai gantinya

<h3 id="failed-to-load-marketplace-configuration">
  Failed to load marketplace configuration
</h3>

Claude Code menyimpan marketplace plugin yang telah Anda tambahkan dalam file registri di `~/.claude/plugins/known_marketplaces.json`. Perintah plugin yang memerlukan registri, seperti `claude plugin install`, gagal dengan salah satu dari dua pesan ketika Claude Code tidak dapat menggunakan file:

* `Failed to load marketplace configuration`: file bukan JSON yang valid, atau tidak dapat dibaca. File kosong gagal dengan cara ini juga.
* `Marketplace configuration file is corrupted`: file adalah JSON yang valid tetapi isinya tidak cocok dengan skema registri.

Dengan file kosong, `claude plugin install` melaporkan:

```text theme={null}
✘ Failed to install plugin "my-plugin": Failed to load marketplace configuration: JSON Parse error: Unexpected EOF
```

Sebelum v2.1.246, `claude plugin install` tidak melaporkan kegagalan ini.

**Yang harus dilakukan:**

* Buka `~/.claude/plugins/known_marketplaces.json` dan perbaiki JSON, atau perbaiki entri yang pesan namakan sebagai tidak cocok dengan skema registri
* Jika Anda tidak dapat memperbaikinya, hapus file atau ganti isinya dengan `{}`, kemudian tambahkan kembali setiap marketplace dengan `claude plugin marketplace add <source>`. Claude Code mendaftarkan kembali marketplace yang dideklarasikan pengaturan pengguna atau terkelola Anda dalam [`extraKnownMarketplaces`](/docs/id/settings-reference#extraknownmarketplaces) lain kali Anda memulainya di folder yang telah Anda percayai.

<h3 id="plugin-is-required-by-your-organization">
  Plugin is required by your organization
</h3>

Anda menjalankan `claude plugin disable`, atau menggunakan tab **Installed** `/plugin`, untuk mematikan [plugin yang disinkronkan dari claude.ai](/docs/id/plugins/loading#synced-plugins) yang organisasi Anda tandai sebagai diperlukan:

```text theme={null}
Plugin "<name>@synced" is required by your organization and can't be disabled here. Contact your admin to change it.
```

Claude Code tidak menyimpan apa pun dan plugin tetap diaktifkan.

Ketika Anda mencoba menonaktifkan plugin yang diperlukan oleh plugin yang diperlukan, Claude Code menolak dengan cara yang sama, dengan pesan yang menamai plugin yang diperlukan yang membutuhkannya.

**Yang harus dilakukan:**

* Tanyakan admin organisasi claude.ai Anda untuk mengubah status yang diperlukan plugin di claude.ai

<h3 id="plugin-was-not-uninstalled">
  Plugin was not uninstalled
</h3>

Anda menjalankan [`claude plugin uninstall`](/docs/id/plugins/cli-reference#plugin-uninstall), atau memilih **Uninstall** di tab **Installed** `/plugin`, dan pencopotan berhenti dengan pesan yang dimulai `"<plugin>" was not uninstalled:`. Jika teks setelah titik dua itu dimulai dengan `installed_plugins.json` daripada menamai file pengaturan, penyebabnya adalah konten dalam `installed_plugins.json` yang versi Claude Code ini tidak dapat dibaca. Untuk bentuk itu, lihat [`installed_plugins.json` holds a record this version can't read](/docs/id/plugins/troubleshooting#installed-plugins-json-holds-a-record-this-version-cannot-read).

Ketika Claude Code menghapus entri plugin dari `enabledPlugins` dan membaca kembali file pengaturan cakupan itu, baik plugin masih dihidupkan di sana, atau file yang dapat menghidupkannya tidak dapat dibaca atau diperiksa. Menghapus opsi tersimpan plugin, rahasia, dan data sementara entri pengaturan dapat menghidupkannya kembali akan kehilangannya, jadi pencopotan berhenti sebagai gantinya: plugin tetap terpasang dan tidak ada yang disimpannya yang dihapus.

```text theme={null}
✘ Failed to uninstall plugin "formatter": "formatter" was not uninstalled: it is still switched on in /home/user/project/.claude/settings.local.json, although the settings change reported no error. It is still installed. Take it out of "enabledPlugins" in that file yourself, then uninstall it again.
```

Bagian tengah pesan menamai file dan penyebabnya:

* `it is still switched on in <file>, although the settings change reported no error`: penulisan pengaturan melaporkan kesuksesan tetapi entri masih ada ketika file dibaca kembali
* `it is still switched on in <file>, and the settings change failed (<error>)`: file tidak dapat disimpan, untuk alasan dalam tanda kurung
* `<file> is there and could not be read`: file ada tetapi tidak dapat dibaca sebagai pengaturan, misalnya karena bukan JSON yang valid, jadi mungkin masih mengaktifkan plugin
* `<file> (not read: it is on a network path or is a link to one, or could not be checked)`: Claude Code tidak membaca file pengaturan proyek atau lokal karena file, atau folder `.claude` yang menahannya, adalah tautan yang mengarah ke lokasi jaringan, atau karena tidak dapat memeriksa jalur itu

`claude plugin uninstall` keluar 1, dan dengan `--json` hasilnya membawa `failureCode: "settings_still_on"`. `/plugin` menampilkan pesan yang sama.

**Yang harus dilakukan:**

* Ikuti kalimat terakhir pesan: perbaiki atau ganti file pengaturan yang dinamainya, atau hapus entri plugin dari `enabledPlugins` di file itu sendiri, kemudian jalankan pencopotan lagi

<h2 id="tool-errors">
  Kesalahan tool
</h2>

Kesalahan ini berasal dari panggilan tool Claude. Claude memperbaiki sebagian besar kesalahan tool secara otomatis. Ketika salah satu memerlukan perubahan dari Anda, daftar **What to do** kesalahan tersebut mengatakan apa yang harus diubah.

<h3 id="no-such-tool-available">
  No such tool available
</h3>

Claude memanggil tool dengan nama yang tidak ada dalam daftar tool sesi. Claude Code mengembalikan kesalahan tersebut kepada Claude sebagai hasil panggilan tool, dan giliran berlanjut. Ketika Claude Code dapat mengetahui mengapa tool tersebut tidak ada, Claude Code menambahkan kalimat setelah nama tool yang memberikan alasannya atau menyebutkan tool yang harus dipanggil sebagai gantinya, seperti pada baris kedua:

```text theme={null}
Error: No such tool available: <tool name>
Error: No such tool available: read. Tool names are case-sensitive: call Read instead.
```

Tepat setelah Anda melanjutkan sesi, server MCP mungkin masih berada pada upaya koneksi pertamanya ketika Claude memanggil salah satu tool-nya. Claude Code kemudian [menunggu server](/docs/id/mcp#tool-availability) dan mengembalikan kesalahan ini jika tool tersebut masih belum tersedia saat penantian berakhir. Sebelum v2.1.284, panggilan seperti itu langsung gagal alih-alih menunggu.

Panggilan yang nama tool-nya [dipotong Claude Code menjadi 200 karakter](#tool-use-name-over-200-characters) juga gagal dengan kesalahan ini.

**What to do:**

* Jika terjadi sekali, Anda tidak perlu melakukan apa pun. Claude membaca kesalahan tersebut dan giliran berlanjut.
* Jika panggilan ke tool milik server MCP terus gagal dengan kesalahan ini, jalankan `/mcp` di sesi atau `claude mcp list` di shell Anda untuk memeriksa [status](/docs/id/mcp#server-status) server, dan sambungkan kembali server yang gagal dari `/mcp`. Di Agent SDK, lihat [Error handling](/docs/id/agent-sdk/mcp#error-handling).

<h3 id="agent-would-be-spawned-with-zero-tools">
  Agent would be spawned with zero tools
</h3>

Setiap entri dalam [`tools` list](/docs/id/sub-agents#supported-frontmatter-fields) subagent gagal cocok dengan tool yang dapat digunakan, jadi Claude Code menolak untuk meluncurkan subagent: tanpa tool, subagent tidak bisa bertindak. Pesan mengelompokkan entri Anda berdasarkan apa yang salah:

* **Unrecognized**: entri tidak cocok dengan nama tool apa pun, biasanya kesalahan ketik seperti `Grpe` untuk `Grep`.
* **Not available to subagents**: entri menamai tool nyata yang [tidak dapat digunakan subagent](/docs/id/sub-agents#available-tools). Subagent latar belakang menyimpan set tool bawaan yang lebih kecil, jadi entri yang hanya dapat digunakan subagent foreground masuk ke sini ketika subagent akan berjalan di latar belakang, yang merupakan default. Jika Anda mencantumkan `Agent`, pesan melaporkannya di bawah grup berikutnya.
* **Matched no tools in this session**: entri valid tetapi tidak ada tool dalam sesi saat ini yang cocok dengannya sekarang, seperti `mcp__github__*` tanpa server MCP GitHub yang terhubung, atau `Agent` untuk subagent pada [batas kedalaman](/docs/id/sub-agents#let-subagents-spawn-their-own-subagents).

Menghilangkan bidang `tools` tidak pernah memicu penolakan ini. Jika Anda membiarkan daftar `tools` kosong, atau `disallowedTools` menghapus setiap entri di dalamnya, Claude Code juga melewati penolakan dan meluncurkan subagent tanpa tool.

Sebelum v2.1.208, subagent diluncurkan tanpa tool dan dapat mengembalikan hasil yang kosong atau membingungkan.

```text theme={null}
Agent 'code-reviewer' would be spawned with zero tools — refusing. Its tools list resolved to nothing: unrecognized [Grpe]. Fix the agent's tools frontmatter or pass a different subagent_type.
```

**What to do:**

* Perbaiki setiap entri yang disebutkan kesalahan dengan mengacu pada [tool yang tersedia untuk subagent](/docs/id/sub-agents#available-tools)
* Hapus entri untuk tool yang tidak dimiliki sesi, seperti tool MCP dari server yang tidak terhubung
* Untuk tool yang [dilepaskan subagent latar belakang](/docs/id/sub-agents#available-tools), seperti `CronCreate`, hapus entri tersebut. Untuk mempertahankan tool tersebut, [matikan mode fork](/docs/id/sub-agents#turn-fork-mode-on-or-off) dan minta Claude menjalankan subagent di foreground
* Hapus bidang `tools` alih-alih mencantumkan tool untuk memberikan subagent setiap [tool yang tersedia untuk subagent](/docs/id/sub-agents#available-tools)
* Untuk daftar `tools` yang hanya berisi `Agent`, naikkan [batas kedalaman](/docs/id/sub-agents#let-subagents-spawn-their-own-subagents) atau berikan agent setidaknya satu tool lain: Claude Code menahan `Agent` pada batas itu, jadi daftar tanpa isi lain akan menghasilkan tidak ada tool

<h3 id="file-is-covered-by-a-read-deny-rule">
  File is covered by a Read deny rule
</h3>

Tool Edit atau Write dipanggil pada jalur yang cocok dengan [aturan penolakan `Read`](/docs/id/permissions#read-and-edit), termasuk membuat file baru di jalur itu. Kedua tool mengubah konten yang harus dapat dibaca kembali oleh Claude, jadi Claude Code menolak panggilan sebelum akses file apa pun. NotebookEdit tidak tercakup oleh aturan penolakan `Read`. Sebelum v2.1.228, aturan tersebut hanya memblokir tool Edit, dan sebelum v2.1.208, hanya aturan penolakan `Edit` yang memblokir edit.

```text theme={null}
File is covered by a Read deny rule in your permission settings and cannot be edited.
```

Ketika Claude Code menolak tool Write, pesan berakhir dengan `and cannot be written` sebagai gantinya.

**What to do:**

* Jika Claude harus dapat mengubah file, hapus atau persempit aturan penolakan `Read` di `/permissions` atau di [settings](/docs/id/settings-reference#permission-settings)
* Jika file harus tetap tidak tersentuh, pertahankan aturan tersebut dan tambahkan aturan penolakan `Edit` untuk jalur yang sama agar tool NotebookEdit juga terblokir

<h3 id="path-cannot-contain-null-bytes">
  Path cannot contain null bytes
</h3>

Argumen path atau pattern dalam panggilan tool file mengandung null byte, yang tidak dapat diterima oleh sistem file dan tool pencarian. Read, Write, Edit, NotebookEdit, Glob, dan Grep memeriksa hal ini, dan pesan menyebutkan tool dan argumennya:

```text theme={null}
Read file_path cannot contain null bytes (\0). Remove the null byte and try again.
```

Panggilan tool gagal, Claude melihat kesalahan tersebut, dan giliran berlanjut.

**What to do:**

* Tidak ada yang perlu dilakukan di sisi Anda: kesalahan dikembalikan ke Claude sebagai hasil tool, dan pesan itu sendiri memberi tahu Claude untuk menghapus null byte dan mencoba ulang

Sebelum v2.1.281, null byte dalam jalur Read, Write, Edit, atau NotebookEdit mengakhiri seluruh giliran dengan kesalahan yang menyebutkan `Path contains null bytes`, dan tool tidak pernah berjalan.

<h3 id="subagent-type-is-required">
  subagent\_type is required
</h3>

```text theme={null}
subagent_type is required: the general-purpose agent is not available in this session. Available agents: ...
```

Claude memanggil [Agent tool](/docs/id/tools-reference#agent-tool-behavior) tanpa `subagent_type`, dan sesi ini tidak memiliki [subagent tujuan umum](/docs/id/sub-agents#built-in-subagents) sebagai cadangan. Hal itu terjadi dalam dua penyiapan:

* [`CLAUDE_AGENT_SDK_DISABLE_BUILTIN_AGENTS=1`](/docs/id/env-vars) diatur dalam mode non-interaktif, yang menghapus setiap subagent bawaan
* Agent thread utama sesi memiliki [`tools: Agent(...)` allowlist](/docs/id/sub-agents#restrict-which-subagents-can-be-spawned) yang tidak menyertakan `general-purpose`

**What to do:**

* Biasanya tidak ada: pesan mencantumkan subagent yang dimiliki sesi, jadi Claude dapat mencoba ulang dengan salah satunya
* Jika Claude terus gagal, tambahkan `general-purpose` ke allowlist `tools: Agent(...)`, atau hapus pengaturan `CLAUDE_AGENT_SDK_DISABLE_BUILTIN_AGENTS`

Sebelum v2.1.235, panggilan yang sama gagal dengan `Agent type 'general-purpose' not found`.

<h3 id="memory-index-is-over-its-read-limit">
  Memory index is over its read limit
</h3>

Claude menulis ke indeks [auto memory](/docs/id/memory#auto-memory) `MEMORY.md` dan membuatnya melampaui salah satu batas bacanya: 200 baris atau 25KB. Penulisan berhasil, tetapi hanya 200 baris pertama atau 25KB, mana pun yang lebih dulu, yang dimuat di awal sesi, jadi semua yang melampaui batas dibuang setiap kali indeks dibaca. Sebelum v2.1.210, indeks yang melampaui batas dipotong secara diam-diam pada pemuatan berikutnya tanpa sinyal saat penulisan.

```text theme={null}
Error: this write left the memory index at MEMORY.md at 214 lines, over its 200-line read limit. The write succeeded, but everything past the limit is silently dropped each time the index is loaded — entries at the end are already invisible to readers. Rewrite it to under 140 lines now: keep one line per entry, move detail into topic files, and merge or drop stale entries.
```

Hanya konten yang dimuat yang dihitung terhadap batas. Frontmatter YAML dan komentar HTML tingkat blok dihapus sebelum indeks dimuat, jadi keduanya dikecualikan dari pengukuran. Sebelum v2.1.211, Claude Code mengukur file mentah, dan frontmatter atau komentar dapat memicu kesalahan ini bahkan ketika konten yang dimuat masih muat.

Claude Code menyampaikan kesalahan kepada Claude setelah penulisan alih-alih mencetaknya sebagai spanduk di terminal Anda, jadi Anda mungkin hanya menyadarinya dalam transkrip.

Ketika penulisan Claude membawa file mendekati batas tanpa melewatinya, Claude Code mengembalikan pengingat yang lebih ringan untuk memadatkan indeks alih-alih kesalahan ini.

**What to do:**

* Biarkan Claude menulis ulang `MEMORY.md`, atau minta Claude melakukannya: simpan satu baris per entri, pindahkan detail ke file topik, dan gabungkan atau buang entri yang usang
* Untuk memangkas indeks sendiri, lihat [Audit and edit your memory](/docs/id/memory#audit-and-edit-your-memory)

<h3 id="pkill-pattern-matches-the-claude-code-process">
  pkill pattern matches the Claude Code process
</h3>

Perintah `pkill` dalam panggilan tool Bash menggunakan pola, biasanya dengan `-f`, yang cocok dengan proses Claude Code itu sendiri, jadi Claude Code menolak perintah alih-alih membiarkannya mengakhiri sesi. Claude Code menguji pola dengan `pgrep` sebelum menjalankan `pkill` dan menolak ketika ID prosesnya sendiri ada dalam hasil. Pemeriksaan hanya berjalan di Linux; di macOS, `pkill` berjalan tanpa modifikasi. Sebelum v2.1.214, perintah tetap berjalan, dan pola yang cocok menghentikan sesi Claude Code di tengah giliran.

```text theme={null}
pkill: refusing to run — this pattern matches the Claude CLI process (PID 12345). Narrow the pattern, or target your own children with `pkill -P $$ ...`.
```

Penolakan muncul dalam hasil tool Bash alih-alih sebagai spanduk di terminal Anda, dan Claude biasanya menyesuaikan perintah dengan sendirinya.

**What to do:**

* Persempit pola sehingga hanya cocok dengan proses yang dimaksud, misalnya jalur lengkap biner target alih-alih substring pendek
* Untuk menghentikan proses yang dimulai oleh shell saat ini, gunakan `pkill -P $$` dengan pola tersebut, yang membatasi kecocokan ke proses anak milik shell itu sendiri

<h3 id="failed-to-write-to-a-teammate-inbox">
  Failed to write to a teammate's inbox
</h3>

Claude Code tidak dapat menulis pesan ke file kotak surat rekan kerja di bawah `~/.claude/teams/{team-name}/inboxes/`, jadi penerima tidak menerima apa pun. Penulisan gagal ketika Claude Code tidak dapat membuat atau memperbarui file, misalnya karena disk penuh, direktori tidak dapat ditulis, atau agent lain menahan kunci kotak surat terlalu lama. Sebelum v2.1.224, Claude Code melaporkan pesan sebagai terkirim bahkan ketika penulisan gagal.

Kesalahan muncul dalam hasil tool agent pengirim alih-alih sebagai spanduk di terminal Anda, dan teksnya memberi tahu Claude untuk mencoba ulang:

```text theme={null}
Failed to write to researcher's inbox — nothing was sent. Try again, or message the lead.
```

Pesan protokol [tim agent](/docs/id/agent-teams) terstruktur gagal dengan cara yang sama, dan kesalahan menyebutkan pesan yang tidak terkirim: ketika Claude Code tidak dapat menulis persetujuan rencana, penolakan rencana, permintaan shutdown, atau penolakan shutdown, kesalahan berbunyi `Failed to write the <message> to <name>'s inbox — nothing was sent`. `plan approval` dalam daftar itu adalah keputusan pemimpin yang menyetujui rencana rekan kerja; pengajuan rencana rekan kerja adalah pesan `plan approval request` yang terpisah. Pesan itu dan dua pesan protokol lainnya membawa teks pesan dan konsekuensinya sendiri:

* `Failed to write the plan approval request to the lead's inbox — plan not submitted; try again`: rencana rekan kerja tidak pernah sampai ke pemimpin, dan rekan kerja tetap dalam plan mode sampai pengajuan ulang berhasil
* `The permission request could not be delivered to the team lead (mailbox write failed)`: permintaan izin rekan kerja tidak pernah sampai ke pemimpin, jadi tidak ada yang menyetujui panggilan tool tersebut
* `The confirmation could not be written to team-lead's inbox.`: persetujuan shutdown itu sendiri berlaku dan rekan kerja keluar; hanya konfirmasi kepada pemimpin yang hilang

Ketika Anda sendiri mengirim pesan ke rekan kerja, dengan mengetik `@name` diikuti pesan dalam sesi pemimpin, kegagalan yang sama muncul sebagai notifikasi, `Couldn't write to @name's inbox — message not sent. Try again.`, dan Claude Code menyimpan teks Anda di kotak prompt sehingga Anda dapat mengirimnya lagi.

**What to do:**

* Minta pengirim untuk mengirim ulang pesan; perebutan kunci kotak surat bersifat sementara dan hilang saat mencoba ulang
* Periksa ruang disk yang tersedia, dan periksa bahwa `~/.claude/teams` dan file di bawahnya dapat ditulis oleh pengguna Anda

<h3 id="teammate-agent-definition-not-restored">
  Teammate's agent definition was not restored
</h3>

Claude mengirim pesan ke rekan kerja [tim agent](/docs/id/agent-teams) yang telah dihentikan, dan Claude Code menghidupkannya kembali tanpa menerapkan ulang [definisi subagent](/docs/id/agent-teams#use-subagent-definitions-for-teammates) yang menjadi dasar pembuatannya. Pemberitahuan muncul setelah laporan resume dalam hasil tool agent pengirim dan menyebutkan alasannya. Ketika file definisi berasal dari folder tanpa kepercayaan yang tersimpan, pemberitahuan berbunyi:

```text wrap theme={null}
Its agent definition was not restored: the folder its definition file came from is not trusted (source: projectSettings), so the teammate is running with the team-essential tools and no custom instructions. To restore it, the user needs to run Claude Code in that folder once and accept the trust dialog (the --debug log names the folder); do not change trust settings on the user's behalf.
```

Pemeriksaan berlaku untuk definisi di direktori `.claude/agents/` dari proyek atau dari direktori `--add-dir`, dan menerima dialog kepercayaan untuk folder induk tidak memenuhinya.

**What to do:**

* Jalankan `claude` di folder yang disebutkan [debug log](/docs/id/debug-your-config) dan terima dialog kepercayaan. Definisi diterapkan ulang saat berikutnya Claude Code menghidupkan kembali rekan kerja; Anda tidak perlu memulai ulang sesi pemimpin
* Atau atur entri `hasTrustDialogAccepted` ke `true` di `~/.claude.json`, menggunakan kunci `projects["<path>"]` persis seperti yang dicetak log debug

<h3 id="message-too-large-for-cross-session-delivery">
  Message too large for cross-session delivery
</h3>

Pesan [lintas sesi](/docs/id/cross-session-messaging) Claude ke sesi lain Anda di mesin ini terlalu panjang untuk dikirim. Claude Code menolaknya, dan sesi penerima tidak mendapat apa pun. Penolakan muncul dalam hasil tool sesi pengirim, bukan sebagai spanduk di terminal Anda. Penolakan ini menyebutkan kedua ukuran dan cara membuat pesan muat:

```text wrap theme={null}
Failed to send to api-worker: Message too large for cross-session delivery: the serialized message is 1,203,844 characters and the limit is 1,048,576. Shorten the message text — put bulk content in a file the recipient can read rather than in the message — or split it into smaller messages.
```

Mengirim ulang teks yang sama gagal dengan cara yang sama.

**What to do:**

* Minta Claude untuk merangkum pesan, atau menempatkan konten besar dalam file dan mengirim jalur file tersebut
* Minta Claude untuk membagi konten ke beberapa pesan yang lebih pendek

Sebelum v2.1.235, Claude Code melaporkan pesan yang terlalu besar sebagai terkirim. Sesi penerima membuangnya tanpa dibaca.

<h3 id="too-many-messages-to-this-session-just-now">
  Too many messages to this session just now
</h3>

Claude mengirim rentetan cepat [pesan lintas sesi](/docs/id/cross-session-messaging) ke salah satu sesi Anda di mesin ini, dan rentetan itu mencapai batas yang diterima kotak surat sesi tersebut. Claude Code menolak pengiriman berikutnya, dan sesi penerima tidak mendapat apa pun darinya. Penolakan muncul dalam hasil tool sesi pengirim, bukan sebagai spanduk di terminal Anda:

```text wrap theme={null}
Failed to send to api-worker: Too many messages to this session just now: 30 were sent recently and more would be dropped by its rate limit, so this one was not sent. Batch what remains into one message, or wait a little before sending more.
```

**What to do:**

* Biasanya tidak ada: Claude mengelompokkan konten yang tersisa menjadi satu pesan, atau menunggu sebelum mengirim lebih banyak
* Jika Anda sendiri yang memicu rentetan tersebut, minta Claude untuk menggabungkan sisanya menjadi satu pesan

Sebelum v2.1.236, Claude Code melaporkan pengiriman ini sebagai terkirim. Sesi penerima membuangnya tanpa dibaca.

<h3 id="cross-session-message-dropped-at-the-inbox">
  Cross-session message was dropped at the recipient session's inbox
</h3>

Claude mengirim [pesan lintas sesi](/docs/id/cross-session-messaging) ke sesi lain Anda di mesin ini, dan kotak surat sesi itu membuangnya sebelum Claude dalam sesi itu membacanya. Baris tersebut menyebutkan alamat penerima dan, ketika penerima memberikan alasan, menambahkan alasan setelah tanda pisah:

```text wrap theme={null}
Cross-session message was dropped at the recipient session's inbox (recipient: uds:/tmp/cc-socks/13605.sock) and not delivered — its queue of undelivered peer messages was full. Claude was told not to resend right away.
```

Satu baris dapat mencakup beberapa pesan yang dibuang. Baris tersebut kemudian dimulai dalam bentuk jamak, misalnya `Cross-session messages (12) were dropped`. Untuk menemukan sesi pemilik suatu alamat, bandingkan dengan [baris `Peer address`](/docs/id/cross-session-messaging#the-sessions-inbox-socket) yang ditampilkan `/status` di setiap sesi.

Setelah tanda pisah, baris memberikan satu atau lebih alasan berikut:

* `its queue of undelivered peer messages was full`: penerima sudah menyimpan pesan yang belum terkirim dari sesi lain sebanyak yang diizinkan antreannya
* `you sent faster than that session accepts`: pesan sesi pengirim tiba lebih cepat daripada yang diterima penerima dari satu pengirim
* `it repeated your previous message`: pesan identik dengan pesan yang dikirim sesi pengirim ke penerima ini tidak lama sebelumnya
* `a relay loop between sessions was cut`: pesan melanjutkan rantai sesi yang saling berkirim pesan, dan rantai tersebut telah melewati penerima terlalu banyak kali atau tumbuh terlalu panjang

**What to do:**

* Asumsikan penerima tidak pernah melihat pesan yang dibuang. Claude Code memberi tahu Claude hal yang sama, dan memintanya menyertakan apa pun yang masih penting dalam satu pesan berikutnya alih-alih segera mengirim ulang
* Jika sesi Anda saling mengirim pembaruan secara sering, minta Claude mengirim pesan yang lebih sedikit dan lebih besar, seperti satu laporan ketika sebuah sesi menyelesaikan pekerjaannya
* Untuk `a relay loop between sessions was cut`, ketik sendiri instruksi berikutnya ke salah satu sesi. Pesan yang dikirim Claude sebagai respons terhadap prompt Anda sendiri memulai rantai baru

Sebelum v2.1.238, sesi pengirim tidak mendapat laporan ketika kotak surat penerima membuang pesan.

<h3 id="refusing-to-send-a-cross-session-message">
  Refusing to send a cross-session message
</h3>

Sebelum Claude Code menulis [pesan lintas sesi](/docs/id/cross-session-messaging) ke sesi lain Anda di mesin ini, Claude Code memeriksa bahwa soket kotak surat sesi target adalah endpoint yang dituju pesan tersebut. Ketika pemeriksaan gagal, Claude Code menolak pengiriman di sesi pengirim, dan sesi target tidak menerima apa pun. Untuk pesan yang dikirim Claude, penolakan muncul dalam hasil tool sesi pengirim:

```text theme={null}
Failed to send to api-worker: Refusing to send: reply target is a symlink
```

Teks setelah `Refusing to send:` menyebutkan pemeriksaan yang gagal:

* `reply target is a symlink`: tautan simbolis berada di jalur soket sesi target. Claude Code tidak mengirimkan melaluinya, karena tautan di sana dapat mengarahkan pesan ke endpoint yang tidak dibuat oleh sesi target.
* `cannot vet reply target`: Claude Code tidak dapat memeriksa jalur target sama sekali, misalnya karena pembacaannya gagal dengan kesalahan izin.

**What to do:**

* Biasanya tidak ada: pemeriksaan mencegah pesan mencapai endpoint selain sesi yang dituju, dan tidak ada yang dikirim
* Jika `reply target is a symlink` berulang untuk satu sesi, periksa apa yang membuat tautan di jalur soket sesi itu, yang ditampilkan di `/status` sesi tersebut di bawah `Peer address`

<h3 id="refusing-after-a-symlink-changed">
  Refusing to read, write, or search a path
</h3>

Claude Code memeriksa [aturan izin](/docs/id/permissions#read-and-edit) suatu jalur file, kemudian mengonfirmasi resolusi itu lagi ketika tool membuka file atau memulai pencarian. Ketika tidak dapat mengonfirmasi bahwa jalur masih mengarah ke lokasi yang disetujui pemeriksaan, Claude Code menolak operasi alih-alih mengikutinya. Penolakan muncul dalam hasil tool:

```text wrap theme={null}
Refusing to read /path/to/file: its symlink resolution changed after permission was checked (a link on the way now leads somewhere the check did not see). If a link in the working directory is being rewritten concurrently, stop that and retry.
```

Setiap penolakan menyebutkan alasannya:

* `its symlink resolution changed after permission was checked`: symlink di sepanjang jalur, atau di akar pencarian Grep atau Glob, diganti antara pemeriksaan izin dan operasi. Dalam penolakan baca, frasa dalam tanda kurung menyebutkan perbandingan mana yang gagal.
* `its parent-directory symlink resolution changed after permission was checked`: direktori yang dilalui jalur penulisan tidak lagi mengarah ke lokasi yang disetujui
* `where it leads on disk could not be determined (a link on the way could not be examined, or the links do not resolve)`: Claude Code tidak dapat mengikuti jalur ke lokasi akhir di disk, misalnya karena symlink di dalamnya membentuk loop
* `it is a symbolic link. Write to the link's target path instead`: tautan simbolis berada di lokasi penulisan yang diminta itu sendiri, misalnya `CLAUDE.md` yang merupakan symlink ke `AGENTS.md`; pesan mengarahkan Claude ke target tautan
* `Refusing to write through symlink: <path>. Resolve the symlink and pass the real target path explicitly.`: kondisi yang sama terdeteksi ketika penulis lain membuka file, seperti penulisan ke `.mcp.json` yang berupa symlink
* `Refusing to write into symlinked directory: <path>`: direktori yang menyimpan file itu sendiri adalah tautan simbolis, misalnya direktori `.claude/` proyek yang ditautkan ke lokasi lain
* `a path one of its Read deny rules is written through changed while the search was being prepared. Retry.`: aturan penolakan `Read` untuk pencarian menyebutkan jalur yang melewati symlink, dan tautan itu berubah saat Claude Code menyiapkan pencarian
* `it could not be opened (EACCES) — it is unreadable, or is being replaced concurrently.`: akar pencarian ada tetapi tidak dapat dibuka; kode dalam tanda kurung adalah kesalahan sistem operasi
* `its permission check expired before it ran (too many concurrent file operations). Retry.`: Claude Code mengeluarkan catatan persetujuan di bawah banyak operasi file simultan sebelum tool menggunakannya; mencoba ulang menjalankan pemeriksaan izin yang baru
* `ripgrep was found only by name on PATH, and a search outside the working directory cannot apply your Read deny rules in that configuration`: Claude Code tidak dapat me-resolve biner `rg` ke jalur absolut, jadi menolak pencarian di luar direktori kerja alih-alih menjalankan pencarian yang tidak dicakup aturan penolakan Anda

**What to do:**

* Biasanya tidak ada: penolakan sampai ke Claude sebagai hasil tool, dan operasi yang ditolak tidak berjalan
* Jika penolakan symlink berulang pada satu jalur, temukan apa yang terus menulis ulang tautan di sana, seperti alat build atau file watcher, atau minta Claude menggunakan jalur file yang sudah di-resolve alih-alih jalur yang ditautkan
* Jika penolakan ini muncul untuk setiap file saat Claude Code berjalan di Windows di dalam AppContainer atau sandbox token terbatas, tingkatkan ke v2.1.265 atau lebih baru
* Jika penolakan baca muncul di macOS untuk file yang tidak sedang ditulis ulang oleh apa pun, seperti tangkapan layar yang diseret ke prompt, tingkatkan ke v2.1.273 atau lebih baru
* Untuk penolakan ripgrep, instal ripgrep dengan manajer paket Anda sehingga `rg` di-resolve ke jalur absolut di `PATH`, atau tetap lakukan pencarian di bawah direktori kerja

Sebelum v2.1.251, Claude Code memeriksa ulang resolusi jalur hanya untuk penulisan file, jadi tautan yang diganti setelah pemeriksaan izin dapat mengarahkan pembacaan atau pencarian ke lokasi berbeda tanpa pesan. Dari penolakan-penolakan ini, hanya penolakan penulisan direktori induk, melalui symlink, dan direktori yang berupa symlink yang muncul di versi sebelumnya.

Sebelum v2.1.280, penolakan `where it leads on disk could not be determined` tidak muncul.

<h3 id="task-output-swap-refused">
  Task output swap refused
</h3>

Claude Code menyimpan output setiap perintah Bash ke file di bawah direktori temp-nya. Setiap kali membuka salah satu file ini, Claude Code memeriksa bahwa jalur masih mengarah ke file yang dibuatnya, tanpa tautan simbolis, hard link tambahan, atau direktori yang dipindahkan yang mengalihkannya. Pesan ini berarti pemeriksaan itu gagal, jadi Claude Code menolak operasi alih-alih menulis atau membaca output melalui jalur itu. Pesan muncul dalam hasil tool Bash:

```text wrap theme={null}
task output swap refused (tasks dir moved or linked): /private/tmp/claude-501/-Users-you-my-project/1f0e62dc-4b0a-4f5e-9c2d-8a7b6c5d4e3f/tasks/b7k2f9m3q.output. To recover: restart Claude Code with CLAUDE_CODE_TMPDIR set to a fresh directory; or, if /private/tmp/claude-501/-Users-you-my-project is a stray directory or a symbolic link that should not be there, remove that entry itself (not what it points to) and restart.
```

Teks dalam tanda kurung menyebutkan pemeriksaan yang gagal. Alasan seperti `output symlink was re-pointed`, `output file identity changed`, dan `not a regular file` semuanya melaporkan kondisi yang sama: sesuatu di atau di sepanjang jalur output tidak lagi merupakan file yang dibuat Claude Code. Hanya beberapa alasan yang menyertakan kalimat `To recover:`.

Jika pemeriksaan gagal saat perintah masih berjalan, Claude Code menghentikan perintah, dan hasilnya melaporkan:

```text theme={null}
Command killed: its output file was replaced or could no longer be verified
```

**What to do:**

* Tingkatkan ke v2.1.260 atau lebih baru. Versi sebelumnya terkadang menampilkan pesan ini ketika tidak ada tautan atau direktori yang dipindahkan
* Mulai ulang Claude Code dengan [`CLAUDE_CODE_TMPDIR`](/docs/id/env-vars) diatur ke direktori baru
* Atau periksa direktori proyek Anda di bawah direktori temp Claude Code, `/private/tmp/claude-501/-Users-you-my-project` dalam contoh pesan. Jika jalur itu adalah tautan simbolis, atau direktori yang tidak seharusnya ada, hapus tautan atau direktori itu sendiri alih-alih target tautan, dan mulai ulang Claude Code
* Jika penolakan berulang, ada proses yang mengganti, menautkan, atau menghapus entri di bawah direktori temp Claude Code saat sesi berjalan. Atur [`CLAUDE_CODE_TMPDIR`](/docs/id/env-vars) ke direktori yang tidak dikelola oleh apa pun dan mulai ulang

<h3 id="disk-quota-or-temp-filesystem-is-full">
  Disk quota or temp filesystem is full
</h3>

Claude Code menyimpan output setiap perintah Bash dan PowerShell ke file di bawah direktori temp-nya. Ketika perintah keluar dengan kode bukan nol dan tanpa output sama sekali, Claude Code memeriksa apakah sistem file yang menyimpan file itu kehabisan ruang atau inode, atau apakah kuota disk Anda di dalamnya sudah habis. Jika demikian, diagnostik muncul dalam hasil perintah sebagai pengganti output kosong:

```text wrap theme={null}
Your disk quota is full on the filesystem with Claude Code's temp directory /private/tmp/claude-501/-Users-you-my-project/1f0e62dc-4b0a-4f5e-9c2d-8a7b6c5d4e3f/tasks (EDQUOT), so any output this command printed was lost, and it may have failed because it could not write. Delete files you no longer need there, or restart Claude Code with CLAUDE_CODE_TMPDIR set to a directory on another filesystem.
```

Pesan menyebutkan apa yang habis:

* `Your disk quota is full ... (EDQUOT)`: kuota Anda sendiri di sistem file itu sudah habis. Kuota dapat penuh sementara sistem file masih menunjukkan ruang kosong
* `The filesystem with Claude Code's temp directory ..., or your disk quota on it, is full (ENOSPC)`: sistem file, atau kuota Anda di dalamnya, tidak memiliki ruang tersisa
* `Command output was lost: the temp filesystem at ... is full` atau `... is out of inodes`: sistem file hampir tidak memiliki ruang kosong tersisa, atau kehabisan inode

**What to do:**

* Hapus file yang tidak lagi Anda butuhkan di sistem file yang menyimpan direktori temp Claude Code. Untuk `EDQUOT`, hapus file yang dihitung terhadap kuota Anda sendiri. Untuk `out of inodes`, hapus banyak file alih-alih beberapa file besar, karena setiap file menggunakan satu inode berapa pun ukurannya
* Atau mulai ulang Claude Code dengan [`CLAUDE_CODE_TMPDIR`](/docs/id/env-vars) diatur ke direktori di sistem file yang memiliki ruang
* Kemudian minta Claude menjalankan perintah lagi. Output yang dicetaknya hilang, bukan terpotong

<h3 id="file-is-not-valid-utf-8">
  File is not valid UTF-8
</h3>

Claude menggunakan tool Edit atau NotebookEdit pada file yang byte-nya tidak dapat didekodekan sebagai UTF-8, dan Claude Code menolak perubahan tersebut. Tidak ada yang ditulis, jadi file tetap seperti semula. Tool tersebut menyimpan kembali seluruh file sebagai UTF-8, yang akan mengubah setiap byte yang tidak dapat didekodekannya menjadi karakter pengganti `U+FFFD`. Pesan muncul dalam hasil tool:

```text wrap theme={null}
File is not valid UTF-8. It may use a legacy encoding such as Windows-1252, Shift-JIS or GBK, or be binary. This tool saves the whole file as UTF-8, which would replace every byte it cannot decode with U+FFFD. Nothing was written. Make the change with a shell command that reads and writes the file in its own encoding, or ask the user whether to convert the file to UTF-8 first.
```

File yang seharusnya berformat UTF-8 juga mendapatkan pesan ini ketika berisi bahkan satu urutan byte yang tidak valid, karena pemeriksaan mencakup byte file secara keseluruhan.

**What to do:**

* Untuk mempertahankan file dalam encoding saat ini, biarkan Claude membuat perubahan dengan perintah shell yang membaca dan menulis file dalam encoding tersebut, seperti yang diinstruksikan pesan
* Untuk terus mengedit file dengan tool Edit, konversikan file ke UTF-8, atau perbaiki byte yang tidak valid dalam file yang seharusnya berformat UTF-8, lalu minta Claude melakukan edit lagi

Sebelum v2.1.296, Edit dan NotebookEdit menerapkan edit seperti itu dan menyimpan setiap byte yang tidak dapat didekodekan sebagai `U+FFFD`. Pada versi tersebut, perbarui Claude Code.

<h3 id="the-source-file-is-not-valid-utf-8-text">
  The source file is not valid UTF-8 text
</h3>

Claude mencoba menerbitkan [artifact](/docs/id/artifacts) dari file yang byte-nya tidak dapat didekodekan sebagai teks, atau yang teksnya sudah berisi karakter pengganti `U+FFFD`, jadi Claude Code menolak penerbitan sebelum mengunggah apa pun. Pesan muncul dalam hasil tool Artifact dan menyebutkan posisi pertama yang harus diperbaiki:

```text wrap theme={null}
file_path: the source file is not valid UTF-8 text (first invalid byte at line 12, column 40). It may be saved in another encoding or contain binary data. Rewrite it as UTF-8, then publish again. Nothing was published.

file_path: the source file has the replacement character U+FFFD at line 12, column 40, usually left where an earlier edit or paste lost a character. Replace it with the intended text (in HTML, write an intended U+FFFD as &#xFFFD;), then publish again. Nothing was published.
```

Claude Code mendekodekan file sebagai UTF-8, atau sebagai UTF-16 ketika file dimulai dengan byte-order mark UTF-16 little-endian. Ketika file UTF-16 seperti itu tidak dapat didekodekan, pesan pertama menyebutkan `UTF-16` dan tetap meminta Anda menulis ulang file sebagai UTF-8. Ketika ada lebih banyak posisi setelah posisi yang disebutkan, pesan menambahkan hitungan seperti `(+2 more)` setelah posisi tersebut.

**What to do:**

* Biasanya tidak ada: Claude menulis ulang file dan menerbitkannya lagi
* Jika file tersebut Anda tulis atau ekspor sendiri, simpan lagi sebagai UTF-8, dan ganti setiap `U+FFFD` dengan karakter yang hilang akibat edit, paste, atau konversi sebelumnya
* Untuk menampilkan `U+FFFD` yang disengaja di halaman, tuliskan sebagai `&#xFFFD;` dalam HTML alih-alih karakter literal

Sebelum v2.1.267, Claude Code mengunggah file seperti itu tanpa memeriksanya, dan server yang menolak penerbitan sebagai gantinya.

<h3 id="not-published-that-file-is-on-a-network-share">
  Not published: that file is on a network share
</h3>

Claude mencoba menerbitkan [artifact](/docs/id/artifacts) dari file di jalur yang menyebutkan host jaringan:

* Di Windows, jalur `\\server\share` yang tidak berada di bawah drive jaringan yang dipetakan dan Anda berikan saat peluncuran dengan [`--add-dir`](/docs/id/cli-reference#cli-flags)
* Di macOS atau Linux, jalur automount seperti `/net/<host>/page.html`

Mencari jalur seperti itu akan menghubungi host yang disebutkannya, dan di Windows kontak tersebut dapat mengirimkan kredensial Anda ke host itu. Claude Code menolak menerbitkan file dan tidak membacanya. Penolakan muncul dalam hasil tool Artifact:

```text theme={null}
Not published: that file is on a network share. Publish a file from this session's folders instead.
```

**What to do:**

* Tidak ada, jika Anda tidak membutuhkan file yang persis itu: pesan memberi tahu Claude untuk menerbitkan file dari folder sesi itu sendiri sebagai gantinya
* Untuk menerbitkan file yang persis itu, salin ke folder di disk lokal dan minta lagi
* Di Windows, agar Claude dapat menerbitkan langsung dari share, petakan share tersebut ke huruf drive dan berikan drive tersebut saat Anda memulai Claude Code. Di PowerShell, misalnya, jalankan `net use Z: \\server\share` lalu `claude --add-dir Z:\`. Claude kemudian dapat menerbitkan file dari drive tersebut. Menambahkan drive di tengah sesi dengan `/add-dir` tidak cukup.
* Di macOS atau Linux, mount share tersebut di sebuah direktori seperti di bawah `/mnt` atau `/Volumes`, dan terbitkan dari jalur itu alih-alih jalur automount

<h3 id="reading-a-local-file-from-outside-the-connected-folders">
  Reading a local file from outside the connected folders in a Cowork session
</h3>

Dalam sesi [Cowork](https://claude.com/docs/cowork/overview) yang berjalan di mesin Anda di aplikasi Claude Desktop, Claude menyebutkan file lokal untuk [artifact](/docs/id/artifacts). Claude Code tidak dapat mengonfirmasi bahwa file tersebut adalah file biasa di dalam folder yang terhubung ke sesi: jalurnya berada di luar folder tersebut, melewati tautan simbolis, atau dieja dengan cara yang dapat menunjuk ke file yang berbeda dari yang terlihat. Membaca file seperti itu memerlukan persetujuan Anda, dan dalam sesi yang tidak dapat menampilkan kartu persetujuan, seperti sesi yang diatur untuk melewati semua persetujuan, Claude Code menolak pembacaan.

Penolakan muncul dalam hasil tool Artifact; ketika file tidak dapat diperiksa sama sekali, penolakan menyebutkan kegagalan itu sebagai gantinya:

```text wrap theme={null}
Reading a local file from outside this session's connected folders, or through a link, needs the approval card, and no one can answer it in this Cowork session. Use a plain file inside the connected folders; do not retry this file in this session.

cannot read file_path (ENOENT) — the file could not be examined, and no one can answer the approval card in this Cowork session. Check that the file exists as a plain file inside the connected folders, then retry with that path.
```

**What to do:**

* Biasanya tidak ada: pesan memberi tahu Claude untuk menggunakan file biasa di dalam folder yang terhubung sebagai gantinya
* Untuk memasukkan file yang persis itu ke dalam artifact, salin ke salah satu folder yang terhubung ke sesi sebagai file biasa, bukan symlink, dan minta lagi

<h3 id="webfetch-cannot-fetch-localhost">
  WebFetch cannot fetch localhost
</h3>

Claude memanggil [WebFetch](/docs/id/tools-reference#webfetch-tool-behavior) dengan URL yang nama host-nya tidak memiliki titik, seperti `http://localhost:3000` atau nama intranet tunggal seperti `http://wiki/`. WebFetch menolak URL ini sebelum membuat permintaan apa pun:

```text wrap theme={null}
WebFetch cannot fetch localhost or other hostnames without a dot. To reach a local server, use Bash with curl instead.
```

**What to do:**

* Biasanya tidak ada: pesan mengarahkan Claude ke `curl` melalui tool Bash, yang dapat menjangkau server lokal dan intranet

Sebelum v2.1.268, WebFetch melaporkan URL ini dengan kesalahan `Invalid URL` generik.

<h3 id="webfetch-domain-safety-check-failed">
  WebFetch domain safety check failed
</h3>

Sebelum mengambil URL, WebFetch mengirim nama host URL ke `api.anthropic.com` untuk memeriksanya terhadap [daftar blokir keamanan domain](/docs/id/data-usage#webfetch-domain-safety-check) Anthropic. Jika pemeriksaan tidak dapat diselesaikan, WebFetch tidak dapat mengonfirmasi bahwa domain aman, jadi tidak mengambil halaman dan hasil tool berisi salah satu pesan berikut sebagai gantinya:

```text wrap theme={null}
The safety check for domain example.com is rate-limited (too many domain checks from this network; the limit is shared and can stay exhausted for minutes). Do not retry WebFetch in a loop or sleep to wait it out; continue without this page and report that its safety check was rate-limited. A single later attempt is fine; if that is rate-limited too, stop.

Unable to verify if domain example.com is safe to fetch. This may be due to network restrictions or enterprise security policies blocking claude.ai.
```

* `rate-limited`: endpoint pemeriksaan menjawab dengan HTTP `429`. Pesan memberi tahu Claude untuk melanjutkan tanpa halaman tersebut dan mencoba ulang paling banyak sekali nanti. Claude Code tidak melakukan cache terhadap pemeriksaan yang gagal, jadi pengambilan domain itu di kemudian hari menjalankan pemeriksaan lagi. Jika sesi di jaringan Anda sering mengalami ini, Anda dapat melewati pemeriksaan dengan [`skipWebFetchPreflight: true`](/docs/id/settings-reference#skipwebfetchpreflight) dalam pengaturan.
* `Unable to verify`: permintaan pemeriksaan gagal, habis waktu, atau mendapat status kesalahan lain. Jika jaringan Anda memblokir `api.anthropic.com`, tambahkan domain itu ke allowlist, atau lewati pemeriksaan dengan [`skipWebFetchPreflight: true`](/docs/id/settings-reference#skipwebfetchpreflight) dalam pengaturan.

Sebelum v2.1.286, pesan rate-limited berbunyi `The safety check for domain example.com is temporarily rate-limited (too many domain checks from this network). Retry after about a minute; retrying sooner will fail the same way.`.
Sebelum v2.1.285, pemeriksaan yang terkena rate limit dilaporkan dengan pesan `Unable to verify` sebagai gantinya.

<h2 id="background-session-errors">
  Kesalahan sesi latar belakang
</h2>

[Sesi latar belakang](/docs/id/agent-view) berjalan tanpa terminal interaktif mereka sendiri, jadi perintah yang membutuhkan satu berperilaku berbeda di sana. Pesan-pesan ini muncul dalam transkrip sesi latar belakang, di terminal yang terhubung ke satu, di sesi atau shell tempat Anda mengirim, atau, untuk [entri worktree-guard](#write-or-command-blocked-because-the-path-cannot-be-safely-resolved) di bawah, di sesi apa pun yang terisolasi dalam worktree atau menjalankan subagent yang terisolasi worktree; di mana pesan spesifik untuk satu surface, entrinya mengatakan demikian.

<h3 id="commands-refused-in-a-background-session">
  Perintah ditolak dalam sesi latar belakang
</h3>

Perintah yang membuka dialog interaktif tidak dapat melakukannya saat tidak ada terminal yang terhubung ke sesi latar belakang. `/install-github-app`, daftar pengaturan `/mcp`, dan tindakan autentikasi dalam menu server MCP merespons dengan pesan. Untuk `/install-github-app` dan daftar pengaturan `/mcp`, sesi juga muncul di bawah **Needs input** dalam [tampilan agent](/docs/id/agent-view) sehingga Anda dapat menemukannya, melampirkan, dan menjalankan perintah lagi. Saat terminal terhubung, perintah-perintah ini berfungsi secara normal.

Sebelum v2.1.216, sesi tidak muncul di bawah **Needs input** setelah `/install-github-app` atau daftar pengaturan `/mcp` ditolak. Di v2.1.213 hingga v2.1.215, perintah masih berfungsi saat terminal terhubung, dan pesan penolakan memberi tahu Anda untuk melampirkan dan menjalankan perintah lagi. Dari v2.1.208 hingga v2.1.212, Claude Code menolaknya bahkan saat terminal terhubung, dengan pesan seperti `Can't open MCP settings in a background session`; pada versi tersebut, jalankan perintah dari sesi `claude` biasa sebagai gantinya, atau tingkatkan. Sebelum v2.1.208, mereka membuka dialog mereka di dalam sesi latar belakang. Di v2.1.208 saja, Claude Code juga menolak pemilih `/model` dalam sesi latar belakang, dan `/upgrade` mencetak URL upgrade alih-alih membuka browser.

Kata-kata tersebut menamai perintah. Daftar pengaturan `/mcp` melaporkan:

```text theme={null}
Can't open MCP settings while no terminal is attached to this background session. This session now shows "needs input" in agent view — open it and run /mcp to manage servers, or use `/mcp enable|disable|reconnect <server>` to steer without the panel.
```

**Yang harus dilakukan:**

* Lampirkan ke sesi dari tampilan agent dan jalankan perintah lagi
* Atau gunakan formulir yang dinamai pesan, seperti `/mcp reconnect <server>`, `/mcp enable`, atau `/mcp disable`, yang berfungsi tanpa melampirkan

<h3 id="write-or-command-blocked-because-the-path-cannot-be-safely-resolved">
  Penulisan atau perintah diblokir karena jalur tidak dapat diselesaikan dengan aman
</h3>

Claude mengatasi file atau direktori kerja melalui ejaan yang [penjaga isolasi worktree](/docs/id/agent-view#how-file-edits-are-isolated) tidak dapat menyelesaikan ke satu lokasi yang dapat diverifikasi. Penjaga memeriksa penulisan dan direktori kerja perintah di [sesi apa pun yang terisolasi dalam worktree](/docs/id/worktrees#how-claude-code-enforces-isolation), interaktif atau latar belakang, dan di [subagent yang terisolasi worktree](/docs/id/worktrees#isolate-subagents-with-worktrees). Ini menyelesaikan symlink sebelum memeriksa bahwa operasi tidak mencapai checkout bersama, dan ketika resolusi gagal, ia memblokir operasi daripada membiarkannya mendarat di sana. Pesan menamai bentuk jalur yang ditolaknya dan cara mencoba lagi:

```text theme={null}
This write was blocked because the path is spelled in a form that cannot be safely resolved (for example through a symlink storing a raw dot segment, a network-share or device-namespace shape, or an unreadable ancestor directory). If the file is inside the worktree /path/to/worktree, address it by its direct symlink-free path instead.
```

Perintah yang diblokir melaporkan penyebab yang sama untuk direktori kerjanya dan berakhir dengan `re-run the command from its direct symlink-free path`. Sebelum v2.1.217, penjaga membandingkan ejaan jalur tanpa menyelesaikan symlink, jadi ejaan ini tidak diblokir dan penulisan yang dirutekan melalui symlink dapat mendarat di checkout bersama.

**Yang harus dilakukan:**

* Biasanya tidak ada: pesan lengkap masuk ke Claude sebagai kesalahan tool, dan Claude mencoba lagi dengan jalur langsung yang dinamainya. Untuk pengeditan file yang diblokir, tampilan percakapan menampilkan hanya baris `Error editing file` pendek; pesan lengkap muncul dalam tampilan transkrip, yang Anda buka dengan `Ctrl+O`. Perintah yang diblokir mencetaknya dalam output perintahnya.
* Jika blokir berulang pada file yang sama, jalur kemungkinan besar berjalan melalui symlink yang di-commit yang targetnya berisi `..`, seperti `docs/current -> ../README.md`; minta Claude untuk mengedit file target dengan jalur sebenarnya alih-alih melalui tautan

<h3 id="write-or-command-blocked-because-the-path-names-a-network-location">
  Penulisan atau perintah diblokir karena jalur menamai lokasi jaringan
</h3>

Claude mengatasi file atau direktori kerja melalui jalur yang menamai drive yang bukan di mesin Anda, bagian UNC seperti `\\server\share\file` atau jalur automount `/net`, sementara checkout sesi berada di disk lokal. [Penjaga isolasi worktree](#write-or-command-blocked-because-the-path-cannot-be-safely-resolved) yang sama tidak dapat memverifikasi bahwa jalur seperti itu tetap keluar dari checkout bersama, jadi ia memblokir operasi. Mengisolasi sesi dalam worktree tidak menghilangkan blokir. Pesan menamai bentuk jalur yang digunakan sebagai gantinya:

```text theme={null}
This write was blocked because the path is network-shaped (a UNC share or /net automount spelling) while this session's checkout is local. Isolating cannot unblock it. If the file is genuinely inside the worktree /path/to/worktree, address it by its local, plainly-spelled path instead.
```

Perintah yang diblokir melaporkan penyebab yang sama untuk direktori kerjanya dan berakhir dengan `re-run the command from its local, plainly-spelled path`. Sebelum v2.1.217, penjaga hanya membandingkan teks jalur, jadi mengatasi file di dalam checkout melalui jalur UNC atau `/net` tidak diblokir.

**Yang harus dilakukan:**

* Biasanya tidak ada: Claude mencoba lagi dengan ejaan lokal yang diminta pesan

<h3 id="command-blocked-by-the-worktree-isolation-checks">
  Perintah diblokir oleh pemeriksaan isolasi worktree
</h3>

Claude menjalankan perintah Bash, [PowerShell](/docs/id/tools-reference#powershell-tool), atau [Monitor](/docs/id/tools-reference#monitor-tool) dalam [sesi yang terisolasi dalam worktree](/docs/id/worktrees#how-claude-code-enforces-isolation), dan Claude Code menolaknya karena salah satu alasan berikut:

* Perintah akan berjalan di checkout utama atau di worktree lain. Pesan mengatakan direktori kerjanya `resolved to the shared checkout` atau `is in a different worktree`.
* Perintah Bash atau Monitor menunjukkan git ke checkout utama.
* Claude Code tidak dapat memverifikasi dari teks perintah Bash atau Monitor bahwa git apa pun yang dijalankan perintah tetap berada di dalam worktree. Perintah yang tidak pernah menamai git masih dapat ditolak karena alasan ini, karena memperluas indirection variabel seperti `${!name}` atau menjalankan substitusi fungsi Bash seperti `${ command; }` menghasilkan nilai pada runtime yang dapat menjadi perintah itu sendiri.

Pesan mengatakan `is isolated in the worktree <path>, but this command`, diikuti oleh alasannya, seperti perintah yang teksnya tidak dapat diverifikasi Claude Code:

```text wrap theme={null}
This session is isolated in the worktree /path/to/worktree, but this command evaluates ${!x@P} arithmetically inside a construct too complex to verify, which can run a command hidden in a variable's value. Refusing to run it — a worktree-isolated session's git operations must target its own worktree. Split it into plain, separate commands and run them from /path/to/worktree.
```

**Yang harus dilakukan:**

* **Git yang ditunjukkan ke checkout utama, atau teks perintah yang tidak dapat diverifikasi**: tidak ada. Claude membaca pesan dan menulis ulang perintah dengan cara yang diminta kalimat terakhirnya. Jika perintah yang Anda minta terus ditolak karena ekspansi dalam teksnya, ejakan nilai yang ditandai secara harfiah dan jalankan git sebagai perintah biasa tersendiri dari dalam worktree
* Untuk bertindak pada checkout utama dengan sengaja, jalankan perintah sendiri di terminal di luar sesi

<h3 id="this-session-has-no-saved-transcript">
  Sesi ini tidak memiliki transkrip yang disimpan
</h3>

Anda melampirkan ke sesi yang Anda [pindahkan ke latar belakang](/docs/id/agent-view#from-inside-a-session) dengan `←` atau `/background` dan yang berhenti sebelum menjalankan gilirannya sendiri. Claude Code tidak dapat menemukan percakapan tempat Anda memindahkannya, jadi sesi tidak memiliki apa pun untuk dilanjutkan. Pesan berakhir dengan perintah `claude respawn` untuk sesi ini:

```text theme={null}
This session has no saved transcript — it was stopped before its first response finished. If it was backgrounded from another conversation, that one is still intact; `claude respawn <id>` starts this one fresh.
```

Membuka baris sesi yang sama dalam [tampilan agent](/docs/id/agent-view) menampilkan `Press enter again to restart this session fresh` di bawah daftar sebagai gantinya, dan `Enter` kedua pada baris memulai ulang sesi dengan percakapan kosong.

**Yang harus dilakukan:**

* Untuk memulai sesi yang dihentikan secara segar, jalankan `claude respawn <id>` dengan ID dari pesan, atau tekan `Enter` dua kali pada barisnya dalam tampilan agent
* Jika sesi memang menyelesaikan respons dan Anda masih melihat penolakan ini pada versi sebelum v2.1.214, folder yang tidak dapat dibaca di `~/.claude/projects` dapat membuat pemindaian transkrip melewatkan percakapan yang disimpan; perbarui ke v2.1.214 atau lebih baru, yang mentoleransi folder yang tidak dapat dibaca selama pemindaian

<h3 id="this-session-is-running-in-another-terminal">
  Sesi ini berjalan di terminal lain
</h3>

Anda membuka baris sesi yang dihentikan dalam [tampilan agent](/docs/id/agent-view), dan percakapan yang disimpannya sudah terbuka dalam proses Claude Code langsung lain di mesin ini, jadi Claude Code menolak untuk memulai proses kedua yang akan menulis ke transkrip yang sama. Pesan mana yang Anda lihat tergantung pada [apa yang memegang percakapan](/docs/id/agent-view#opening-a-session-says-the-conversation-is-already-open):

```text theme={null}
Can't open — this session is running in another terminal
This conversation is already open in another running Claude session — use that one, or close it and try again
```

* **`running in another terminal`**: terminal memegang percakapan, misalnya yang tempat Anda melanjutkannya dengan `claude --resume` atau `/resume`. Baris juga menampilkan `Open in a terminal`.
* **`already open in another running Claude session`**: proses Claude Code non-interaktif lain menahannya, misalnya proses [sesi latar belakang](/docs/id/agent-view#the-supervisor-process) untuk percakapan yang sama yang belum keluar.

**Yang harus dilakukan:**

* Lanjutkan percakapan dalam proses yang memilikinya, atau keluar dari proses itu dan buka baris lagi

Sebelum v2.1.248, hanya penolakan `already open in another running Claude session` yang ada: percakapan yang dilanjutkan dalam terminal tidak dihitung sebagai terbuka, dan membuka baris memulai proses Claude Code kedua yang menulis ke percakapan yang sama.

<h3 id="this-sessions-saved-conversation-is-no-longer-on-disk">
  Percakapan yang disimpan sesi ini tidak lagi ada di disk
</h3>

Anda membuka [sesi latar belakang](/docs/id/agent-view) yang berakhir saat layanan latar belakang mati, dan [pembersihan transkrip](/docs/id/settings-reference#cleanupperioddays) telah menghapus percakapan yang disimpannya, misalnya setelah mesin mati selama berminggu-minggu. Membuka baris seperti itu biasanya [melanjutkan percakapan yang disimpannya](/docs/id/agent-view#sessions-show-as-failed-after-shutdown). Tanpa apa pun yang tersisa untuk dilanjutkan, Claude Code menolak daripada menjalankan kembali prompt asli sesi tanpa bertanya:

```text theme={null}
This session's saved conversation is no longer on disk (it ended while the background service was off, and old transcripts are cleaned up), so there is nothing to resume. `claude rm 7c5dcf5d` deletes the row; `claude respawn 7c5dcf5d` runs its original prompt again instead.
```

`claude attach <id>` mencetak teks ini. Dalam tampilan agent, footer lebih pendek dan berakhir dengan `ctrl+x deletes the row`.

**Yang harus dilakukan:**

* Jalankan `claude rm <id>` untuk menghapus baris. Ketika salah satu dari [kasus yang disimpan](/docs/id/agent-view#what-deleting-a-session-removes) berlaku, `claude rm` menyimpan baris dan worktree sebagai gantinya dan menamai alasannya
* Untuk menjalankan prompt asli sesi lagi sebagai percakapan segar, jalankan `claude respawn <id>`

Sebelum v2.1.248, membuka baris seperti itu menjalankan kembali prompt asli sesi alih-alih menolak, menarik tugas yang berusia berminggu-minggu kembali ke latar depan.

<h3 id="worktree-has-commits-that-are-not-pushed-anywhere">
  Worktree memiliki commit yang tidak didorong ke mana pun
</h3>

Anda mencoba menghapus [sesi latar belakang](/docs/id/agent-view#what-deleting-a-session-removes) yang worktree-nya menyimpan commit yang Claude Code tidak dapat memastikan disimpan di tempat lain. Claude Code menyimpan worktree dan baris sesi daripada menghancurkan commit yang tidak terlihat. `claude rm` menamai branch dan commit yang tidak didorong, dan mengatakan cara melanjutkan:

```text theme={null}
kept 7c5dcf5d — its worktree is still at “/home/you/project/.claude/worktrees/fix-login”
  2 unpushed commits on “claude/fix-login”: a1b2c3d “Fix login flow” and 1 more. They exist on no remote, so deleting the worktree would lose them.
  push them and run 'claude rm 7c5dcf5d' again, or discard the worktree and its commits: claude rm 7c5dcf5d --discard-unpushed a1b2c3d000000000000000000000000000000000@0123456789abcdef0123456789abcdef
```

Ketika Claude Code tidak dapat merangkum commit, baris detail berbunyi `The worktree has unpushed commits` sebagai gantinya. Dalam [tampilan agent](/docs/id/agent-view), baris sesi menampilkan `not deleted` dengan alasan yang sama.

Commit pada remote tidak memblokir penghapusan. Begitu juga commit pada salinan lokal branch default remote `origin` Anda, selama branch itu diperiksa dalam checkout utama Anda, direktori repositori itu sendiri daripada worktree.

**Yang harus dilakukan:**

* Untuk menyimpan commit, dorong branch worktree, atau gabungkan ke dalam branch default yang diperiksa dalam checkout utama Anda, kemudian hapus sesi lagi
* Untuk membuang commit, jalankan perintah `claude rm <id> --discard-unpushed` yang dicetak pesan, atau tekan `Ctrl+X` dua kali pada baris sesi dalam tampilan agent lagi. Ini menghapus sesi dan worktree bersama dengan branch-nya, commit yang tidak didorong, dan perubahan yang belum di-commit. Jika worktree telah mendapatkan commit sejak penolakan, Claude Code menyimpannya lagi dan menampilkan status yang diperbarui
* Ketika pesan mengatakan worktree juga dicatat oleh sesi selesai lain, menghapus lagi tidak membuangnya: dorong commit, kemudian hapus sesi lagi

Sebelum v2.1.268, `claude rm` menempatkan ringkasan commit pada baris `kept` itu sendiri. Ketika `claude rm` tidak dapat merangkum commit, baris `kept` berbunyi `worktree has commits that are not pushed anywhere` sebagai pengganti ringkasan.

Sebelum v2.1.260, pesan tidak menamai branch atau commit, dan menghapus lagi ditolak dengan cara yang sama: menghapus sesi tanpa mendorong berarti menghapus worktree sendiri dengan `git worktree remove --force <path>`, kemudian menjalankan `claude rm <id>` lagi.

Sebelum v2.1.248, branch default yang diperiksa dalam checkout utama Anda tidak dihitung: branch yang sudah Anda gabungkan di sana masih memicu penolakan ini sampai commit-nya mencapai remote.

<h3 id="terminal-host-process-died">
  Proses host terminal mati
</h3>

Setiap terminal [sesi latar belakang](/docs/id/agent-view) berjalan dalam proses host di bawah layanan latar belakang, dan proses itu mati saat layanan masih menyimpan koneksinya, jadi sesi tidak dapat dijangkau.

Di Linux dan WSL, layanan latar belakang memeriksa setiap proses host setiap beberapa detik, menandai sesi gagal ketika proses telah keluar tetapi koneksinya ke layanan tidak pernah ditutup, dan menampilkan alasannya pada barisnya dalam [tampilan agent](/docs/id/agent-view#read-session-state):

```text theme={null}
terminal host process died — press Enter to restart
```

Dari shell, `claude attach <id>` memulai ulang sesi yang sudah ditandai gagal untuk host yang mati, dan sebaliknya mencetak penyebab dan keluar:

```text theme={null}
Couldn't attach to <id> — This session's terminal host process died (the conversation is saved) — run `claude attach <id>` again to restart it on a fresh host.
```

Percakapan disimpan bagaimanapun.

Baris yang menjalankan [perintah shell](/docs/id/agent-view#run-a-shell-command) sebagai gantinya menampilkan `terminal host process died — its output is gone; the command was not run again`, dan `claude attach` mencetak `This command's terminal host process died — its output is gone and the command was not run again`. Claude Code tidak pernah menjalankan kembali perintah untuk Anda.

**Yang harus dilakukan:**

* Dalam tampilan agent, tekan `Enter` pada baris yang gagal; sesi dimulai ulang pada proses host segar dan percakapan dilanjutkan
* Dari shell, jalankan `claude attach <id>` lagi. Claude Code mencetak `Session <id>'s terminal host died — restarting it on a fresh one…` dan membuka kembali sesi
* Anda tidak dapat memulai ulang baris perintah shell dengan cara ini; kirim perintah lagi untuk menjalankannya kembali

Sebelum v2.1.247, proses host yang mati dapat melewati setiap pemeriksaan kelangsungan hidup yang dijalankan layanan latar belakang, jadi membuka sesi menampilkan `opening… · esc to cancel` tanpa batas dan `claude attach <id>` menunggu tanpa melaporkan kesalahan.

<h3 id="session-isnt-responding">
  Sesi tidak merespons
</h3>

Anda membuka [sesi latar belakang](/docs/id/agent-view) dan layanan latar belakang menerima pembukaan, tetapi tidak ada output yang tiba selama sekitar sepuluh detik, jadi Claude Code menyimpulkan bahwa proses yang menyampaikan terminal sesi tidak dapat memberikan output, dan mengakhiri upaya alih-alih menunggu.

Dalam tampilan agent, Claude Code menawarkan restart dalam footer:

```text theme={null}
Press enter again to restart this session — it isn't responding (its conversation is saved and resumes).
```

Dari shell, `claude attach <id>` mencetak penyebab dan keluar:

```text theme={null}
Couldn't attach to <id> — Session isn't responding — `claude stop <id>`, then `claude attach <id>` restarts it (the conversation is saved).
```

Claude Code tidak pernah memulai ulang baris yang menjalankan [perintah shell](/docs/id/agent-view#run-a-shell-command) untuk Anda, karena restart akan menjalankan perintah lagi.

**Yang harus dilakukan:**

* Dalam tampilan agent, tekan `Enter` pada baris yang sama lagi. Claude Code menghentikan proses yang tidak responsif dan memulai ulang sesi, dan percakapan dilanjutkan. Tidak ada yang dihentikan tanpa tekan kedua itu
* Dari shell, jalankan `claude stop <id>`, kemudian `claude attach <id>`
* Untuk baris perintah shell, tekan `Ctrl+X` dalam tampilan agent atau jalankan `claude stop <id>` untuk menghentikannya; kirim perintah lagi untuk menjalankannya kembali

<h3 id="session-was-stopped-while-the-respawn-was-in-flight">
  Sesi dihentikan saat respawn sedang dalam perjalanan
</h3>

Anda membuka [sesi latar belakang](/docs/id/agent-view) yang prosesnya tidak berjalan, dan saat Claude Code memulainya kembali, proses Claude Code lain menghentikannya, misalnya `claude stop` di terminal lain. Claude Code menyimpan sesi tetap dihentikan:

```text theme={null}
Session <id> was stopped while the respawn was in flight
```

Membuka sesi yang baru saja Anda kirim, saat prosesnya masih dimulai, menunggu proses sebagai gantinya. Sebelum v2.1.246, membukanya pada saat itu dapat menghentikannya dan menampilkan pesan ini.

**Yang harus dilakukan:**

* Jika Anda tidak menghentikan sesi, buka barisnya lagi dalam tampilan agent atau jalankan `claude respawn <id>` untuk memulainya kembali
* Jika Anda menghentikannya sendiri, tidak ada yang tersisa untuk dilakukan: sesi tetap dihentikan

<h3 id="session-agent-no-longer-available">
  Agent sesi tidak lagi tersedia
</h3>

Anda melanjutkan sesi yang menjalankan [agent khusus](/docs/id/sub-agents#invoke-subagents-explicitly), dimulai dengan `--agent` atau pengaturan `agent`, dan Claude Code tidak menemukan agent dengan nama itu. Ini mencari direktori asli sesi terlebih dahulu, ketika Anda telah [mempercayai workspace itu](/docs/id/permissions#project-allow-rules-and-workspace-trust), kemudian direktori tempat Anda melanjutkan. Sesi masih dilanjutkan, tetapi dengan tool default, jadi pembatasan tool agent tidak lagi berlaku:

```text theme={null}
This session was running agent 'code-reviewer', which is no longer available (no agent by that name in /home/you/project). Continuing with the default tools and system prompt — the agent's tool restrictions no longer apply. To restore it, re-create the agent, or resume with an explicit --agent <name>.
```

Peringatan hanya menamai direktori yang Claude Code cari, dan muncul dalam percakapan yang dilanjutkan apakah Anda membangunkan [sesi latar belakang](/docs/id/agent-view), menjalankan `/resume` atau `claude --resume`, atau melanjutkan dalam [mode non-interaktif](/docs/id/headless), di mana ia juga masuk ke stderr. Sesi menggunakan `--input-format stream-json` tidak menampilkannya, karena Agent SDK menyediakan agent setelah startup.

Claude Code tidak menyimpan fallback ke sesi, jadi peringatan berulang pada setiap resume sampai Anda bertindak. Agent `claude` bawaan tidak memicu peringatan, karena jatuh kembali ke set tool default tidak mengubah apa pun untuk itu. Sebelum v2.1.216, Claude Code secara diam-diam melanjutkan sebagai agent default, dan pencarian mencakup hanya direktori tempat Anda melanjutkan, jadi agent yang bersifat proyek hilang pada resume apa pun dari direktori lain.

**Yang harus dilakukan:**

* Buat ulang file agent di `.claude/agents/<name>.md` dalam proyek sesi, atau di `~/.claude/agents/<name>.md` untuk agent pribadi, kemudian lanjutkan lagi
* Atau lanjutkan dengan `--agent <name>` yang menamai agent yang memang ada, untuk menjalankan sesi sebagai agent itu sebagai gantinya
* Jika agent bersifat proyek dan Anda belum mempercayai direktori asli sesi, jalankan Claude Code di sana sekali, terima dialog kepercayaan, kemudian lanjutkan lagi

<h3 id="restarted-after-its-next-loop-wakeup-was-due">
  Sesi ini dimulai ulang setelah wakeup /loop berikutnya jatuh tempo
</h3>

Sebuah [`/loop` yang mengatur tempo sendiri](/docs/id/scheduled-tasks#let-claude-choose-the-interval) dalam [sesi latar belakang](/docs/id/agent-view) telah berhenti. Proses sesi berakhir saat loop sedang menunggu wakeup berikutnya, dan wakeup itu jatuh tempo sebelum [proses berikutnya](/docs/id/agent-view#the-supervisor-process) sesi dimulai. Wakeup yang terlewat tidak dijalankan terlambat. Pemberitahuan menyebutkan seberapa terlambat wakeup tersebut ketika sesi dimulai ulang:

```text theme={null}
This session restarted 12m after its next /loop wakeup was due, so that wakeup will not fire. The loop stays stopped until Claude schedules it again: reply to continue it.
```

Sebelum v2.1.295, loop berhenti dalam situasi ini tanpa pemberitahuan.

**Yang harus dilakukan:**

* Untuk melanjutkan loop, [balas ke sesi](/docs/id/agent-view#peek-and-reply) dan katakan demikian, seperti `keep the loop running`. Claude membaca pemberitahuan bersama balasan Anda dan dapat menjadwalkan wakeup berikutnya
* Jika Anda sudah selesai dengan loop, tidak perlu melakukan apa pun. Loop sudah berhenti

<h3 id="claude_code_process_wrapper-launcher-errors">
  Kesalahan peluncur CLAUDE\_CODE\_PROCESS\_WRAPPER
</h3>

[`CLAUDE_CODE_PROCESS_WRAPPER`](/docs/id/corporate-launcher) diatur, dan nilainya tidak dapat digunakan, jadi Claude Code menolak untuk memulai proses yang terpengaruh daripada menjalankannya tanpa peluncur. Masalah konfigurasi dilaporkan dengan pesan yang dimulai dengan nama variabel dan menyatakan alasannya, misalnya:

```text theme={null}
CLAUDE_CODE_PROCESS_WRAPPER: launcher `/opt/corp/launcher` is not an executable regular file
```

Peluncur yang dimulai tetapi keluar tanpa mengganti dirinya dengan Claude Code gagal sesi yang dimulainya, dan baris sesi dalam tampilan agent melaporkan bahwa peluncur `must exec, not daemonize`, diikuti oleh apa pun yang dicetak peluncur. Sesi yang tidak dapat dimulai atau menjangkau layanan latar belakang karena peluncur melaporkan masalah peluncur sebagai alasan di dalam `Couldn't reach the background service (...)`.

**Yang harus dilakukan:**

* Atur variabel ke jalur absolut dari executable yang berakhir dengan memanggil `exec "$@"`. Lihat [kontrak peluncur](/docs/id/corporate-launcher#the-launcher-contract) untuk kontrak lengkap
* Periksa `/status`, yang menampilkan perintah peluncuran yang diselesaikan dalam entri Self-exec-nya dan memperingatkan ketika layanan latar belakang yang berjalan tidak cocok, atau jalankan `claude daemon status` dari shell
* Setelah memperbaiki nilai dalam blok `env` dari [pengaturan](/docs/id/corporate-launcher#set-up-the-launcher), mulai ulang layanan latar belakang dengan `claude daemon stop --any` sehingga pengiriman berikutnya memulai yang dibungkus

<h3 id="eunknown-when-starting-a-background-session">
  EUNKNOWN saat memulai sesi latar belakang
</h3>

Windows menolak untuk memulai program dengan kode kesalahan yang tidak memiliki nama standar, jadi kegagalan muncul sebagai `EUNKNOWN`. Pemicu biasanya adalah kebijakan pembatasan perangkat lunak, seperti Group Policy atau AppLocker, memblokir program yang dimulai. Kesalahan muncul ketika Anda memulai [sesi latar belakang](/docs/id/agent-view) dengan `/background` atau `claude --bg`:

```text theme={null}
Couldn't reach the background service (spawn background service: EUNKNOWN: unknown error, uv_spawn) — run 'claude daemon status'
```

Pada beberapa akun pesan mengatakan `daemon` sebagai pengganti `background service`.

Pada instalasi npm, `EUNKNOWN` yang muncul saat `npm install -g @anthropic-ai/claude-code` mengganti biner memiliki penyebab yang sama dengan [`EACCES` selama reinstal](#eacces-when-starting-a-background-session) dan hilang ketika Anda mencoba lagi setelah instalasi selesai.

Claude Code memulai layanan latar belakang melalui PowerShell sehingga layanan bertahan menutup terminal, menggunakan PowerShell 7 ketika diinstal dan Windows PowerShell 5.1 sebaliknya. Ketika tidak ada PowerShell yang dapat berjalan, Claude Code memulai layanan secara langsung sebagai gantinya, jadi kebijakan yang memblokir hanya PowerShell tidak menyebabkan kesalahan ini.

Sebelum v2.1.212, Claude Code hanya menggunakan Windows PowerShell 5.1 untuk memulai layanan, jadi mesin apa pun di mana Group Policy memblokir PowerShell 5.1 gagal dengan `Couldn't start the session — EUNKNOWN: unknown error, uv_spawn`, bahkan dengan PowerShell 7 diinstal.

**Yang harus dilakukan:**

* Jika pesan berbunyi `Couldn't start the session`, tingkatkan ke v2.1.212 atau lebih baru. Pada versi sebelumnya Anda juga dapat menjalankan `claude daemon run` di terminal terpisah terlebih dahulu, kemudian mulai sesi latar belakang lagi. Perintah itu menjalankan layanan latar belakang di latar depan terminal, jadi layanan berlangsung hanya selama terminal itu tetap terbuka.
* Jika instalasi npm mengganti biner, tunggu hingga selesai, kemudian mulai sesi latar belakang lagi
* Jika kesalahan muncul pada v2.1.212 atau lebih baru saat tidak ada instalasi npm yang berjalan, periksa dengan administrator Windows Anda apakah kebijakan pembatasan memblokir executable Claude Code
* Jika layanan latar belakang berhenti ketika Anda menutup terminal, Claude Code memulainya tanpa PowerShell. Instal PowerShell 7, atau minta administrator Anda untuk membuka blokir PowerShell, sehingga layanan dapat bertahan lebih lama dari terminal.

<h3 id="eacces-when-starting-a-background-session">
  EACCES saat memulai sesi latar belakang
</h3>

Claude Code tidak dapat menjalankan binernya sendiri untuk memulai [layanan latar belakang](/docs/id/agent-view#the-supervisor-process) yang menyelenggarakan sesi latar belakang. Pada instalasi npm, ini biasanya berarti `npm install -g @anthropic-ai/claude-code` mengganti biner pada saat itu, apakah Anda menjalankannya atau [auto-updater](/docs/id/setup#auto-updates) melakukannya. Kesalahan muncul ketika Anda membuka sesi dari [tampilan agent](/docs/id/agent-view):

```text theme={null}
Couldn't start the background service — spawn background service: EACCES: permission denied, posix_spawn '/usr/local/lib/node_modules/@anthropic-ai/claude-code/bin/claude'
```

Ketika Anda memulai sesi dengan `/background` atau `claude --bg`, alasan yang sama muncul di dalam `Couldn't reach the background service (...)`. Selama jendela reinstal yang sama kesalahan dapat menamai kode lain sebagai gantinya, seperti `ENOENT` atau `ENOEXEC`, atau `EUNKNOWN` atau `EPERM` di Windows; `EUNKNOWN` yang bertahan di seluruh percobaan ulang memiliki [penyebab berbeda](#eunknown-when-starting-a-background-session).

Pada instalasi npm, Claude Code menunggu reinstal selesai dan mencoba lagi sendiri: hingga sepuluh detik, dan hingga dua menit saat instalasi npm Claude Code masih terlihat berjalan di mesin, yang mencakup proses Claude Code lain mengunduh pembaruan. Ketika instalasi melampaui waktu tunggu itu, kegagalan menamai pembaruan alih-alih kode kesalahan telanjang:

```text theme={null}
Claude Code is being updated by npm on this machine (still not runnable after 2 min, EACCES) — try again when the update finishes
```

Sebelum v2.1.257, waktu tunggu berhenti pada sepuluh detik dalam setiap kasus, jadi kesalahan ini muncul saat proses Claude Code lain masih mengunduh pembaruan. Sebelum v2.1.246, Claude Code gagal sekaligus, tanpa menunggu.

**Yang harus dilakukan:**

* Tunggu beberapa detik, kemudian buka sesi atau kirim lagi. Ketika pesan mengatakan Claude Code sedang diperbarui, coba lagi setelah pembaruan selesai.
* Jika kesalahan bertahan saat tidak ada instalasi npm yang berjalan, pengguna Anda tidak dapat menjalankan biner yang diinstal. Periksa hak aksesnya dan direktorinya, atau instal ulang Claude Code.

<h3 id="background-service-exited-before-it-became-reachable">
  Layanan latar belakang keluar sebelum dapat dijangkau
</h3>

Proses yang Claude Code mulai sebagai [layanan latar belakang](/docs/id/agent-view#the-supervisor-process) keluar sebelum menerima koneksi, jadi Claude Code tidak dapat membuka sesi Anda. Ketika layanan mencetak kesalahan sebelum keluar, alasan dalam tanda kurung memberikan exit code atau sinyal dan baris pertama yang dicetak layanan, yang menamai apa yang menghentikannya:

```text theme={null}
Couldn't reach the background service (background service exited before it became reachable (exit code N): <the service's first error line>) — run 'claude daemon status'
```

Ketika Anda membuka sesi dari [tampilan agent](/docs/id/agent-view), alasan yang sama mengikuti `Couldn't start the background service —`. Ketika layanan tidak mencetak apa pun sebelum keluar, pesan mengatakan `nothing on stderr` sebagai gantinya.

Claude Code melaporkan kegagalan dengan baris kesalahan layanan. Sebelum v2.1.246, kegagalan muncul hanya setelah menunggu 45 detik, sebagai `background service did not become reachable within 45s`, tanpa baris kesalahan layanan.

Dua alasan yang dikutip memiliki penyebab yang diketahui:

* `Error: claude native binary not installed.`: instalasi npm mengganti biner Claude Code pada saat itu, jadi layanan menjalankan placeholder npm sebagai gantinya. Coba lagi setelah instalasi selesai; jika baris bertahan tanpa instalasi yang berjalan, [selesaikan instalasi npm](/docs/id/troubleshoot-install#native-binary-not-found-after-npm-install). Sebelum v2.1.257, pembaruan diri npm macOS menghasilkan kegagalan ini pada setiap awal selama jendela instalasi.
* `nothing on stderr` dengan exit code 1, pada setiap awal, di Windows: `daemon.lock` menamai proses yang Claude Code tidak dapat menandai atau membuktikan hilang, jadi setiap layanan baru menyimpulkan yang lain menyimpan kunci dan keluar. Kunci yang penulis Claude Code dapat membuktikan hilang diganti sendiri dan tidak menghasilkan kegagalan ini. Ketika kegagalan berulang pada setiap awal, hapus `~/.claude/daemon.lock`, kemudian buka sesi atau kirim lagi. Sebelum v2.1.257, kunci seperti itu memblokir setiap awal sampai Anda menghapus file.

**Yang harus dilakukan:**

* Jika pesan mengutip baris, perbaiki apa yang dinamainya, kemudian buka sesi atau kirim lagi. Upaya berikutnya memulai layanan lagi
* Jalankan `claude daemon status` untuk memeriksa apakah layanan berjalan sekarang

<h3 id="working-directory-no-longer-exists-when-starting-a-background-session">
  Direktori kerja tidak lagi ada saat memulai sesi latar belakang
</h3>

Direktori tempat Anda memulai [sesi latar belakang](/docs/id/agent-view) dihapus saat sesi dimulai. Claude Code tidak memulai sesi, dan pesan menamai direktori yang hilang:

```text theme={null}
Couldn't start a background session (working directory no longer exists or is not accessible: /tmp/demo)
```

Sebelum v2.1.257, sesi tampak dimulai dan kemudian ditampilkan dalam tampilan agent sebagai baris yang gagal dengan alasan yang sama.

Sebelum v2.1.281, pesan ini juga muncul ketika direktori sudah hilang sebelum Anda memulai sesi. Kasus itu melaporkan [`could not be resolved on disk`](#workspace-not-trusted-when-dispatching-a-background-session).

**Yang harus dilakukan:**

* Buat ulang direktori yang dinamai pesan, atau kirim dari direktori yang ada, kemudian coba lagi

<h3 id="workspace-not-trusted-when-dispatching-a-background-session">
  Workspace tidak dipercaya saat mengirim sesi latar belakang
</h3>

Anda memulai atau memulai ulang [sesi latar belakang](/docs/id/agent-view) dalam direktori yang belum Anda [percayai](/docs/id/permissions#project-allow-rules-and-workspace-trust), dan dialog kepercayaan workspace tidak dapat muncul untuk bertanya. Claude Code tidak memulai sesi:

```text theme={null}
Workspace not trusted. Run `claude` in /path/to/project once and accept the trust prompt, then retry.
```

Dari terminal di direktori sesi itu sendiri, perintah yang sama menampilkan dialog kepercayaan sebagai gantinya dan memulai sesi setelah Anda menerima. Pesan ini muncul di mana tidak ada dialog yang dapat muncul, seperti dalam skrip, atau ketika Anda memulai ulang sesi dari direktori selain miliknya sendiri.

Dua varian menamai penyebab berbeda:

* **`The home directory is trusted one session at a time`**: direktori sesi adalah direktori home Anda. Claude Code tidak pernah menyimpan kepercayaan untuk direktori home, jadi menerima dialog di sana dalam sesi sebelumnya tidak dihitung.
* **`<path> could not be resolved on disk`**: Claude Code tidak dapat menemukan direktori sesi di disk.

Sebelum v2.1.286, di Windows, pesan ini juga dapat muncul di direktori yang sudah Anda percayai, jika catatan kepercayaannya disimpan dengan jalur dalam huruf besar/kecil yang berbeda. Perbarui ke v2.1.286 atau lebih baru.

**Yang harus dilakukan:**

* Jalankan `claude` di direktori yang dinamai pesan dan terima dialog kepercayaan, kemudian jalankan perintah lagi
* Untuk pesan direktori home, jalankan perintah dari terminal di direktori home Anda sehingga dialog dapat muncul, atau mulai sesi dari direktori proyek sebagai gantinya
* Untuk pesan `could not be resolved on disk`, buat ulang direktori, atau mulai sesi baru dari direktori yang ada

<h2 id="wrapper-and-ide-errors">
  Kesalahan Wrapper dan IDE
</h2>

Kesalahan ini berasal dari program yang meluncurkan Claude Code untuk Anda, seperti ekstensi IDE atau aplikasi [Agent SDK](/docs/id/agent-sdk/overview), bukan dari Claude Code itu sendiri.

<h3 id="claude-code-process-exited-with-code-n">
  Proses Claude Code keluar dengan kode N
</h3>

Proses `claude` yang mendasar keluar dengan kode bukan nol. Kode keluar saja tidak mengatakan apa yang gagal: kesalahan sebenarnya ada di output proses itu sendiri, yang wrapper tambahkan ketika menangkap apa pun dan sebaliknya menyimpannya di log-nya.

```text theme={null}
Error: Claude Code process exited with code 1
```

Di Windows, build native dapat keluar dengan kode `4294967295` tepat setelah giliran selesai. Ketika keluar itu mendarat di batas giliran, tanpa pesan menunggu dan tidak ada tugas latar belakang yang berjalan, [ekstensi VS Code](/docs/id/vs-code) menutup sesi dengan tenang alih-alih menampilkan kesalahan ini. Pesan Anda berikutnya melanjutkan percakapan.

Sebelum v2.1.273, ekstensi menampilkan kesalahan untuk keluar itu di setiap batas giliran, meskipun tidak ada yang hilang.

**Yang harus dilakukan:**

* Di VS Code, ikuti tautan **View output logs** yang ditampilkan dengan kesalahan untuk melihat kegagalan yang mendasar
* Dalam aplikasi Agent SDK, tangkap kesalahan di sekitar loop pesan Anda. Entri di bawah [CLI process exit](/docs/id/agent-sdk/troubleshooting#cli-process-exit) mencakup apa yang diterima kode Anda di setiap bahasa SDK.
* Jalankan `claude` di terminal dalam proyek yang sama. Kegagalan biasanya direproduksi di sana dengan pesan kesalahan sebenarnya, yang kemudian dapat Anda cari di halaman ini.
* Jalankan `claude doctor` di terminal untuk memeriksa instalasi dan konfigurasi

<h3 id="could-not-locate-the-claude-cli-on-path">
  Tidak dapat menemukan Claude CLI di PATH
</h3>

[Ekstensi VS Code](/docs/id/vs-code) menampilkan kesalahan ini di Windows ketika Anda membuka Claude Code di terminal terintegrasi, shell terminal adalah PowerShell, dan ekstensi tidak dapat menemukan executable `claude` yang terinstal di PATH. Ekstensi menolak untuk meluncurkan Claude Code sampai menemukan `claude` yang terinstal di PATH.

```text theme={null}
Failed to run Claude Code: Error: Could not locate the Claude CLI on PATH. Launching by name in a PowerShell terminal would run a 'claude' from the open folder instead of the installed CLI, so the launch was blocked. Make sure the Claude CLI's install directory is on your system PATH (not only your PowerShell profile), then restart VS Code and try again. VS Code reads PATH when it starts, so PATH changes take effect only after a restart.
```

**Yang harus dilakukan:**

* Buka jendela PowerShell baru di luar VS Code dan jalankan `where.exe claude`. Jika tidak mencetak jalur, CLI tidak ada di PATH Anda: tambahkan direktori instalasinya dengan mengikuti [Verify your PATH](/docs/id/troubleshoot-install#verify-your-path). Jika mencetak jalur, entri berasal dari profil PowerShell Anda atau dari perubahan PATH yang belum diambil VS Code; dua langkah berikutnya mencakup kasus-kasus tersebut.
* Atur entri PATH sebagai variabel lingkungan pengguna atau sistem, bukan di profil PowerShell Anda. Ekstensi tidak menjalankan profil Anda, jadi edit PATH yang hanya ada di sana tidak pernah mencapainya.
* Mulai ulang VS Code setelah mengubah PATH. Ekstensi memeriksa PATH yang ditangkap VS Code saat startup, jadi perubahan PATH hanya berlaku setelah restart.

<h3 id="the-connection-to-claude-code-ended-before-this-message-completed">
  Koneksi ke Claude Code berakhir sebelum pesan ini selesai
</h3>

[Ekstensi VS Code](/docs/id/vs-code) mengirim pesan Anda ke proses `claude`, dan koneksi berakhir tanpa kesalahan sebelum proses mengakui atau menyelesaikannya. Ekstensi tidak dapat mengatakan apakah pesan diproses, jadi meminta Anda untuk mengirimnya lagi:

```text theme={null}
The connection to Claude Code ended before this message completed — it may not have been processed, so please send it again.
```

**Yang harus dilakukan:**

* Kirim pesan lagi. Pesan berikutnya memulai proses `claude` segar yang melanjutkan percakapan.
* Jika terulang, jalankan `claude` di terminal dalam proyek yang sama. Kegagalan yang terus mengakhiri proses biasanya direproduksi di sana dengan pesan kesalahan sebenarnya.

<h2 id="rewind-warnings-and-errors">
  Peringatan dan kesalahan Rewind
</h2>

Pesan-pesan ini berasal dari pemulihan kode [`/rewind`](/docs/id/checkpointing). `Restored the code, but skipped N files` adalah peringatan yang menunjukkan bahwa Claude Code melewati beberapa jalur. `No files were restored` adalah kesalahan yang berarti tidak ada yang dipulihkan.

<h3 id="restored-the-code-but-skipped-files">
  Restored the code, but skipped files
</h3>

Pemulihan kode `/rewind` melewati satu atau lebih jalur terlacak alih-alih menulis atau menghapus melaluinya. Claude Code melewati jalur ketika:

* itu adalah, atau menjadi, symlink, hard link, atau file non-reguler lainnya
* direktorinya berubah sejak checkpoint
* backup-nya tidak dapat dibaca dengan aman

Jalur yang dilewati mempertahankan konten saat ini mereka. Sebelum v2.1.216, `/rewind` menulis dan menghapus melalui link di jalur terlacak, dan tidak melaporkan pemulihan sebagian.

```text theme={null}
Restored the code, but skipped 2 files: the tracked path is (or became) a link or other non-regular file, its directory changed since the checkpoint, or its backup could not be safely read. Skipped files were left untouched — run with --debug for the paths.
```

**Yang harus dilakukan:**

* Identifikasi file mana yang dilewati sehingga Anda dapat menangani masing-masing dengan langkah-langkah di bawah ini. Pesan hanya memberikan hitungan; log debug di `~/.claude/debug/<session-id>.txt` menamai setiap jalur yang dilewati saat pemulihan berjalan, jadi aktifkan logging debug dengan `/debug` sebelum pemulihan berikutnya Anda. Di macOS atau Linux, Anda dapat menemukan link secara langsung: `find . -type l` untuk symlink dan `find . -type f -links +1` untuk file hard-linked.
* Jika file yang dilewati adalah link yang Anda buat dengan sengaja, seperti file konfigurasi yang dikelola oleh manajer dotfile atau file yang hard-linked oleh alat seperti pnpm, rewind membiarkan kontennya saja. Untuk membatalkan perubahan sesi terhadapnya, minta Claude untuk membalikkan edit atau edit file sendiri
* Jika Anda tidak membuat link, periksa jalur sebelum mempercayai kontennya

<h3 id="no-files-were-restored">
  No files were restored
</h3>

Claude Code menampilkan pesan ini ketika Anda memulihkan kode dengan [`/rewind`](/docs/id/checkpointing) dan tidak dapat memulihkan file apa pun dalam checkpoint tersebut. Untuk setiap file, baik backup yang disimpan Claude Code sebelum mengeditnya hilang, atau Claude Code tidak dapat menulis atau menghapus file.

```text theme={null}
Failed to restore the code:
No files were restored: 1 file failed (backup missing, or the file could not be updated)
```

Claude Code menghapus backup sesi dalam [retention sweep](/docs/id/claude-directory#cleaned-up-automatically), secara default sekitar 30 hari setelah sesi terakhir menyimpannya. Jika Anda melanjutkan sesi setelah itu, `/rewind` masih mencantumkan checkpoint-nya, tetapi rewind ke salah satunya dapat gagal dengan kesalahan ini. Jika pesan juga mengatakan `N paths were skipped for link safety`, lihat [Restored the code, but skipped files](#restored-the-code-but-skipped-files) untuk jalur-jalur tersebut.

Ketika Anda fork sesi, misalnya dengan [`--fork-session`](/docs/id/cli-reference#cli-flags) atau [`/branch`](/docs/id/sessions#branch-a-session), Claude Code menyalin backup sesi asli ke fork. Ketika Claude Code tidak dapat menyalin backup, misalnya karena disk penuh, backup tersebut hilang di fork. Rewind ke checkpoint yang membutuhkannya dapat gagal dengan kesalahan ini.

**Yang harus dilakukan:**

* Batalkan perubahan dengan cara lain: minta Claude untuk membalikkan edit-nya, atau pulihkan file dari version control. Ketika backup hilang, menjalankan `/rewind` lagi gagal dengan cara yang sama.
* Jika Claude Code tidak dapat menulis atau menghapus file, perbaiki apa yang memblokir penulisan, seperti izin file, kemudian jalankan `/rewind` lagi.
* Untuk menyimpan backup lebih lama di sesi mendatang, naikkan [`cleanupPeriodDays`](/docs/id/settings-reference#cleanupperioddays).

Sebelum v2.1.260, Claude Code secara diam-diam melewati file yang backup-nya hilang, dan rewind tampak berhasil.

<h2 id="session-saving-warnings">
  Peringatan penyimpanan sesi
</h2>

Claude Code menampilkan peringatan ini pada baris persisten di bawah kotak input ketika tidak menyimpan transkrip sesi Anda. Sesi tetap berfungsi baik cara; peringatan memberi tahu Anda bahwa sesi mungkin hilang dari [`--resume`](/docs/id/sessions) nanti.

<h3 id="transcript-writes-are-failing">
  Penulisan transkrip gagal
</h3>

Claude Code menyimpan transkrip ke disk saat Anda bekerja, dan penulisannya ke [file transkrip](/docs/id/sessions#where-transcripts-are-stored) gagal. Pesan ini menyebutkan penyebabnya dengan kode kesalahan yang mendasar, misalnya disk penuh:

```text theme={null}
Transcript writes are failing (disk full — ENOSPC) · recent messages may not be saved for resume
```

Peringatan muncul pada titik berbeda tergantung pada kesalahannya:

* Pada kegagalan pertama untuk kondisi yang tidak hilang dengan sendirinya: disk penuh, kuota disk terlampaui, sistem file hanya-baca, jalur melebihi batas panjang sistem file, atau, di macOS dan Linux, kesalahan izin
* Setelah kegagalan berulang yang berlangsung setidaknya satu menit untuk semuanya, termasuk kesalahan izin di Windows, di mana pemindaian antivirus dapat gagal pada satu penulisan yang kemudian berhasil saat dicoba ulang

Sebelum v2.1.217, Claude Code menghapus penulisan yang gagal tanpa peringatan, dan `--resume` yang hilang pesan terbaru kemudian adalah tanda pertama.

**Yang harus dilakukan:**

* Perbaiki kondisi yang disebutkan kode kesalahan: bebaskan ruang disk untuk `ENOSPC`; naikkan atau hapus kuota untuk `EDQUOT`; pulihkan akses tulis ke lokasi transkrip untuk `EACCES`, `EPERM`, atau `EROFS`
* Peringatan hilang dengan sendirinya pada penulisan berikutnya yang berhasil; tidak perlu restart
* Pesan yang dikirim saat peringatan ditampilkan mungkin masih hilang ketika Anda melanjutkan sesi nanti

<h3 id="transcript-saving-is-off-skip-prompt-history">
  Penyimpanan transkrip dimatikan karena CLAUDE\_CODE\_SKIP\_PROMPT\_HISTORY diatur
</h3>

Sesi ini dimulai dengan [`CLAUDE_CODE_SKIP_PROMPT_HISTORY`](/docs/id/env-vars) diatur, jadi Claude Code tidak menulis transkrip atau riwayat prompt untuk sesi ini:

```text theme={null}
Transcript saving is off — CLAUDE_CODE_SKIP_PROMPT_HISTORY is set · --resume will not find this session; if unintended, unset it and restart
```

Variabel ini adalah opt-out yang disengaja untuk sesi skrip sementara, tetapi juga dapat mencapai sesi melalui profil shell, skrip pembungkus, atau proses induk yang mengekspornya.

**Yang harus dilakukan:**

* Jika Anda mengatur variabel dengan sengaja, tidak ada tindakan yang diperlukan; pemberitahuan ini mengonfirmasi bahwa sesi tidak akan muncul di `--resume`, `--continue`, atau riwayat panah-atas
* Jika tidak, hapus variabel dari shell atau skrip yang meluncurkan `claude`, kemudian mulai sesi baru. Pesan dari sesi saat ini tidak disimpan secara retroaktif.

<h3 id="transcript-saving-is-off-child-session-marker">
  Penyimpanan transkrip dimatikan karena penanda CLAUDE\_CODE\_CHILD\_SESSION yang diwariskan
</h3>

Claude Code mengatur [`CLAUDE_CODE_CHILD_SESSION`](/docs/id/env-vars) dalam subproses yang dihasilkannya, dan memperlakukan sesi interaktif yang mewarisinya sebagai bersarang: Claude Code tidak menyimpan transkrip untuk sesi tersebut, jadi sesi yang Claude sendiri mulai tidak mengisi daftar `--resume` Anda. Pemberitahuan ini berarti sesi saat ini Anda mewarisi penanda:

```text theme={null}
Transcript saving is off — inherited CLAUDE_CODE_CHILD_SESSION marker · restart with CLAUDE_CODE_FORCE_SESSION_PERSISTENCE=1 to keep future transcripts
```

Pemberitahuan ini diharapkan ketika Anda menjalankan `claude` dari dalam sesi Claude Code lain; pemberitahuan ini menandakan salah klasifikasi ketika penanda bocor melalui perantara yang tahan lama, misalnya terminal, sesi `screen`, atau peluncur yang awalnya dimulai oleh sesi Claude Code.

Di dalam tmux, Claude Code mendeteksi penanda yang tiba melalui lingkungan global server tmux dan terus menyimpan, jadi pemberitahuan ini tidak muncul untuk kasus itu.

**Yang harus dilakukan:**

* Jika Anda memulai sesi ini dari dalam sesi Claude Code lain dengan sengaja, tidak ada tindakan yang diperlukan
* Jika ini adalah sesi tingkat atas, keluar dan restart dengan [`CLAUDE_CODE_FORCE_SESSION_PERSISTENCE=1`](/docs/id/env-vars) diatur. Penyimpanan berlaku dari restart, jadi pesan yang dikirim sebelumnya tidak disimpan.
* Untuk memperbaiki peluncuran di masa depan dari terminal atau peluncur yang sama, hapus `CLAUDE_CODE_CHILD_SESSION` dari lingkungannya

<h2 id="configuration-warnings">
  Peringatan Konfigurasi
</h2>

Claude Code menulis sebagian besar pesan ini ke stderr, bukan ke dalam percakapan, dan menulis sebagian besar di saat startup. Sebuah entri mengatakan demikian ketika pesannya muncul di tempat lain, seperti dalam log debug atau sebagai pemberitahuan startup dalam tampilan percakapan, atau pada waktu lain, seperti [baris diagnostik model yang tidak dikenali](#unrecognized-model-id-on-a-request) pada saat permintaan.

<h3 id="exited-after-an-unrecoverable-interface-error">
  Claude Code keluar setelah kesalahan antarmuka yang tidak dapat dipulihkan
</h3>

Claude Code mencetak pesan ini ketika keluar karena antarmuka terminalnya mengalami kesalahan yang tidak dapat dipulihkan, di salah satu renderer. Kalimat kedua muncul hanya ketika kesalahan terjadi saat renderer [fullscreen](/docs/id/fullscreen) sedang memulai:

```text theme={null}
Claude Code exited after an unrecoverable interface error (<error>). It happened while the fullscreen renderer was starting, so the next launch will use the classic renderer (CLAUDE_CODE_DISABLE_ALTERNATE_SCREEN=1 forces that any time).
```

**Yang harus dilakukan:**

* Mulai Claude Code lagi. Untuk melanjutkan percakapan, jalankan `claude --resume` di direktori yang sama.
* Jika pesan menyebutkan renderer fullscreen, [Fullscreen rendering](/docs/id/fullscreen#fullscreen-renderer-didnt-finish-starting) mengatakan apa yang dilakukan peluncuran berikutnya, yang tergantung pada cara Anda mengaktifkan fullscreen, dan cara mencoba fullscreen lagi atau tetap menggunakan renderer klasik.

Sebelum v2.1.236, Claude Code keluar tanpa mencetak pesan setelah kesalahan jenis ini.

<h3 id="agent-descriptions-are-over-the-15000-token-limit">
  Deskripsi agent melebihi batas token 15.0k
</h3>

Claude Code menampilkan peringatan ini sebagai pemberitahuan startup dalam tampilan percakapan daripada di stderr. Deskripsi gabungan dari [subagents](/docs/id/sub-agents) Anda, kecuali yang bawaan, melebihi 15.000 token seperti yang diperkirakan Claude Code. Setiap agent menghitung namanya ditambah frontmatter `description` nya. Claude Code memuat setiap agent terlepas dari apakah totalnya melebihi batas, jadi peringatan tidak mengubah apa yang dimuat.

```text theme={null}
Agent descriptions are over the 15.0k-token limit (~16.2k tokens) · ask Claude to trim agent descriptions in .claude/agents/
```

**Yang harus dilakukan:**

* Perpendek frontmatter `description` dari file agent Anda, atau minta Claude untuk memangkasnya untuk Anda.
* Hapus file agent yang tidak lagi Anda gunakan.

<h3 id="hook-needs-quotes-around-a-path-with-a-space">
  Hook needs quotes around a path with a space
</h3>

Notifikasi dalam tampilan percakapan ini berarti skrip sebuah hook tidak dijalankan karena jalurnya mengandung spasi dan tidak diberi tanda kutip. Hook tersebut adalah hook [`asyncRewake`](/docs/id/hooks#run-hooks-in-the-background) dalam bentuk shell. Dalam `command`-nya, interpreter seperti `python3` diikuti oleh placeholder jalur tanpa tanda kutip, dan jalur yang telah diselesaikan mengandung spasi.

Notifikasi dimulai dengan nama event hook dan menyebutkan skripnya:

```text theme={null}
Stop hook needs quotes around a path with a space (check.py)
```

**Yang harus dilakukan:**

* Dalam `command` dari hook yang menjalankan skrip yang disebutkan notifikasi, apit jalur dengan tanda kutip ganda. Dalam file JSON, tuliskan sebagai `"command": "python3 \"${CLAUDE_PLUGIN_ROOT}/hooks/check.py\""`.

<h3 id="instruction-file-not-loaded">
  Instruction file not loaded
</h3>

Pemberitahuan dalam tampilan percakapan sesi interaktif ini berarti sebuah [file memori](/docs/id/memory#how-claude-md-files-load) yang ada tidak dimuat. Sebuah pembatasan baca sedang berlaku.

```text theme={null}
Instruction file not loaded (a Read deny rule covers it):
path: .claude/rules/shared.md
```

Bagian dalam tanda kurung menyebutkan alasannya, misalnya:

* **`a Read deny rule covers it`**: sebuah [aturan deny](/docs/id/permissions#read-and-edit) `Read` cocok dengan jalur file seperti yang tertulis atau dengan tujuan yang diarahkan oleh link pada file tersebut
* **`it's read from outside your working directories, where reads are blocked`**: file diselesaikan ke luar [direktori kerja](/docs/id/settings-reference#permissions-blockreadsoutsideworkingdirectories) sementara [`permissions.blockReadsOutsideWorkingDirectories`](/docs/id/settings-reference#permissions-blockreadsoutsideworkingdirectories) aktif
* **`where it leads couldn't be worked out`**: misalnya, file adalah link yang mengarah kembali ke dirinya sendiri, secara langsung atau melalui link lain

Ketika file memori milik sebuah subdirektori tidak dapat dimuat saat Claude bekerja dengan file di sana, baris yang sama muncul dalam percakapan selama giliran tersebut. Ketika lebih banyak file yang ditahan daripada yang disebutkan baris-baris tersebut, baris terakhir menghitung sisanya, seperti `and 3 more instruction files not loaded`.

**Yang harus dilakukan:**

* Tidak ada, jika pembatasan tersebut memang disengaja: sesi berjalan tanpa instruksi dari file tersebut.
* Untuk memuat file yang ditahan karena `a Read deny rule covers it`, [hapus atau persempit aturan tersebut](/docs/id/permissions#manage-permissions). Kemudian mulai sesi baru.
* Untuk memuat file yang ditahan karena `it's read from outside your working directories, where reads are blocked`, pindahkan file tersebut atau target link-nya ke dalam direktori kerja. Kemudian mulai sesi baru.
* Untuk memuat file yang ditahan karena `where it leads couldn't be worked out`, periksa apakah file tersebut adalah link yang mengarah kembali ke dirinya sendiri. Jika ya, arahkan link ke file yang ada atau letakkan file biasa di tempatnya. Kemudian mulai sesi baru.

Sebelum v2.1.292, pemberitahuan menyebutkan file di akhir baris yang sama setelah alasannya.

<h3 id="a-skill-command-or-workflow-wasnt-loaded-because-its-name-is-reserved">
  Skill, command, atau workflow tidak dimuat karena namanya dicadangkan
</h3>

Folder skill, frontmatter `name`, file atau subfolder di `.claude/commands/`, atau [saved workflow](/docs/id/workflows#save-the-workflow-for-reuse) menggunakan nama `anthropic-skills` atau nama yang dimulai dengan `anthropic-skills:`. Claude Code [mencadangkan nama itu untuk skills yang disinkronkan dari claude.ai](/docs/id/skills#names-reserved-for-synced-skills) dan tidak memuat item itu.

Claude Code menampilkan peringatan ini sebagai pemberitahuan startup dalam tampilan percakapan daripada di stderr:

```text theme={null}
Not loaded: rename .claude/skills/anthropic-skills, then restart — its name uses "anthropic-skills", a name reserved for the skills synced from your claude.ai account
```

Pemberitahuan menyebutkan apa yang harus diubah untuk item pertama yang ditolak: folder atau file untuk diubah nama, baris `name:` untuk diedit, atau workflow untuk diubah nama. Ketika lebih dari satu item ditolak, pemberitahuan berakhir dengan hitungan seperti `· 2 more`, dan [log debug](/docs/id/debug-your-config) menyebutkan masing-masing.

**Yang harus dilakukan:**

* Ubah nama item yang dinamai pemberitahuan, atau edit baris `name:` yang ditunjuknya, kemudian restart sesi.

Sebelum v2.1.282, Claude Code memuat skills dan commands dengan nama-nama ini.

<h3 id="skill-or-command-name-refused">
  Skill or command name refused
</h3>

Pemberitahuan startup ini berarti Claude Code menolak nama dari setidaknya satu [skill atau perintah kustom](/docs/id/skills), sehingga item tersebut tidak dimuat atau dimuat tanpa bidang `name`-nya:

```text theme={null}
1 skill or command name refused: run with --debug to see which ([names]), rename, then restart — a name may not hold hidden, direction-changing or blank-like characters, < or >, or be over 256 characters
```

* **Tidak dimuat**: Claude Code menolak nama yang digunakan oleh skill atau perintah, seperti nama direktorinya atau nama file atau subfolder file perintah. Item tersebut tidak ada di menu `/` dan Claude tidak dapat memanggilnya. Barisnya dalam log debug berbunyi `<name> is not offered`.
* **Bidang `name` diabaikan**: Claude Code menolak frontmatter `name` sebuah skill. Skill tersebut tetap dimuat, tetapi menu `/` tidak menampilkan nilai `name` dan mengetiknya tidak memanggil skill tersebut. Barisnya dalam log debug berbunyi `<name value> is not shown for <skill>`.

**Yang harus dilakukan:**

* Mulai Claude Code dengan `claude --debug` dari shell Anda dan cari `[names]` di [log debug](/docs/id/debug-your-config). Setiap nama yang dihitung pemberitahuan memiliki satu baris di sana. Baris tersebut menuliskan beberapa karakter tersembunyi sebagai kode, seperti `\u{200B}` untuk zero-width space, sehingga Anda dapat melihat letaknya.
* Hapus [karakter yang tidak boleh ada dalam nama skill](/docs/id/skills#characters-a-skill-name-cant-hold) dengan mengganti nama folder atau file atau mengedit baris `name:`, atau perpendek nama yang lebih dari 256 karakter. Kemudian restart sesi, kecuali file berada di direktori yang [dipantau perubahannya](/docs/id/skills#live-change-detection) oleh Claude Code. Untuk skill dari plugin yang tidak Anda tulis, minta pembuat plugin untuk mengganti namanya.

<h3 id="workspace-has-not-been-trusted">
  Workspace belum dipercaya
</h3>

Claude Code menemukan aturan `permissions.allow` atau entri `permissions.additionalDirectories` dalam `.claude/settings.json` atau `.claude/settings.local.json` proyek dan tidak menerapkannya, karena [aturan allow dari pengaturan proyek memerlukan kepercayaan workspace](/docs/id/permissions#project-allow-rules-and-workspace-trust). Jumlah, nama pengaturan, dan file yang dinamai dalam pesan bervariasi dengan konfigurasi Anda. Aturan `deny` dan `ask` tidak terpengaruh.

```text theme={null}
Ignoring 2 permissions.allow entries from .claude/settings.local.json: this workspace has not been trusted. Run Claude Code interactively here once and accept the trust dialog, or set projects["/Users/you/project"].hasTrustDialogAccepted: true in /Users/you/.claude.json.
```

**Yang harus dilakukan:**

* Jalankan `claude` di direktori dan terima dialog kepercayaan. [Project allow rules and workspace trust](/docs/id/permissions#project-allow-rules-and-workspace-trust) mengatakan folder mana yang dicakup oleh penerimaan tersebut.
* Dalam [mode non-interaktif](/docs/id/headless) dengan `-p` tidak ada dialog yang ditampilkan. Atur entri `hasTrustDialogAccepted` dalam `~/.claude.json` menggunakan kunci `projects` yang tepat yang dicetak pesan.
* Jika pesan menyebutkan `.claude/settings.local.json` dan Anda memulai Claude Code di luar repositori git atau di direktori home Anda, perbarui ke v2.1.200 atau lebih baru. Versi 2.1.196 hingga 2.1.199 memperlakukan `.claude/settings.local.json` Anda sendiri sebagai yang disediakan repositori di workspace tersebut. Pada v2.1.207 dan lebih baru, pembaruan tidak cukup di luar repositori git jika Anda belum mempercayai folder: menentukan bahwa folder tidak berada di dalam repositori menjalankan git, dan Claude Code menjalankan pemeriksaan itu hanya setelah Anda menerima dialog kepercayaan, jadi gunakan langkah pertama. Direktori home Anda dan [configuration home](/docs/id/permissions#project-allow-rules-and-workspace-trust) lainnya dikecualikan dan tidak menunggu dialog. Lihat [Project allow rules and workspace trust](/docs/id/permissions#project-allow-rules-and-workspace-trust).

<h3 id="working-directory-is-a-network-path">
  Direktori kerja adalah jalur jaringan
</h3>

Claude Code tidak menambahkan jalur jaringan sebagai direktori kerja. Mencari jalur jaringan dapat menghubungi host yang dinamainya, dan di Windows kontak itu dapat mengirim kredensial Anda ke host, jadi Claude Code menolak jalur tanpa mencarinya. Anda melihat pesan ini ketika Anda menjalankan `/add-dir` dengan jalur seperti itu, atau sebagai peringatan pada startup. Ketika muncul pada startup, Claude Code memulai tanpa direktori itu.

```text theme={null}
\\server\share is a network path, which cannot be added as a working directory. On Windows, map the share to a drive letter and pass it at launch with --add-dir (a drive letter added mid-session does not yet carry remote-read trust).
```

Jalur yang Claude Code tolak dengan cara ini termasuk:

* Berbagi UNC seperti `\\server\share`
* Jalur automount seperti `/net/<host>`, kecuali Anda meluncurkan Claude Code dari direktori di bawah automount host itu. Pembacaan di bawah automount itu tetap melalui [pemeriksaan jalur jaringan](/docs/id/permissions#network-paths).
* Jalur lokal yang mencapai lokasi jaringan melalui symbolic link atau junction

Huruf drive yang dipetakan dan jalur `\\wsl$` tidak dihitung sebagai jalur jaringan.

**Yang harus dilakukan:**

* Di Windows, petakan berbagi ke huruf drive, misalnya dengan `net use Z: \\server\share`, dan teruskan drive pada peluncuran dengan `claude --add-dir Z:\`.
* Di macOS atau Linux, pasang berbagi di jalur lokal dan tambahkan jalur itu sebagai gantinya.
* Jika jalur ada di `permissions.additionalDirectories`, hapus dari file pengaturan yang mencantumnya.

Sebelum v2.1.257, Claude Code menerima jalur jaringan yang dapat dijangkau sebagai direktori kerja.

<h3 id="remote-managed-settings-failed-to-load">
  Pengaturan yang dikelola jarak jauh gagal dimuat
</h3>

Sesi Anda memenuhi syarat untuk [server-managed settings](/docs/id/server-managed-settings), tetapi Claude Code tidak dapat mengambilnya atau tidak dapat menerapkan apa yang dikembalikan server, jadi menampilkan peringatan ini dalam sesi interaktif.

Penyebab dalam tanda kurung menyebutkan apa yang gagal, seperti `network error`, `request timed out`, atau `authentication rejected (401)`. Penyebab `no setting in the server response could be applied as written` berarti server menjawab tetapi tidak ada pengaturan yang dikembalikannya yang lulus [validation](/docs/id/server-managed-settings#invalid-entries-in-delivered-settings). Sebelum v2.1.282, penyebab ini berbunyi `server returned invalid settings`.

Sisa baris mengatakan kebijakan mana yang dijalankan sesi:

* **Pengaturan di-cache dari pengambilan sebelumnya yang berhasil**: Claude Code menjalankan sesi pada kebijakan yang di-cache itu, kecuali [variabel lingkungan yang ditahan](/docs/id/server-managed-settings#fetch-and-caching-behavior), dan baris berbunyi `using cached policy`.
* **Tidak ada cache**: Claude Code menjalankan sesi tanpa server-managed settings, dan baris berbunyi `no remote policy applied`.

**Yang harus dilakukan:**

* Bertindak atas penyebab yang dinamai pesan: untuk penyebab jaringan, periksa bahwa mesin ini dapat menjangkau `api.anthropic.com`; untuk penyebab autentikasi, periksa sign-in Anda dengan `/status`
* Untuk `no setting in the server response could be applied as written`, minta administrator Anda untuk memperbaiki pengaturan di server
* Jalankan `/status` atau `claude doctor` untuk diagnostik lengkap

Sebelum v2.1.248, Claude Code melaporkan pengambilan pengaturan yang gagal hanya dalam log debug.

<h3 id="managed-settings-were-not-approved">
  Pengaturan yang dikelola tidak disetujui
</h3>

[Server-managed settings](/docs/id/server-managed-settings) organisasi Anda mencakup pengaturan yang memerlukan persetujuan Anda, dan Anda menolak [dialog persetujuan keamanan](/docs/id/server-managed-settings#security-approval-dialogs), jadi Claude Code keluar tanpa menerapkannya:

```text theme={null}
Managed settings were not approved; exiting without applying them.
```

**Yang harus dilakukan:**

* Mulai Claude Code lagi dan setujui dialog untuk melanjutkan di bawah pengaturan organisasi Anda. Dialog yang ditolak tidak diingat, jadi muncul lagi pada startup berikutnya.
* Jika Anda tidak yakin tentang pengaturan yang dialog cantumkan, tanyakan kepada siapa pun yang memelihara pengaturan yang dikelola organisasi Anda sebelum menyetujui

<h3 id="managed-settings-block-the-default-model">
  Managed settings memblokir model default
</h3>

[Managed settings](/docs/id/managed-settings) organisasi Anda memblokir model yang opsi Default diselesaikan dan setiap model yang dapat diturunkan. Sesi yang akan dimulai pada opsi Default keluar pada startup daripada menjalankan model yang diblokir. Pesan mana yang Anda lihat tergantung pada pengaturan yang memblokir. Ketika daftar [`deniedModels`](/docs/id/model-config#block-specific-models-or-versions) memblokir, pesan berbunyi:

```text theme={null}
Claude Code can't start: your organization's managed settings block the default model (claude-opus-5-5) in "deniedModels", and none of the models they allow can be used as the default instead. Ask your administrator to update "deniedModels" or "availableModels".
```

Ketika daftar `availableModels` dengan [`availableModelsMatch`](/docs/id/settings-reference#availablemodelsmatch) diatur ke `"exact"` menghilangkannya, pesan berbunyi:

```text theme={null}
Claude Code can't start: your organization allows only the models listed in "availableModels", and none of them can be used as the default model (claude-opus-5-5 isn't listed). Ask your administrator to update "availableModels".
```

**Yang harus dilakukan:**

* Jika Anda mengelola pengaturan, tambahkan model yang dapat dijalankan pengguna Anda ke `availableModels`, atau persempit entri `deniedModels` yang memblokir setiap fallback. [Block specific models or versions](/docs/id/model-config#block-specific-models-or-versions) menjelaskan bagaimana opsi Default diturunkan
* Jika Anda tidak mengelolanya, kirim pesan ke administrator Anda. File pengaturan Anda sendiri tidak dapat memperluas daftar `availableModels` atau `deniedModels` yang dikelola

<h3 id="managed-settings-dont-allow-this-api-provider">
  Managed settings tidak mengizinkan penyedia API ini
</h3>

[Managed settings](/docs/id/managed-settings) organisasi Anda menetapkan daftar [`allowedProviders`](/docs/id/settings-reference#allowedproviders), dan penyedia API sesi tidak ada di dalamnya atau sesi menggunakan endpoint yang tidak disematkan dengan cara yang diperlukan entri itu. Claude Code menolak pada startup, sebelum login, atau ketika sesi berikutnya menghubungi API. Pesan dimulai dengan penyedia yang diizinkan:

```text theme={null}
Your organization's managed settings allow Claude Code to use: Anthropic API, Amazon Bedrock.
```

Ketika daftar kosong, pesan berbunyi sebagai gantinya:

```text theme={null}
Your organization's managed settings allow Claude Code to use no API provider at all (allowedProviders is an empty list), so it cannot start on this machine.
```

Ketika setiap entri tidak dikenali, parenthetical berbunyi `(allowedProviders lists only unrecognized entries)` sebagai gantinya.

**Yang harus dilakukan:**

* Ikuti langkah `To continue:` pesan
* Jika Anda mengelola pengaturan, baris pesan yang dimulai `Admins:` menyebutkan entri untuk ditambahkan atau nilai untuk disematkan, dan entri [`allowedProviders`](/docs/id/settings-reference#allowedproviders) mengatakan blok `env` sumber mana yang dapat menyematkannya

<h3 id="mcp-server-is-blocked-by-enterprise-managed-policy">
  Server MCP diblokir oleh kebijakan yang dikelola perusahaan
</h3>

Anda memilih **Reconnect** pada server di `/mcp`, atau mengaktifkan kembali server yang dinonaktifkan di sana, dan pengaturan yang [membatasi server MCP](/docs/id/managed-mcp) memblokir server itu. Claude Code menolak untuk menghubungkannya dan menampilkan:

```text theme={null}
MCP server <name> is blocked by enterprise managed policy
```

Salah satu dari pengaturan ini dapat menghasilkan pesan:

* Entri [`deniedMcpServers`](/docs/id/managed-mcp#policy-based-control-with-allowlists-and-denylists) yang cocok dengan server, termasuk yang ada di `~/.claude/settings.json` Anda sendiri atau `.claude/settings.json` proyek
* Daftar [`allowedMcpServers`](/docs/id/managed-mcp#policy-based-control-with-allowlists-and-denylists) yang tidak cocok dengan server
* [`strictPluginOnlyCustomization`](/docs/id/settings-reference#strictpluginonlycustomization) dengan `mcp` terkunci, yang memblokir server yang dikonfigurasi dalam `~/.claude.json` dan `.mcp.json`
* [`disableClaudeAiConnectors`](/docs/id/mcp#disable-claude-ai-connectors), ketika server adalah konektor claude.ai

**Yang harus dilakukan:**

* Periksa file pengaturan pengguna dan proyek Anda sendiri untuk salah satu pengaturan ini dan ubah atau hapus
* Jika tidak ada pengaturan Anda sendiri yang menjelaskan blokir, tanyakan administrator Anda pengaturan yang dikelola mana yang memblokir server

Sebelum v2.1.257, **Reconnect** dan re-enable di `/mcp` dapat menghubungkan server yang pembaruan kebijakan mid-session memblokir.

<h3 id="mcp-server-name-is-reserved">
  Nama server MCP dicadangkan
</h3>

Pesan ini menyebutkan salah satu server MCP Anda, yang namanya termasuk di antara nama yang dicadangkan Claude Code, seperti nama server bawaannya:

```text theme={null}
"workspace" is a reserved MCP server name and was not loaded
```

**Yang harus dilakukan:**

* Ganti nama server di tempat Anda mendefinisikannya, misalnya dari `workspace` menjadi `my-workspace`
* Untuk nama cadangan lain yang harus dihindari, lihat [peringatan konfigurasi MCP](/docs/id/mcp#configuration-warnings)

<h3 id="managed-settings-document-could-not-be-parsed">
  Dokumen pengaturan yang dikelola tidak dapat diuraikan
</h3>

Organisasi Anda menerapkan [managed settings](/docs/id/managed-settings), dan salah satu dokumen yang diterapkan ada tetapi tidak dapat diuraikan sebagai objek JSON, jadi Claude Code keluar dengan kode 1 pada startup daripada berjalan tanpa kebijakan yang dibawa dokumen. Baris menyebutkan sumber yang gagal sebelum pesan:

```text theme={null}
/Library/Application Support/ClaudeCode/managed-settings.json: Managed settings document could not be parsed as a JSON object; none of its settings are in effect. Fix or remove it.
```

Sumbernya adalah salah satu dari:

* Jalur file `managed-settings.json` atau file drop-in di bawah `managed-settings.d`
* Profil preferensi yang dikelola macOS, `per-user managed preferences` atau `device-level managed preferences`
* Nilai registry Windows, `Registry: HKLM\SOFTWARE\Policies\ClaudeCode\Settings`

[Find entries Claude Code dropped](/docs/id/managed-settings#find-entries-claude-code-dropped) mencantumkan apa yang membuat setiap sumber tidak dapat diuraikan.

Claude Code menolak untuk memulai bahkan ketika sumber admin lain memberikan kebijakan yang valid. Anda melihat kesalahan ini dalam sesi interaktif, `claude -p`, sesi Agent SDK, [background sessions](/docs/id/agent-view), dan sebagian besar subperintah, `claude doctor` termasuk. Penolakan gagal tertutup dengan sengaja: pengaturan dalam dokumen yang tidak dapat diuraikan Claude Code tidak dapat ditegakkan, dan memulai bagaimanapun akan menjalankan sesi tanpa kontrol organisasi Anda.

Masalah skema dalam dokumen yang dapat diuraikan tidak menghasilkan kesalahan ini. [Find entries Claude Code dropped](/docs/id/managed-settings#find-entries-claude-code-dropped) mencakup apa yang Claude Code lakukan dengan satu.

Ketika direktori `managed-settings.d/` ada tetapi tidak dapat didaftar, Claude Code melaporkan `Managed settings drop-in directory could not be read:` diikuti oleh kesalahan yang mendasar sebagai gantinya. [Find entries Claude Code dropped](/docs/id/managed-settings#find-entries-claude-code-dropped) mencakup kapan kegagalan baca keluar pada startup.

**Yang harus dilakukan:**

* Jika Anda mengelola mesin, perbaiki dokumen yang dinamai sehingga diuraikan sebagai objek JSON, atau hapus file, profil, atau nilai registry. `managed-settings.json` kosong dihitung sebagai `{}` dan tidak memblokir peluncuran.
* Jika tidak, minta administrator Anda untuk memperbaiki dokumen yang diterapkan. Tidak ada dalam file pengaturan Anda sendiri yang menyebabkan atau menghapus kesalahan ini.

<h3 id="unable-to-read-managed-policy-settings">
  Tidak dapat membaca pengaturan kebijakan yang dikelola
</h3>

Organisasi Anda menerapkan [managed settings](/docs/id/managed-settings), dan salah satu sumber yang diterapkan ada tetapi tidak dapat dibaca, karena alasan seperti kesalahan I/O daripada sistem operasi menolak pembacaan. Tanpa sumber admin lain yang menyediakan kebijakan, Claude Code keluar pada startup daripada berjalan tanpa kebijakan yang mungkin dibawa sumber:

```text theme={null}
Unable to read managed policy settings.
This machine may require organization login enforcement, but the policy file failed to load.
Contact your administrator.

Detail: <source>: <reason>
```

Dalam keadaan yang sama, alur sign-in, permintaan API dari sesi yang sudah berjalan, dan server [`claude gateway`](/docs/id/claude-apps-gateway) ditolak dengan varian baris pertama yang menyebutkan [`allowedProviders`](/docs/id/settings-reference#allowedproviders).

Pembacaan yang ditolak sistem operasi, seperti pada file root-only, tidak menghasilkan keluar ini: [sesi dimulai tanpa kebijakan sumber itu](/docs/id/managed-settings#find-entries-claude-code-dropped). Untuk sumber yang tidak dapat diuraikan, Claude Code keluar dengan [pesan berbeda yang menyebutkan sumber](#managed-settings-document-could-not-be-parsed).

**Yang harus dilakukan:**

* Jika Anda mengelola mesin, perbaiki masalah yang dinamai baris `Detail:` sehingga sumber yang diterapkan dapat dibaca, atau hapus sumber
* Jika tidak, kirim pesan ke administrator Anda. Tidak ada dalam file pengaturan Anda sendiri yang menyebabkan atau menghapus kesalahan ini

Sebelum v2.1.285, hanya sesi yang masuk dengan kredensial claude.ai atau Claude Console yang keluar dengan pesan ini, dan pembacaan yang ditolak sistem operasi juga menghasilkannya.

<h3 id="managed-settings-hooks-not-loaded">
  Managed settings contain invalid entries, including PreToolUse/PermissionRequest hooks that are NOT loaded
</h3>

Blok stderr dari proses `-p` ini berarti sebuah sumber [pengaturan terkelola](/docs/id/managed-settings) berisi entri hook yang tidak dapat dimuat oleh Claude Code. Hook tersebut tidak berjalan, dan ketika sebuah baris mencantumkan bidang `hooks` sumber tersebut sebagai diabaikan, tidak ada hook dari sumber tersebut yang berjalan.

Setiap baris menyebutkan sumber, bidang jika ada, dan masalahnya, seperti `type` hook yang tidak dikenal atau hook yang dideklarasikan di luar kunci `hooks`:

```text theme={null}
Managed settings contain invalid entries, including PreToolUse/PermissionRequest hooks that are NOT loaded; fix or remove each entry:
  <source> (<field>): <message>
```

**Yang harus dilakukan:**

* Jika Anda mengelola sumber tersebut, perbaiki atau hapus setiap entri yang dicantumkan blok. [Konfigurasi hook](/docs/id/hooks#configuration) menunjukkan bentuk yang diharapkan Claude Code di bawah `hooks`.
* Jika sumber sebuah baris adalah `parent managed settings`, aplikasi yang meluncurkan Claude Code meneruskan entri tersebut sebagai [pengaturan induk](/docs/id/managed-settings#parent-settings-from-embedding-hosts), jadi laporkan kepada pengembang aplikasi tersebut
* Jika tidak, kirim blok tersebut ke administrator Anda

Sebelum v2.1.300, proses `-p` mencantumkan kasus ini di bawah header `Managed settings failed to load; policies from the failed source are NOT in effect:`.

<h3 id="otelheadershelper-failed">
  otelHeadersHelper gagal
</h3>

Claude Code menampilkan peringatan ini sebagai notifikasi dalam antarmuka terminal, sekali per sesi interaktif, ketika skrip [`otelHeadersHelper`](/docs/id/settings-reference#otelheadershelper) gagal atau mencetak output yang tidak memenuhi [persyaratan skrip](/docs/id/monitoring-usage#script-requirements).

Sementara skrip terus gagal, ekspor gagal dan backend telemetri Anda tidak menerima apa pun dari sesi.

Teks setelah `See /status:` mengatakan apa yang gagal, seperti kode keluar skrip diikuti oleh output kesalahannya:

```text theme={null}
otelHeadersHelper failed; telemetry is not being exported. See /status: exited 1: token service unreachable
```

**Yang harus dilakukan:**

* Jalankan `/status` untuk membaca detail kegagalan.
* Perbaiki skrip sehingga keluar 0 dalam 30 detik dan mencetak objek JSON dari nilai header string di stdout. Lihat [script requirements](/docs/id/monitoring-usage#script-requirements).
* Jika organisasi Anda menerapkan skrip melalui [managed settings](/docs/id/managed-settings), minta siapa pun yang memeliharanya untuk memperbaikinya.

Dalam [mode non-interaktif](/docs/id/headless) dengan `-p`, kegagalan yang sama muncul di stderr sebagai `otelHeadersHelper failed (OpenTelemetry export headers unavailable): <error>` sebagai gantinya.

<h3 id="headershelper-not-run">
  headersHelper tidak dijalankan
</h3>

Claude Code menghubungkan server MCP dengan `headers` statis saja dan melewati [`headersHelper`](/docs/id/mcp#use-dynamic-headers-for-custom-authentication) server, karena helper adalah perintah shell dan folder tidak memiliki kepercayaan yang disimpan. Folder mendapatkan kepercayaan yang disimpan ketika Anda mengatur entrinya di `~/.claude.json` dengan tangan atau, di luar direktori home Anda, ketika Anda menerima dialog kepercayaan untuk itu dalam sesi interaktif. Lihat [Trust a folder before its headersHelper runs](/docs/id/mcp#trust-a-folder-before-its-headershelper-runs) untuk server mana pemeriksaan ini berlaku.

Claude Code menulis baris ini dalam [mode non-interaktif](/docs/id/headless) saja, sekali per server. Dalam sesi interaktif, itu menulis penolakan yang sama ke log debug sebagai gantinya.

```text theme={null}
MCP server 'internal-api': headersHelper not run — this workspace has no persisted trust; accept the trust dialog here once interactively, or set projects["/Users/you/project"].hasTrustDialogAccepted in /Users/you/.claude.json.
```

Kunci `projects` yang dicetak pesan adalah folder yang [Project allow rules and workspace trust](/docs/id/permissions#project-allow-rules-and-workspace-trust) katakan Claude Code kunci kepercayaan. Menerima dialog kepercayaan untuk folder induk tidak memenuhi pemeriksaan, dan sesi `-p` atau SDK tidak memenuhinya juga.

**Yang harus dilakukan:**

* Jalankan `claude` di folder yang dinamai pesan, terima dialog kepercayaan, kemudian jalankan perintah `-p` atau SDK Anda lagi
* Atur entri `hasTrustDialogAccepted` dalam `~/.claude.json` sendiri, menggunakan kunci `projects` yang tepat yang dicetak pesan
* Jika Anda memulai sesi di direktori home Anda, bekerja dari direktori proyek yang telah Anda percayai. Ketika Anda menerima dialog kepercayaan di direktori home Anda, Claude Code menyimpan kepercayaan itu untuk sesi saat ini saja.

<h3 id="malformed-tool-content-rule">
  Aturan Tool(content) yang salah format
</h3>

[Aturan izin](/docs/id/permissions#permission-rule-syntax) dalam salah satu file pengaturan Anda tidak memiliki bentuk `Tool` atau `Tool(content)`, misalnya karena teks mengikuti tanda kurung penutup atau salah satu tanda kurung hilang. Claude Code melewati aturan dan mencantumnya dalam dialog pengaturan yang tidak valid ketika sesi interaktif dimulai, dan dalam output [`claude doctor`](/docs/id/debug-your-config#check-resolved-settings):

```text theme={null}
Invalid permission rule "Bash(ls) x" was skipped: Malformed Tool(content) rule. Rules take the form Tool or Tool(content) and must end at the closing ")"; parentheses inside the content are literal
```

**Yang harus dilakukan:**

* Dalam file pengaturan yang tercantum dengan pesan, tulis ulang aturan sehingga berakhir pada tanda kurung penutupnya, misalnya `Bash(ls *)` sebagai pengganti `Bash(ls) x`
* Biarkan tanda kurung di dalam konten apa adanya. Mereka literal, jadi aturan seperti `Edit(./Finance (2024)/**)` valid tanpa escaping

Sebelum v2.1.260, Claude Code melaporkan aturan dengan tanda kurung yang tidak cocok sebagai `Mismatched parentheses`.

<h3 id="is-not-matched-by-file-permission-checks">
  Tidak cocok dengan pemeriksaan izin file
</h3>

Claude Code menemukan aturan [izin](/docs/id/permissions#read-and-edit) `Write`, `NotebookEdit`, `MultiEdit`, atau `Glob` dengan jalur dalam salah satu [file pengaturan](/docs/id/settings#where-settings-live) Anda, dalam [managed settings](/docs/id/managed-settings), atau dalam nilai flag `--allowedTools`, `--disallowedTools`, atau `--settings`. Itu memeriksa izin file terhadap aturan `Edit` dan `Read` saja, jadi tidak pernah berkonsultasi dengan aturan jalur yang menyebutkan salah satu tool file lainnya. Itu menyimpan aturan dan tidak mengubah apa pun yang lain; peringatan menyebutkan aturan, sumbernya dalam tanda kurung, dan penggantian untuk ditulis:

```text theme={null}
Permission deny rule (.claude/settings.json): Write(docs/**) is not matched by file permission checks — only Edit(path) rules are. Use Edit(docs/**) instead (Edit rules cover all file-editing tools).
```

**Yang harus dilakukan:**

* Ganti aturan `Write(path)`, `NotebookEdit(path)`, dan `MultiEdit(path)` warisan dengan `Edit(path)`. Aturan `Edit` mencakup semua tool pengeditan file.
* Kecuali dalam `--allowedTools`, di mana Claude Code menerima aturan `Glob` tanpa peringatan, ganti aturan `Glob(path)` dengan `Read(path)`.
* Perbaiki aturan di sumber yang dinamai peringatan dalam tanda kurung: jalur file pengaturan, atau flag itu sendiri untuk `--allowed-tools` dan `--disallowed-tools`. Jalur `claude-settings-<hash>.json` yang tidak ada di disk mewakili nilai `--settings` inline. Perbaiki JSON yang Anda teruskan ke flag itu.
* Biarkan aturan nama tool bare seperti `Write` atau `Glob` saja. Claude Code mencocokkannya di [tingkat tool](/docs/id/permissions#match-all-uses-of-a-tool) dan tidak memperingatkan tentang mereka.
* Jika sumber berbunyi `managed policy settings`, teruskan peringatan kepada siapa pun yang memelihara pengaturan yang dikelola Anda, karena Anda tidak dapat menghapusnya sendiri.

Dalam [background session](/docs/id/agent-view) atau dengan `--output-format json` atau `stream-json`, Claude Code menulis peringatan ke log debug daripada stderr, jadi output yang dibaca mesin tetap bersih. Jalankan dengan `--debug` untuk menangkapnya di `~/.claude/debug/<session-id>.txt`. Sebelum v2.1.210, Claude Code menerima aturan ini tanpa peringatan.

<h3 id="has-a-wildcard-before-the-rest-of-the-command">
  Memiliki wildcard sebelum sisa perintah
</h3>

Claude Code menemukan aturan allow `Bash` yang `*` nya datang sebelum kata belakangan yang menentukan perintah mana itu, seperti `Bash(git * main)` atau `Bash(git -C * status *)`, dalam salah satu [file pengaturan](/docs/id/settings#where-settings-live) Anda, dalam [managed settings](/docs/id/managed-settings), atau dalam nilai flag `--allowedTools` atau `--settings`. `*` cocok dengan teks apa pun, termasuk opsi yang disisipkan pada posisi itu: `Bash(git * main)` juga menyetujui `git -c core.fsmonitor=<script> diff main`, di mana `-c` membuat git menjalankan program yang dinamai perintah. [Wildcard patterns](/docs/id/permissions#wildcard-patterns) menunjukkan aturan pencocokan.

Peringatan ada sehingga Anda dapat mempersempit aturan yang wildcard-nya lebih luas dari yang Anda maksudkan. Claude Code menyimpan aturan dan tidak mengubah apa pun tentang cara pencocokannya; peringatan menyebutkan aturan dan sumbernya dalam tanda kurung:

```text theme={null}
Permission allow rule (.claude/settings.json): Bash(git -C * status *) has a wildcard before the rest of the command, so it also matches any options inserted at that position and approves them without a prompt. For git, options such as -c and --exec-path can run arbitrary commands. Replace that * with the exact value you mean, or only use * after the subcommand (for example Bash(git status *)).
```

**Yang harus dilakukan:**

* Ganti `*` sebelum subperintah dengan nilai yang tepat yang Anda maksudkan: `Bash(git checkout main)` sebagai pengganti `Bash(git * main)`.
* Pindahkan setiap `*` setelah subperintah: `Bash(git status *)` sebagai pengganti `Bash(git -C * status *)`. Tulis satu aturan per subperintah yang ingin Anda izinkan.
* Perbaiki aturan di sumber yang dinamai peringatan dalam tanda kurung: jalur file pengaturan, atau flag `--allowed-tools` itu sendiri. Jalur `claude-settings-<hash>.json` yang tidak ada di disk mewakili nilai `--settings` inline. Perbaiki JSON yang Anda teruskan ke flag itu.
* Jika sumber berbunyi `managed policy settings`, teruskan peringatan kepada siapa pun yang memelihara pengaturan yang dikelola Anda, karena Anda tidak dapat menghapusnya sendiri.

Dalam [background session](/docs/id/agent-view) atau dengan `--output-format json` atau `stream-json`, Claude Code menulis peringatan ke log debug daripada stderr, jadi output yang dibaca mesin tetap bersih. Jalankan dengan `--debug` untuk menangkapnya di `~/.claude/debug/<session-id>.txt`. Sebelum v2.1.246, Claude Code menerima aturan ini tanpa peringatan.

<h3 id="denying-bash-also-turns-off-the-powershell-tool">
  Denying Bash also turns off the PowerShell tool
</h3>

Anda menghapus seluruh tool Bash, misalnya dengan `--disallowedTools Bash` atau dengan [aturan deny](/docs/id/permissions#match-all-uses-of-a-tool) `Bash` atau `Bash(*)` tanpa cakupan di salah satu file pengaturan Anda. Di Windows dengan Git Bash terinstal, [menolak Bash juga mematikan tool PowerShell](/docs/id/tools-reference#bash-deny-rules-also-turn-off-the-powershell-tool), sehingga sesi dimulai tanpa tool shell. Claude Code mencetak peringatan ini saat startup:

```text theme={null}
Denying Bash also turns off the PowerShell tool, so Claude has neither. To use PowerShell, set CLAUDE_CODE_USE_POWERSHELL_TOOL=1.
```

**Yang harus dilakukan:**

* Agar Claude menggunakan PowerShell, atur [`CLAUDE_CODE_USE_POWERSHELL_TOOL`](/docs/id/env-vars) ke `1` di environment Anda atau di blok `env` file pengaturan, seperti yang ditunjukkan [Enable the PowerShell tool](/docs/id/tools-reference#enable-the-powershell-tool). Tool PowerShell kemudian tetap aktif bersama aturan deny Bash Anda.
* Untuk memblokir perintah tertentu alih-alih seluruh tool, ganti entri `Bash` tanpa cakupan dengan aturan bercakupan seperti `Bash(git push *)` di file pengaturan atau flag yang sama. Claude tetap memiliki tool Bash, dan tool PowerShell tetap mati sampai Anda juga mengatur variabel tersebut atau menambahkan [aturan izin `PowerShell`](/docs/id/permissions#powershell) bercakupan.

Dalam [background session](/docs/id/agent-view) atau dengan `--output-format json` atau `stream-json`, Claude Code menulis peringatan ke log debug daripada stderr. Jalankan dengan `--debug` untuk menangkapnya di `~/.claude/debug/<session-id>.txt`. Sebelum v2.1.287, Claude Code mematikan tool PowerShell dengan cara yang sama tanpa mencetak peringatan.

<h3 id="crosssessioninbound-must-be-one-of-accept-hold-refuse">
  crossSessionInbound harus salah satu dari accept, hold, refuse
</h3>

File pengaturan menetapkan [`crossSessionInbound`](/docs/id/settings-reference#crosssessioninbound) ke nilai yang tidak dikenali Claude Code, seperti typo `"reject"`. Kalimat kedua peringatan tergantung pada file mana yang menyimpan nilai; dalam file pengguna, proyek, lokal, atau `--settings` berbunyi:

```text theme={null}
"crossSessionInbound" must be one of "accept", "hold", "refuse"; received "reject". This value was ignored; while it is present, cross-session messages are held for your approval instead of being delivered. Set it to one of the values above.
```

Dalam [managed settings](/docs/id/managed-settings), Claude Code memperlakukan nilai yang tidak dikenali sebagai `refuse`, nilai paling ketat, dan peringatan mengatakan pesan lintas sesi ditolak sampai administrator memperbaikinya. Untuk cara hold menggabungkan dengan nilai dalam file pengaturan lainnya, lihat [`crossSessionInbound`](/docs/id/settings-reference#crosssessioninbound).

**Yang harus dilakukan:**

* Atur kunci ke `"accept"`, `"hold"`, atau `"refuse"`, atau hapus
* Ketika peringatan menyebutkan managed settings, minta administrator untuk memperbaiki nilai

Sebelum v2.1.248, Claude Code mengabaikan nilai yang tidak dikenali tanpa peringatan.

<h3 id="anthropic-foundry-resource-must-be-a-foundry-resource-name">
  ANTHROPIC\_FOUNDRY\_RESOURCE harus berupa nama resource Foundry
</h3>

Anda menetapkan [`ANTHROPIC_FOUNDRY_RESOURCE`](/docs/id/env-vars) ke sesuatu selain nama resource [Microsoft Foundry](/docs/id/microsoft-foundry) saja, seperti URL endpoint atau nama host-nya. Claude Code menolak nilai tersebut sebelum mengirim permintaan. Pesan muncul sebagai pengganti balasan Claude, bukan sebagai peringatan startup:

```text theme={null}
API Error: ANTHROPIC_FOUNDRY_RESOURCE must be a Foundry resource name (2-64 letters, digits and hyphens, not starting or ending with a hyphen, such as my-resource), not a URL or host name. To use a full URL, set ANTHROPIC_FOUNDRY_BASE_URL instead.
```

**Yang harus dilakukan:**

* Atur `ANTHROPIC_FOUNDRY_RESOURCE` ke nama resource saja dan restart Claude Code. Untuk endpoint `https://my-resource.services.ai.azure.com/anthropic`, namanya adalah `my-resource`.
* Untuk memberikan URL endpoint lengkap sebagai gantinya, atur [`ANTHROPIC_FOUNDRY_BASE_URL`](/docs/id/env-vars) ke URL tersebut dan hapus `ANTHROPIC_FOUNDRY_RESOURCE`, kemudian restart Claude Code. Claude Code hanya menerima salah satu dari kedua variabel tersebut.

<h3 id="the-200k-limit-isnt-enforced">
  Batas 200K tidak ditegakkan
</h3>

Anda menetapkan [`CLAUDE_CODE_DISABLE_1M_CONTEXT=1`](/docs/id/env-vars), yang biasanya membuat [auto-compaction](/docs/id/model-config#default-auto-compact-thresholds) menahan sesi pada model konteks 1M ke jendela 200K, tetapi tidak ada ambang batas compaction yang membatasi sesi ini pada atau di bawah 200K, jadi percakapan dapat tumbuh melampaui itu.

```text theme={null}
CLAUDE_CODE_DISABLE_1M_CONTEXT is set, but the 200K limit isn't enforced for <model>, so this session can grow past it. To enforce it, set CLAUDE_CODE_AUTO_COMPACT_WINDOW=200000 (or the autoCompactWindow setting).
```

Claude Code menegakkan batas 200K sendiri untuk setiap model yang dikenalinya sebagai memiliki jendela 1M asli, dan untuk ID model yang tidak dikenalinya, itu compacts pada jendela yang diasumsikan. Peringatan muncul ketika konfigurasi lain mengalahkan penegakan itu:

* ID model bukan yang dikenali Claude Code, seperti alias [LLM gateway](/docs/id/llm-gateway), dan Anda menetapkan [`CLAUDE_CODE_DISABLE_UNKNOWN_MODEL_WINDOW_ENFORCEMENT=1`](/docs/id/env-vars) atau menaikkan jendela yang diasumsikan melampaui 200K dengan [`CLAUDE_CODE_MAX_CONTEXT_TOKENS`](/docs/id/env-vars). Dalam hal ini pesan juga menawarkan `or update to a Claude Code version that recognizes <model>` sebagai obat.
* Beta `context-1m` yang diminta melalui [`ANTHROPIC_BETAS`](/docs/id/env-vars) atau flag [`--betas`](/docs/id/cli-reference#cli-flags) masih meminta API untuk jendela 1M pada model yang menerima beta itu, sementara tidak ada yang compacts sesi pada 200K

**Yang harus dilakukan:**

* Atur [`CLAUDE_CODE_AUTO_COMPACT_WINDOW=200000`](/docs/id/env-vars), atau pengaturan [`autoCompactWindow`](/docs/id/settings-reference#autocompactwindow) ke `200000`, sehingga auto-compaction compacts pada batas 200K
* Jika pesan menyebutkan ID model yang versi ini tidak kenali, jalankan `claude update`. Versi yang mengenali ID sebagai model konteks 1M menegakkan batas tanpa konfigurasi lebih lanjut.
* Jika Anda ingin sesi menggunakan jendela penuh model sebagai gantinya, batalkan `CLAUDE_CODE_DISABLE_1M_CONTEXT`; peringatan melaporkan hanya bahwa batas 200K tidak ditegakkan

Dalam [background session](/docs/id/agent-view) atau dengan `--output-format json` atau `stream-json`, Claude Code menulis peringatan ke log debug daripada stderr.

<h3 id="unrecognized-model-id-on-a-request">
  ID model yang tidak dikenali pada permintaan
</h3>

Claude Code mengirim permintaan untuk ID model yang versi Claude Code Anda tidak kenali, dan tidak menemukan entri [`modelOverrides`](/docs/id/model-config#override-model-ids-per-version) yang memetakan ID itu ke model yang dikenalinya. Claude Code masih mengirim permintaan dengan ID seperti yang Anda konfigurasi, dan tidak keluar atau beralih model.

```text theme={null}
[claude-code:unrecognized_model] {"model":"my-proxy-model","query_source":"sdk"}
```

Dalam skrip atau harness yang membaca stderr, cocokkan pada awalan `[claude-code:unrecognized_model]`. Setelah awalan dan satu spasi, Claude Code menulis objek JSON satu baris. Claude Code dapat menambahkan bidang ke dalamnya dalam versi yang lebih baru, jadi abaikan bidang apa pun yang tidak Anda harapkan. Itu menulis setidaknya dua ini:

* `model`: string model seperti yang Anda konfigurasi
* `query_source`: jalur permintaan yang menggunakan model. Claude Code melaporkan `sdk` untuk jalankan `-p` dan nilai yang dimulai dengan `agent:` untuk subagent.

Claude Code menulis baris ke salah satu dari dua tempat, tergantung pada cara Anda menjalankannya:

* Dalam [mode non-interaktif](/docs/id/headless) dengan `-p`, Claude Code menulis ke stderr di bawah setiap `--output-format`, jadi Anda dapat menguraikan stdout tanpa memfilter baris keluar
* Dalam sesi interaktif atau [background session](/docs/id/agent-view), Claude Code menulis ke log debug sebagai gantinya; jalankan dengan `--debug` untuk menangkapnya di `~/.claude/debug/<session-id>.txt`

Claude Code menulis baris sekali per string model per proses. Itu menulis baris terpisah untuk setiap ID yang tidak dikenali lebih lanjut, seperti yang digunakan [subagent](/docs/id/sub-agents#choose-a-model) atau [background functionality](/docs/id/costs#background-token-usage).

Claude Code tidak menulis baris untuk ID penyedia yang diselesaikannya ke model yang dikenalinya, seperti Amazon Bedrock `us.anthropic.claude-...` ID, ID Agent Platform Google Cloud dengan akhiran versi `@`, dan nama deployment Microsoft Foundry yang berisi ID model Claude. Claude Code memeriksa model di balik [application inference profile ARN](/docs/id/amazon-bedrock#map-each-model-version-to-an-inference-profile) Amazon Bedrock daripada ARN itu sendiri. Itu tidak menulis baris untuk ARN yang tidak dapat diselesaikannya, seperti yang salah ketik.

**Yang harus dilakukan:**

* Jika Anda menetapkan ID dengan sengaja, seperti alias [LLM gateway](/docs/id/llm-gateway), tambahkan entri [`modelOverrides`](/docs/id/model-config#override-model-ids-per-version) ke [file pengaturan](/docs/id/settings#where-settings-live) Anda dengan ID sebagai nilainya. Gunakan ID model Anthropic sebagai kunci, bukan alias keluarga seperti `opus`. Untuk `my-proxy-model` dari baris contoh, tambahkan entri ini:

  ```json theme={null}
  {
    "modelOverrides": {
      "claude-opus-4-6": "my-proxy-model"
    }
  }
  ```

  Claude Code kemudian memperlakukan `my-proxy-model` sebagai `claude-opus-4-6` dan berhenti menulis baris.

* Jika ID menyebutkan model yang lebih baru dari versi Claude Code Anda, jalankan `claude update`

* Jika ID adalah typo, perbaiki di mana pun dari [tempat Anda dapat menetapkan model](/docs/id/model-config#setting-your-model) atau [variabel alias](/docs/id/model-config#environment-variables) yang menyimpannya. Jika `query_source` dimulai dengan `agent:`, perbaiki di mana Anda menetapkan [model subagent](/docs/id/sub-agents#choose-a-model) sebagai gantinya.

Sebelum v2.1.233, Claude Code tidak menulis baris ketika mengirim permintaan untuk ID model yang tidak dikenalinya.

<h3 id="sandbox-allow-entries-are-ignored-under-a-managed-lock">
  Entri allow sandbox diabaikan di bawah kunci terkelola
</h3>

Peringatan di `/status` dan `claude doctor` ini berarti pengaturan terkelola menetapkan [`allowManagedReadPathsOnly`](/docs/id/settings-reference#sandbox-filesystem-allowmanagedreadpathsonly) atau [`allowManagedDomainsOnly`](/docs/id/settings-reference#sandbox-network-allowmanageddomainsonly), sehingga entri [`allowRead`](/docs/id/settings-reference#sandbox-filesystem-allowread) atau [`allowedDomains`](/docs/id/settings-reference#sandbox-network-alloweddomains) dalam file yang disebutkannya tidak berlaku:

```text wrap theme={null}
sandbox.filesystem.allowRead is ignored — managed settings set allowManagedReadPathsOnly, so only allowRead paths from managed settings are honored. The 3 entries in /home/you/.claude/settings.json will NOT apply (see https://code.claude.com/docs/en/settings#sandbox-settings).
```

Untuk kunci jaringan, peringatan menyebutkan `sandbox.network.allowedDomains` dan `allowManagedDomainsOnly`, dan mengatakan `only allowed domains (and WebFetch domain rules) from managed settings are honored`.

**Yang harus dilakukan:**

* Anda tidak perlu menindaklanjuti peringatan ini
* Jika Anda memerlukan jalur atau domain tersebut dan pengaturan terkelola organisasi Anda menetapkan kunci tersebut, minta administrator Anda untuk menambahkannya ke pengaturan tersebut. Peringatan tetap ada sampai Anda juga menghapus entri dari file yang disebutkan.
* Untuk menghilangkan peringatan, hapus entri dari file yang disebutkan. Untuk file yang Anda bagikan, seperti `.claude/settings.json` proyek, Anda dapat membiarkan entri tetap ada untuk rekan tim yang tidak memiliki kunci tersebut dan membiarkan peringatan tetap tampil.

<h3 id="stale-sandbox-mask-files-left-by-a-killed-session">
  File mask sandbox basi ditinggalkan oleh sesi yang dibunuh
</h3>

`claude doctor` mencetak peringatan ini dalam diagnostiknya, dan `/status` mencantumkan baris yang sama. Itu muncul di Linux dan WSL2 ketika [sandboxing](/docs/id/sandboxing) diaktifkan dengan isolasi filesystem aktif.

Sementara perintah sandboxed berjalan, sandbox menyimpan penolakan tulis pada file yang belum ada dengan membuat placeholder read-only 0-byte di sana, dan menghapusnya setelahnya. Sesi yang dibunuh sebelum pembersihan itu berjalan, misalnya oleh SIGKILL, meninggalkan placeholder di belakang. Sesi-sesi kemudian mengikatnya read-only lagi pada setiap start, jadi penulisan pengaturan seperti menyimpan "Yes, and don't ask again" gagal di mana satu duduk.

```text theme={null}
- Stale sandbox mask files left by a killed session: /home/you/project/.claude/settings.local.json
  Fix: Remove each with `rm <path>` while no other Claude Code session is running in that project — a 0-byte read-only file where a settings file belongs makes "Yes, and don't ask again" fail to save, and the sandbox binds it read-only again on every start
```

**Yang harus dilakukan:**

* Keluar dari sesi Claude Code lain yang berjalan di proyek itu, kemudian hapus setiap file yang tercantum dengan `rm`. Peringatan menyebutkan hingga tiga file dan menghitung sisanya, jadi jalankan kembali `claude doctor` setelah menghapus sampai peringatan tidak lagi muncul. Placeholder yang sandbox sesi lain masih gunakan adalah bagian hidup dari perlindungan tulis sesi itu
* Jika pilihan izin yang Anda simpan dengan "Yes, and don't ask again" tidak tetap, simpan lagi setelah menghapus placeholder

Sebelum v2.1.257, `claude doctor` tidak menandai file-file ini; versi-versi sebelumnya meninggalkan placeholder yang sama di belakang ketika sesi dibunuh.

<h2 id="responses-seem-lower-quality-than-usual">
  Respons tampak berkualitas lebih rendah dari biasanya
</h2>

Jika jawaban Claude tampak kurang mampu dari yang Anda harapkan tetapi tidak ada kesalahan yang ditampilkan, penyebabnya biasanya adalah status percakapan daripada model itu sendiri. Claude Code tidak secara diam-diam mengubah versi model. Ini dapat beralih ke model fallback dalam kasus-kasus berikut:

* [`--fallback-model`](/docs/id/cli-reference#cli-flags) yang dikonfigurasi mengambil alih setelah kesalahan ketersediaan, hanya untuk giliran itu, dengan pemberitahuan dalam transkrip
* Pemeriksaan startup Amazon Bedrock atau Google Cloud's Agent Platform menemukan model default Anda tidak tersedia, atau akun Anda [kehilangan akses ke sana di tengah sesi](/docs/id/amazon-bedrock#when-a-model-is-disabled-mid-session)
* [Fallback model otomatis](/docs/id/model-config#automatic-model-fallback) pada Fable 5.1, Fable 5, Opus 5.5, Sonnet 5.5, dan Opus 5 memindahkan sesi ke model fallback kategori yang ditandai, ketika kategori itu memiliki satu, dan menampilkan pemberitahuan dalam transkrip

Pemeriksaan Model selection di bawah menangkap kasus kedua dan ketiga; yang pertama muncul sebagai pemberitahuan transkrip daripada perubahan `/model`. [Model configuration](/docs/id/model-config) menjelaskan kapan setiap fallback berlaku.

Periksa ini terlebih dahulu:

* **Model selection**: jalankan `/model` untuk mengonfirmasi Anda berada di model yang Anda harapkan. Pilihan `/model` sebelumnya atau variabel lingkungan `ANTHROPIC_MODEL` mungkin membuat Anda berada di model yang lebih kecil dari yang Anda maksudkan.
* **Effort level**: jalankan `/effort` untuk memeriksa tingkat penalaran saat ini dan naikkan untuk debugging atau pekerjaan desain yang sulit. Default bervariasi menurut model, jadi periksa sebelum menganggap Anda di bawah maksimum. Lihat [Adjust effort level](/docs/id/model-config#adjust-effort-level) untuk default per-model dan pintasan `ultrathink`.
* **Context pressure**: jalankan `/context` untuk melihat seberapa penuh jendela itu. Jika mendekati kapasitas, jalankan `/compact` pada titik alami atau `/clear` untuk memulai segar. Lihat [Explore the context window](/docs/id/context-window) untuk bagaimana auto-compact mempengaruhi giliran sebelumnya.
* **Stale instructions**: file `CLAUDE.md` yang besar atau ketinggalan zaman dan definisi alat MCP mengonsumsi konteks dan dapat mengarahkan respons. Pemeriksaan `/doctor` menandai file memori yang berukuran besar dan ekstensi yang tidak digunakan, dan `/context` menampilkan penggunaan token alat MCP. Sebelum v2.1.205, `/doctor` membuka layar diagnostik yang menandai file memori yang berukuran besar dan definisi subagent.

Ketika respons salah, rewinding biasanya bekerja lebih baik daripada membalas dengan koreksi. Tekan Esc dua kali atau jalankan `/rewind` untuk mundur ke sebelum giliran buruk, kemudian rephrase prompt dengan lebih spesifik. Mengoreksi dalam-thread menjaga upaya yang salah dalam konteks, yang dapat menambatkan jawaban nanti ke sana. Lihat [Checkpointing](/docs/id/checkpointing).

Jika kualitas masih tampak tidak benar setelah memeriksa di atas, jalankan `/feedback` dan jelaskan apa yang Anda harapkan versus apa yang Anda dapatkan. Umpan balik yang dikirimkan dengan cara ini mencakup transkrip percakapan, yang merupakan cara tercepat bagi Anthropic untuk mendiagnosis regresi nyata. Lihat [Report an error](#report-an-error) jika `/feedback` tidak tersedia di lingkungan Anda.

Jika Claude memperingatkan tentang injeksi prompt yang dicurigai, atau menolak permintaan karena injeksi yang dicurigai, dan teks yang dinamai peringatan adalah konteks yang Claude Code tambahkan ke percakapan secara otomatis daripada konten file atau web, jalankan `claude update` dan coba lagi. Jika peringatan berulang setelah memperbarui, [laporkan](#report-an-error) daripada menempel konten yang ditandai kembali ke prompt. Sebelum v2.1.201, Sonnet 5 menolak beberapa permintaan dengan cara yang sama.

<h2 id="report-an-error">
  Laporkan kesalahan
</h2>

Untuk kesalahan dari komponen yang tidak tercakup di halaman ini, lihat panduan yang relevan:

* Server MCP gagal terhubung atau autentikasi: [MCP](/docs/id/mcp)
* Skrip hook gagal atau memblokir alat: [Debug hooks](/docs/id/hooks#debug-hooks)
* Izin ditolak atau kesalahan sistem file selama instalasi: [Troubleshoot installation and login](/docs/id/troubleshoot-install)

Jika kesalahan tidak tercantum di sini atau perbaikan yang disarankan tidak membantu:

* Jalankan `/feedback` di dalam Claude Code untuk mengirimkan transkrip dan deskripsi ke Anthropic. Perintah ini juga menawarkan untuk membuka masalah GitHub yang sudah diisi sebelumnya. Pengiriman ke Anthropic memerlukan [authentication](/docs/id/authentication). Di Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry, dan penyedia pihak ketiga lainnya, atau ketika tidak ada kredensial Anthropic yang dikonfigurasi, `/feedback` menyimpan arsip lokal yang dapat Anda kirimkan ke perwakilan akun Anthropic Anda.
* Jalankan `claude doctor` dari shell Anda untuk diagnostik sistem file read-only dari instalasi Anda, atau jalankan pemeriksaan `/doctor` di dalam Claude Code untuk menemukan dan memperbaiki masalah pengaturan
* Periksa [status.claude.com](https://status.claude.com) untuk insiden aktif
* Cari [existing issues](https://github.com/anthropics/claude-code/issues) di GitHub
