diff --git a/ko/errors.md b/ko/errors.md index a6573915e38d65e978cae467537a7787ec20e3ac..3feb2f4de8e488ed90fec81fbf123fd9a973754f 100644 --- a/ko/errors.md +++ b/ko/errors.md @@ -8,7 +8,7 @@ 이 페이지에는 Claude Code가 표시하는 런타임 오류와 각 오류에서 복구하는 방법, 그리고 오류 없이 응답이 이상해 보일 때 확인할 사항이 나열되어 있습니다. 설정 중 `command not found` 또는 TLS 오류와 같은 설치 오류는 [설치 및 로그인 문제 해결](/docs/ko/troubleshoot-install)을 참조하십시오. -[래퍼 및 IDE 오류](#wrapper-and-ide-errors)를 제외하고, 이는 Claude Code 자체가 아닌 실행 프로그램이 출력하는 오류이며, 이러한 오류 및 복구 명령은 CLI, [데스크톱 앱](/docs/ko/desktop), [웹의 Claude Code](/docs/ko/claude-code-on-the-web)에 모두 적용됩니다. 세 가지 모두 동일한 Claude Code CLI를 래핑하기 때문입니다. 다른 표면별 문제는 해당 표면의 페이지에 있는 문제 해결 섹션을 참조하십시오. +Claude Code 자체가 아닌 실행 프로그램이 출력하는 [래퍼 및 IDE 오류](#wrapper-and-ide-errors)를 제외하면, 이러한 오류와 복구 명령은 CLI, [데스크톱 앱](/docs/ko/desktop), [클라우드 세션](/docs/ko/claude-code-on-the-web)에 모두 적용됩니다. 세 가지 모두 동일한 Claude Code CLI를 래핑하기 때문입니다. 기타 사용 환경별 문제는 해당 사용 환경 페이지의 문제 해결 섹션을 참조하십시오. Claude Code는 모델 응답을 위해 Claude API를 호출하므로 대부분의 런타임 오류는 기본 API 오류 코드에 매핑됩니다. 이 페이지에서는 Claude Code 내에서 각 오류의 의미와 복구 방법을 다룹니다. 원본 HTTP 상태 코드 정의는 [Claude Platform 오류 참조](https://platform.claude.com/docs/en/api/errors)를 참조하십시오. @@ -42,15 +42,15 @@ | `The server-side auto mode classifier gave no verdict` | [서버 오류](#the-server-returned-no-safety-verdict) | | `Auto mode is unavailable — the server returned no safety verdict for the last 10 responses` | [서버 오류](#the-server-returned-no-safety-verdict) | | `Agent terminated early due to an API error` | [서버 오류](#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` | [사용 제한](#youve-hit-your-session-limit) | -| `Usage credits required for 1M context` | [사용 제한](#usage-credits-required-for-1m-context) | -| `the prompt to confirm went unanswered — nothing was sent` | [사용 제한](#the-prompt-to-confirm-went-unanswered) | -| `Server is temporarily limiting requests` | [사용 제한](#server-is-temporarily-limiting-requests) | -| `Request rejected (429)` | [사용 제한](#request-rejected-429) | -| `Credit balance is too low` | [사용 제한](#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` | [사용 제한](#youve-hit-your-monthly-spend-limit) | -| `Could not update your spend limit` | [사용 제한](#could-not-update-your-spend-limit) | -| `spend limit reached` / `spend limit unavailable` | [사용 제한](#spend-limit-reached) | +| `You've hit your session limit` / `You've hit your weekly limit` / `You've hit your Opus limit` / `You've hit your Sonnet limit` | [사용 한도](#youve-hit-your-session-limit) | +| `Usage credits required for 1M context` | [사용 한도](#usage-credits-required-for-1m-context) | +| `the prompt to confirm went unanswered — nothing was sent` | [사용 한도](#the-prompt-to-confirm-went-unanswered) | +| `Server is temporarily limiting requests` | [사용 한도](#server-is-temporarily-limiting-requests) | +| `Request rejected (429)` | [사용 한도](#request-rejected-429) | +| `Credit balance is too low` | [사용 한도](#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` | [사용 한도](#youve-hit-your-monthly-spend-limit) | +| `Could not update your spend limit` | [사용 한도](#could-not-update-your-spend-limit) | +| `spend limit reached` / `spend limit unavailable` | [사용 한도](#spend-limit-reached) | | `Not logged in · Please run /login` | [인증](#not-logged-in) | | `Couldn't save your login` | [인증](#couldnt-save-your-login) | | `Authentication required · Sign in again to continue` | [인증](#not-logged-in) | @@ -75,7 +75,11 @@ | `Remote Control stopped — the app running this session is now signed in to a different Claude account` | [인증](#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` | [인증](#remote-control-stopped-because-the-app-running-the-session-signed-out-or-switched-accounts) | | `Couldn't verify your organization's policy for remote control` | [Remote Control 문제 해결](/docs/ko/remote-control#couldnt-verify-your-organizations-policy-for-remote-control) | +| `Remote Control is disabled by your organization's policy` | [Remote Control 문제 해결](/docs/ko/remote-control#remote-control-is-disabled-by-your-organizations-policy) | +| `Remote Control was turned off by your organization's policy` | [Remote Control 문제 해결](/docs/ko/remote-control#remote-control-was-turned-off-by-your-organizations-policy) | | `OAuth token revoked` / `OAuth token has expired` | [인증](#oauth-token-revoked-or-expired) | +| `Failed to authenticate: OAuth token revoked` | [인증](#oauth-token-revoked-or-expired) | +| `Your account does not have access to Claude. Please login again or contact your administrator.` | [인증](#oauth-token-revoked-or-expired) | | `API Error: 401 Invalid authentication credentials` | [인증](#api-error-401-invalid-authentication-credentials) | | `Login expired · Please run /login` | [인증](#login-expired) | | `Failed to start OAuth callback server` | [인증](#failed-to-start-oauth-callback-server) | @@ -186,6 +190,7 @@ | `The connection dropped while downloading the update` | [설치 오류](#the-connection-dropped-while-downloading-the-update) | | `Download timed out: exceeded the total deadline` | [설치 오류](#the-connection-dropped-while-downloading-the-update) | | `--bg and --print conflict` | [명령줄 오류](#conflict-between-bg-and-print) | +| `Error: Cannot use both --append-subagent-system-prompt and --append-subagent-system-prompt-file. Please use only one.` | [명령줄 오류](#conflict-between-a-system-prompt-flag-and-its-file-form) | | `Cloud sessions cannot be created from a --restricted session` | [명령줄 오류](#cloud-sessions-cannot-be-created-from-a-restricted-session) | | `Cloud sessions are disabled by your organization's policy` | [명령줄 오류](#cloud-sessions-are-disabled-by-your-organizations-policy) | | `Couldn't verify your organization's policy for cloud sessions` | [명령줄 오류](#cloud-sessions-are-disabled-by-your-organizations-policy) | @@ -203,6 +208,7 @@ | `Could not read Claude Code config` | [명령줄 오류](#could-not-read-claude-code-config) | | `Could not import : ` | [명령줄 오류](#could-not-import-a-server-from-claude-desktop) | | `Cannot add MCP server to scope: managed` | [명령줄 오류](#cannot-add-mcp-server-to-the-managed-scope) | +| `Cannot add MCP server: your organization's managed settings allow only MCP servers that plugins provide` | [명령줄 오류](#cannot-add-mcp-server-when-managed-settings-allow-only-plugin-servers) | | `is Anthropic-hosted and doesn't support local OAuth` | [명령줄 오류](#anthropic-hosted-and-doesnt-support-local-oauth) | | `Can't read .mcp.json: it isn't a regular file or is larger than 2097152 bytes` | [명령줄 오류](#cant-read-mcp-json) | | `MCP server "" was not saved to` / `was not removed from` | [명령줄 오류](#mcp-server-was-not-saved-or-removed) | @@ -246,10 +252,13 @@ | `Marketplace name impersonates an official Anthropic/Claude marketplace` | [플러그인 오류](#claude-code-refuses-the-marketplace-name) | | `Marketplace "" is already added from a different source` | [플러그인 오류](#marketplace-is-already-added-from-a-different-source) | | `"" is another spelling of "", a reserved marketplace name` | [플러그인 오류](#marketplace-name-is-another-spelling-of-a-reserved-name) | +| `Marketplace "" is added but ignored` | [플러그인 문제 해결](/docs/ko/plugins/troubleshooting#marketplace-is-added-but-ignored) | +| `Marketplace "" is registered but was refused (see the debug log)` | [플러그인 문제 해결](/docs/ko/plugins/troubleshooting#marketplace-is-added-but-ignored) | | `references ${user_config.*} in a shell-form command` | [플러그인 오류](#plugin-command-references-user-config) | | `Monitor "" from plugin references ${user_config.*} in its command` | [플러그인 오류](#plugin-command-references-user-config) | | `headersHelper for MCP server '' references ${user_config.*}` | [플러그인 오류](#plugin-command-references-user-config) | | `Plugin archive integrity check failed` | [플러그인 오류](#plugin-archive-integrity-check-failed) | +| `An npm plugin source must name a registry package` | [플러그인 문제 해결](/docs/ko/plugins/troubleshooting#an-npm-plugin-source-must-name-a-registry-package) | | `path escapes plugin directory` | [플러그인 오류](#path-escapes-plugin-directory) | | `path could not be checked` | [플러그인 오류](#path-could-not-be-checked) | | `its marketplace entry path does not stay inside the marketplace directory` | [플러그인 오류](#marketplace-entry-path-does-not-stay-inside-the-marketplace-directory) | @@ -290,6 +299,9 @@ | `Reading a local file from outside this session's connected folders, or through a link, needs the approval card` | [도구 오류](#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` | [도구 오류](#reading-a-local-file-from-outside-the-connected-folders) | | `WebFetch cannot fetch localhost or other hostnames without a dot` | [도구 오류](#webfetch-cannot-fetch-localhost) | +| `The safety check for domain ... is rate-limited` | [도구 오류](#webfetch-domain-safety-check-failed) | +| `The safety check for domain ... is temporarily rate-limited` | [도구 오류](#webfetch-domain-safety-check-failed) | +| `Unable to verify if domain ... is safe to fetch` | [도구 오류](#webfetch-domain-safety-check-failed) | | `Can't open MCP settings while no terminal is attached to this background session` | [백그라운드 세션 오류](#commands-refused-in-a-background-session) | | `Can't open MCP settings in a background session` | [백그라운드 세션 오류](#commands-refused-in-a-background-session) | | `blocked because the path is spelled in a form that cannot be safely resolved` | [백그라운드 세션 오류](#write-or-command-blocked-because-the-path-cannot-be-safely-resolved) | @@ -322,7 +334,7 @@ | `Transcript writes are failing (...)` | [세션 저장 경고](#transcript-writes-are-failing) | | `Transcript saving is off — CLAUDE_CODE_SKIP_PROMPT_HISTORY is set` | [세션 저장 경고](#transcript-saving-is-off-skip-prompt-history) | | `Transcript saving is off — inherited CLAUDE_CODE_CHILD_SESSION marker` | [세션 저장 경고](#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-failed-start-notice) | +| `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` | [전체 화면 렌더링](/docs/ko/fullscreen#fullscreen-renderer-didnt-finish-starting) | | `Claude Code exited after an unrecoverable interface error (...)` | [구성 경고](#exited-after-an-unrecoverable-interface-error) | | `Agent descriptions are over the 15.0k-token limit` | [구성 경고](#agent-descriptions-are-over-the-15000-token-limit) | | `Not loaded: rename , then restart — its name uses "", a name reserved for the skills synced from your claude.ai account` | [구성 경고](#a-skill-command-or-workflow-wasnt-loaded-because-its-name-is-reserved) | @@ -357,46 +369,47 @@ Claude Code는 오류를 표시하기 전에 지수 백오프를 사용하여 Claude Code는 다음 오류를 재시도합니다: * Claude의 응답이 스트리밍되기 전에 도착하는 서버 오류, 과부하 응답 및 요청 시간 초과. -* 끊어진 연결. Claude가 응답의 어떤 부분도 완료하기 전에 요청 중간에 연결이 끊어지면, 생각 포함하여 Claude Code는 동일한 백오프로 요청을 다시 발행하고 일부 텍스트가 이미 스트리밍되기 시작했더라도 턴이 계속됩니다. Claude가 생각을 마친 후 텍스트나 도구 호출을 시작하기 전에 끊어지면 Claude Code는 대신 요청을 빠르게 연속으로 최대 2회까지 다시 발행하고, 연결이 계속 끊어지면 `Connection lost before a response was produced`로 턴을 종료합니다. -* Claude Code가 요청 중간에 컴퓨터가 절전 모드로 전환되어 끊어진 연결을 감지합니다. Claude Code는 이를 위의 규칙에 따른 끊어진 연결로 계산합니다. 재시도 레이블이 특정 이유를 명시하면 `Connection lost while your computer was asleep`로 읽히며, Claude가 생각을 마친 후 텍스트나 도구 호출을 시작하기 전에 턴이 종료되면 메시지는 `Your computer went to sleep before a response was produced`로 읽힙니다. -* 응답 헤더는 도착했지만 Claude의 응답이 도착하지 않았거나, Claude가 생각을 마쳤지만 텍스트나 도구 호출을 시작하지 않은 경우의 정체된 응답 스트림: Claude Code는 정체된 연결을 중단하고 위의 10회 시도 예산 외에 최대 1회까지 요청을 다시 발행합니다. Claude가 생각을 마친 후 텍스트나 도구 호출을 시작하기 전에 응답이 두 번째로 정체되면 Claude Code는 `The response stalled before a response was produced`로 턴을 종료합니다. +* Claude가 사고를 마친 후 텍스트나 도구 호출을 시작하기 전에 도착하는 서버 오류 또는 과부하 응답. Claude Code는 해당 시점의 서버 오류를 최대 2회까지 재시도합니다. v2.1.284 이전에는 Claude Code가 해당 시점에서 오류와 함께 턴을 종료했습니다. +* 끊어진 연결. Claude가 사고를 포함하여 응답의 어떤 부분도 완료하기 전에 요청 중간에 연결이 끊어지면, Claude Code는 동일한 백오프로 요청을 다시 발행하고 일부 텍스트가 이미 스트리밍되기 시작했더라도 턴이 계속됩니다. Claude가 사고를 마친 후 텍스트나 도구 호출을 시작하기 전에 끊어지면 Claude Code는 대신 요청을 빠르게 연속으로 최대 2회까지 다시 발행하고, 해당 시점에서 연결이 계속 끊어지면 `Connection lost before a response was produced`로 턴을 종료합니다. +* 요청 중간에 컴퓨터가 절전 모드로 전환되어 끊어졌다고 Claude Code가 감지한 연결. Claude Code는 이를 위의 규칙에 따른 끊어진 연결로 계산합니다. 재시도 레이블이 특정 이유를 명시하면 `Connection lost while your computer was asleep`로 표시되며, Claude가 사고를 마친 후 텍스트나 도구 호출을 시작하기 전에 턴이 종료되면 메시지는 `Your computer went to sleep before a response was produced`로 표시됩니다. +* 응답 헤더는 도착했지만 Claude의 응답이 도착하지 않았거나, Claude가 사고를 마쳤지만 텍스트나 도구 호출을 시작하지 않은 경우의 정체된 응답 스트림: Claude Code는 정체된 연결을 중단하고 위의 10회 시도 예산 외에 최대 1회까지 요청을 다시 발행합니다. Claude가 사고를 마친 후 텍스트나 도구 호출을 시작하기 전에 응답이 두 번째로 정체되면 Claude Code는 `The response stalled before a response was produced`로 턴을 종료합니다. * API가 [첫 바이트 기한이 실행되는](/docs/ko/network-config#streaming-idle-watchdogs) 연결에서 응답 헤더로 응답하지 않는 스트리밍 요청: Claude Code는 기한에서 중단하고 재시도 예산 내에서 모델 요청당 최대 1회까지 다시 보낸 후, 해당 시도도 응답이 없으면 [No response from API](#no-response-from-api)로 턴을 종료합니다. 다른 연결에서는 요청이 `API_TIMEOUT_MS`를 기다립니다. `CLAUDE_CODE_RETRY_WATCHDOG`를 설정하면 1회 재시도 제한이 적용되지 않습니다. * 임시 429 스로틀, 하지만 게이트웨이의 지출 한도 `429`는 아닙니다. 이는 스로틀이 아닙니다. [Spend limit reached](#spend-limit-reached)를 참조하세요. * claude.ai 구독으로 로그인한 경우, 여기에는 플랜의 할당량 헤더를 전달하지 않는 429 스로틀이 포함됩니다. v2.1.199 이전에는 Claude Code가 API 키 및 Enterprise 로그인에 대해서만 해당 스로틀을 재시도했습니다. * 입력 더하기 `max_tokens`이 컨텍스트 한도를 초과하기 때문에 거부된 요청. 변경하지 않고 다시 보내면 같은 방식으로 실패하므로 Claude Code는 감소된 `max_tokens`으로 재시도하고, 두 가지 경우에 재시도를 중지하고 대신 압축합니다: * 감소가 맞지 않을 때, 예를 들어 대화 자체가 컨텍스트 윈도우를 거의 채울 때. - * 재시도가 `max_tokens`을 더 이상 줄일 수 없을 때. v2.1.218 이전에는 Claude Code가 여전히 맞지 않는 감소된 요청을 다시 보낼 수 있었습니다. 예를 들어 확장 생각 예산이 남은 컨텍스트를 초과했을 때, 재시도 예산이 소진될 때까지입니다. -* [Google Cloud의 Agent Platform](/docs/ko/google-vertex-ai)에서 만료되었거나 누락된 Google Cloud 자격증명, 또는 컴퓨터에서 로드하지 못한 AWS 자격증명. Claude Code는 캐시된 자격증명을 버리고 최대 2회까지 재시도한 후 [Could not load AWS or Google Cloud credentials](#could-not-load-aws-or-google-cloud-credentials)에 설명된 대로 오류를 보고하여 즉시 다시 인증할 수 있습니다. v2.1.228 이전에는 Claude Code가 실패한 Google Cloud 자격증명을 전체 재시도 예산을 통해 재시도한 후 오류를 표시했습니다. -* [`apiKeyHelper`](/docs/ko/settings-reference#apikeyhelper) 스크립트가 자격증명을 제공하는 동안 Anthropic API에서 직접 또는 [LLM gateway](/docs/ko/llm-gateway)를 통해 `401` 또는 `403`. Claude Code는 스크립트를 다시 실행하고 전체 재시도 예산 내에서 새로운 출력으로 재시도합니다. 스크립트 자체가 재실행 시 실패하면 Claude Code는 [Your apiKeyHelper script is failing](#your-apikeyhelper-script-is-failing) 대신 표시합니다. + * 재시도가 `max_tokens`을 더 이상 줄일 수 없을 때. v2.1.218 이전에는 Claude Code가 여전히 맞지 않는 감소된 요청을 재시도 예산이 소진될 때까지 다시 보낼 수 있었습니다. 예를 들어 확장 사고 예산이 남은 컨텍스트를 초과했을 때입니다. +* [Google Cloud의 Agent Platform](/docs/ko/google-vertex-ai)에서 만료되었거나 누락된 Google Cloud 자격 증명, 또는 컴퓨터에서 로드하지 못한 AWS 자격 증명. Claude Code는 캐시된 자격 증명을 버리고 최대 2회까지 재시도한 후 [Could not load AWS or Google Cloud credentials](#could-not-load-aws-or-google-cloud-credentials)에 설명된 대로 오류를 보고하여 즉시 다시 인증할 수 있습니다. v2.1.228 이전에는 Claude Code가 실패한 Google Cloud 자격 증명을 전체 재시도 예산을 통해 재시도한 후 오류를 표시했습니다. +* [`apiKeyHelper`](/docs/ko/settings-reference#apikeyhelper) 스크립트가 자격 증명을 제공하는 동안 Anthropic API에서 직접 또는 [LLM 게이트웨이](/docs/ko/llm-gateway)를 통해 받은 `401` 또는 `403`. Claude Code는 스크립트를 다시 실행하고 전체 재시도 예산 내에서 새로운 출력으로 재시도합니다. 스크립트 자체가 재실행 시 실패하면 Claude Code는 대신 [Your apiKeyHelper script is failing](#your-apikeyhelper-script-is-failing)을 표시합니다. -v2.1.227 이전에는 `Connection lost before a response was produced`가 `Connection closed while thinking, before producing a response`로 읽혔고 `The response stalled before a response was produced`가 `Response stalled while thinking, before producing a response`로 읽혔습니다. +v2.1.227 이전에는 `Connection lost before a response was produced`가 `Connection closed while thinking, before producing a response`로 표시되었고 `The response stalled before a response was produced`가 `Response stalled while thinking, before producing a response`로 표시되었습니다. Claude Code는 다음 오류를 재시도하지 않습니다: * TLS 인증서 검증 실패, 예를 들어 TLS 검사 프록시, 누락된 `NODE_EXTRA_CA_CERTS` 번들 또는 만료된 인증서. Claude Code는 첫 번째 시도에서 오류를 보고하므로 인증서 설정을 즉시 수정할 수 있습니다. [SSL certificate errors](#ssl-certificate-errors)를 참조하세요. Claude Code는 여전히 핸드셰이크 시간 초과와 같은 일시적 TLS 조건을 재시도합니다. v2.1.199 이전에는 Claude Code가 인증서 실패를 전체 재시도 예산을 통해 재시도한 후 오류를 표시했습니다. -* Claude가 텍스트 블록이나 도구 호출을 완료했거나, 생각을 마친 후 시작했지만 응답을 마치기 전에 도착한 서버 오류, 끊어진 연결 또는 정체된 스트림. Claude Code는 요청을 다시 실행하지 않습니다. 같은 도구 호출을 두 번 실행할 수 있기 때문입니다. Claude가 완료한 것을 유지하고, Claude가 완료한 도구 호출을 실행하고, 그 결과에서 턴을 계속합니다. 대화형 세션과 비대화형 세션에서 보는 것에 대해서는 [The response above may be incomplete](#the-response-above-may-be-incomplete)를 읽으세요. v2.1.199 이전에는 Claude Code가 부분 출력을 버리고 서버 오류가 스트림 중간에 도착했을 때 전체 턴을 오류로 보고했습니다. +* Claude가 텍스트 블록이나 도구 호출을 완료했거나, 사고를 마친 후 시작했지만 응답을 마치기 전에 도착한 서버 오류, 끊어진 연결 또는 정체된 스트림. Claude Code는 요청을 다시 실행하지 않습니다. 같은 도구 호출을 두 번 실행할 수 있기 때문입니다. Claude가 완료한 것을 유지하고, Claude가 완료한 도구 호출을 실행하고, 그 결과에서 턴을 계속합니다. 대화형 세션과 비대화형 세션에서 보는 것에 대해서는 [The response above may be incomplete](#the-response-above-may-be-incomplete)를 읽으세요. v2.1.199 이전에는 Claude Code가 부분 출력을 버리고 서버 오류가 스트림 중간에 도착했을 때 전체 턴을 오류로 보고했습니다. * Claude가 응답을 마친 후 도착한 오류: 재시도할 것이 없으므로 Claude Code는 완전한 응답을 유지하고 턴을 정상적으로 종료합니다. * [Amazon Bedrock streaming response with an unexpected content-type](#bedrock-streaming-response-has-an-unexpected-content-type), 게이트웨이 또는 프록시가 응답을 다시 쓰면 재시도도 같은 방식으로 다시 쓸 것이기 때문입니다. Claude Code v2.1.208 이상이 필요합니다. * 실패한 스트리밍 요청의 비스트리밍 재시도가 성공 상태를 받지만 [no Claude API message in the body](#api-returned-an-empty-or-malformed-response). Claude Code는 해당 오류로 턴을 종료합니다. -* 조직의 정책 검사가 거부한 요청, 이는 거부 메시지를 전달하는 `API Error:` 줄로 표시됩니다. 조직의 관리자는 Claude Enterprise 기능인 [Inference hooks](https://platform.claude.com/docs/en/manage-claude/inference-hooks)로 검사를 설정하고, 메시지는 구성한 지침으로 끝나거나 기본적으로 연락하도록 지시합니다. Claude Code는 거부가 모델이 아닌 요청의 내용에 관한 것이므로 거부된 요청을 동일한 모델이나 [fallback model](/docs/ko/model-config#fallback-model-chains)로 다시 보내지 않습니다. v2.1.239 이전에는 Claude Code가 거부된 요청을 스트리밍 없이 또는 구성된 폴백 모델에서 다시 보낼 수 있었고, 거부를 표시하기 전에 다시 보낼 수 있었습니다. +* 조직의 정책 검사가 거부한 요청, 이는 거부 메시지를 전달하는 `API Error:` 줄로 표시됩니다. 조직의 관리자는 Claude Enterprise 기능인 [Inference hooks](https://platform.claude.com/docs/en/manage-claude/inference-hooks)로 검사를 설정하고, 메시지는 구성한 지침으로 끝나거나 기본적으로 관리자에게 연락하도록 안내합니다. Claude Code는 거부가 모델이 아닌 요청의 내용에 관한 것이므로 거부된 요청을 동일한 모델이나 [폴백 모델](/docs/ko/model-config#fallback-model-chains)로 다시 보내지 않습니다. v2.1.239 이전에는 Claude Code가 거부를 표시하기 전에 거부된 요청을 스트리밍 없이 또는 구성된 폴백 모델에서 다시 보낼 수 있었습니다.

Claude Code가 재시도하거나 대기하는 동안 보는 것

-재시도하는 동안 스피너는 오류 레이블 후에 `Retrying in Ns · attempt x/y` 카운트다운을 표시합니다. 레이블은 즉시 조치할 수 있는 오류의 첫 번째 시도에서 특정 이유를 명시합니다: 네트워크가 다운되었거나, TLS 핸드셰이크가 실패했거나, 속도 제한에 도달했습니다. 다른 오류의 경우 처음에는 `API error`로 읽힙니다. v2.1.198부터는 세 번째 시도에서 특정 이유로 전환되거나, `CLAUDE_CODE_MAX_RETRIES`가 3회 미만을 허용할 때 최종 시도에서 전환됩니다. 이전 버전은 최종 시도에서만 전환됩니다. +재시도하는 동안 스피너는 오류 레이블 후에 `Retrying in Ns · attempt x/y` 카운트다운을 표시합니다. 레이블은 즉시 조치할 수 있는 오류의 첫 번째 시도에서 특정 이유를 명시합니다: 네트워크가 다운되었거나, TLS 핸드셰이크가 실패했거나, 속도 제한에 도달했습니다. 다른 오류의 경우 처음에는 `API error`로 표시됩니다. v2.1.198부터는 세 번째 시도에서 특정 이유로 전환되거나, `CLAUDE_CODE_MAX_RETRIES`가 3회 미만을 허용할 때 최종 시도에서 전환됩니다. 이전 버전은 최종 시도에서만 전환됩니다. v2.1.198부터 일반적인 스피너 팁은 재시도 중에 억제됩니다. 오류 이유가 드러나면, 실패가 529 과부하인 경우 카운트다운 아래의 줄도 서비스 상태를 확인할 위치를 명시합니다: Anthropic API의 `status.claude.com` 또는 다른 구성의 메시지에 명시된 제공자 또는 게이트웨이 호스트. 요청이 여전히 보류 중인 동안 응답 스트림에 20초 동안 데이터가 도착하지 않으면 스피너는 재시도가 시작되기 전에 `Waiting for API response · will retry in … · check your network`를 표시합니다. 요청은 아직 실패하지 않았습니다: 카운트다운은 Claude Code가 정체된 연결을 중단하는 지점까지 실행됩니다. 중단 후 보는 것은 응답이 얼마나 진행되었는지에 따라 달라집니다: -* Claude가 텍스트 블록이나 도구 호출을 완료하기 전에, 또는 생각을 마친 후 시작하기 전에 Claude Code는 요청을 재시도하거나 오류로 턴을 종료합니다. [Automatic retries](#automatic-retries)는 어떤 정체를 재시도하고 몇 번 재시도하는지 말합니다. -* Claude가 텍스트 블록이나 도구 호출을 완료한 후, 또는 생각을 마친 후 시작했지만 Claude가 응답을 마치기 전에 Claude Code는 Claude가 완료한 것을 유지하고, Claude가 완료한 도구 호출에서 턴을 계속하고, [The response above may be incomplete](#the-response-above-may-be-incomplete)를 표시합니다. 비대화형 세션에서, 그리고 모든 세션에서 서브에이전트의 응답에 대해 Claude Code는 먼저 Claude에 응답을 계속하도록 프롬프트할 수 있습니다. 해당 항목은 언제 수행하는지, 언제 여전히 거기에 공지를 보는지를 말합니다. +* Claude가 텍스트 블록이나 도구 호출을 완료하기 전에, 또는 사고를 마친 후 시작하기 전에 Claude Code는 요청을 재시도하거나 오류로 턴을 종료합니다. [Automatic retries](#automatic-retries)는 어떤 정체를 재시도하고 몇 번 재시도하는지 설명합니다. +* Claude가 텍스트 블록이나 도구 호출을 완료한 후, 또는 사고를 마친 후 시작했지만 Claude가 응답을 마치기 전에 Claude Code는 Claude가 완료한 것을 유지하고, Claude가 완료한 도구 호출에서 턴을 계속하고, [The response above may be incomplete](#the-response-above-may-be-incomplete)를 표시합니다. 비대화형 세션에서, 그리고 모든 세션에서 서브에이전트의 응답에 대해 Claude Code는 먼저 Claude에게 응답을 계속하도록 요청할 수 있습니다. 해당 항목은 언제 그렇게 하는지, 그리고 언제 여전히 알림이 표시되는지를 설명합니다. * Claude가 응답을 마친 후 Claude Code는 턴을 정상적으로 종료합니다. 배너는 데이터가 재개되거나 재시도가 성공하면 자동으로 지워집니다. 모든 시도에서 다시 나타나면 [network issue](#unable-to-connect-to-api)로 취급하세요. v2.1.185 이전에는 배너가 10초 후에 다른 표현으로 나타났습니다. -Claude가 [advisor](/docs/ko/advisor)를 참조하는 동안 배너는 20초 대신 90초 후에 데이터 없이 나타납니다. 긴 advisor 검토가 20초 이상 아무것도 보낼 수 없기 때문입니다. v2.1.214 이전에는 20초 임계값이 advisor 호출 중에도 적용되었으므로 배너가 아무것도 잘못되지 않았을 때도 advisor 검토 중에 나타났습니다. +Claude가 [advisor](/docs/ko/advisor)를 참조하는 동안 배너는 20초 대신 90초 동안 데이터가 없을 때 나타납니다. 긴 advisor 검토가 20초를 훨씬 넘게 아무것도 보내지 않을 수 있기 때문입니다. v2.1.214 이전에는 20초 임계값이 advisor 호출 중에도 적용되었으므로 아무 문제가 없을 때도 advisor 검토 중에 배너가 나타났습니다.

재시도 동작 조정 @@ -407,7 +420,7 @@ Claude가 [advisor](/docs/ko/advisor)를 참조하는 동안 배너는 20초 대 | 변수 | 기본값 | 효과 | | :- | :- | :- | | [`CLAUDE_CODE_MAX_RETRIES`](/docs/ko/env-vars) | 10 | 재시도 시도 횟수. v2.1.186부터 15로 제한됩니다. v2.1.199부터 `CLAUDE_CODE_RETRY_WATCHDOG`는 기본값을 높이고 제한을 제거합니다. 스크립트에서 오류를 더 빨리 표시하려면 낮추세요. | -| [`CLAUDE_CODE_RETRY_WATCHDOG`](/docs/ko/env-vars) | 설정 안 됨 | CI 작업과 같은 무인 세션에서 `1`로 설정하여 `CLAUDE_CODE_MAX_RETRIES` 시도 후 실패하는 대신 `429` 및 `529` 용량 오류를 무한정 재시도합니다. Claude Code는 표준 속도 요청이 지출 한도를 보고하거나 사용된 사용 크레딧을 보고하는 `429`를 받으면 즉시 실패합니다. 일정에 따라 재설정되는 [gateway spend cap](#spend-limit-reached)의 경우도 마찬가지입니다. v2.1.239 이전에는 watchdog이 이를 무한정 재시도했습니다. 빠른 모드 요청의 경우 [Handle rate limits](/docs/ko/fast-mode#handle-rate-limits)를 참조하세요. v2.1.199 이상에서는 서버 오류, 시간 초과 및 끊어진 연결과 같은 다른 일시적 오류에 대한 기본 재시도 횟수를 300으로 높입니다. 대략 3시간의 백오프이며, 변수를 명시적으로 설정하면 `CLAUDE_CODE_MAX_RETRIES`의 15 제한을 제거합니다. | +| [`CLAUDE_CODE_RETRY_WATCHDOG`](/docs/ko/env-vars) | 설정 안 됨 | CI 작업과 같은 무인 세션에서 `1`로 설정하여 `CLAUDE_CODE_MAX_RETRIES` 시도 후 실패하는 대신 `429` 및 `529` 용량 오류를 무한정 재시도합니다. Claude Code는 표준 속도 요청이 지출 한도 또는 소진된 사용량 크레딧을 보고하는 `429`를 받으면 즉시 실패합니다. 일정에 따라 재설정되는 [gateway spend cap](#spend-limit-reached)의 경우도 마찬가지입니다. v2.1.239 이전에는 watchdog이 이를 무한정 재시도했습니다. 빠른 모드 요청의 경우 [Handle rate limits](/docs/ko/fast-mode#handle-rate-limits)를 참조하세요. v2.1.199 이상에서는 서버 오류, 시간 초과 및 끊어진 연결과 같은 다른 일시적 오류에 대한 기본 재시도 횟수를 300으로 높입니다. 대략 3시간의 백오프이며, 변수를 명시적으로 설정하면 `CLAUDE_CODE_MAX_RETRIES`의 15 제한을 제거합니다. | | [`API_TIMEOUT_MS`](/docs/ko/env-vars) | 600000 | 요청당 시간 초과(밀리초). 느린 네트워크 또는 프록시의 경우 높이세요. 또한 Claude Code가 응답 헤더를 기다리는 시간을 제한합니다. [No response from API](#no-response-from-api)에 설명되어 있습니다. | | [`CLAUDE_STREAM_FIRST_BYTE_TIMEOUT_MS`](/docs/ko/env-vars) | 설정 안 됨 | 스트리밍 요청의 첫 응답 바이트에 대한 기한(밀리초). Claude Code v2.1.242 이상이 필요합니다. 이것이 설정되지 않았을 때 Claude Code가 기한을 선택하는 방법에 대해서는 [No response from API](#no-response-from-api)를 참조하세요. | @@ -415,7 +428,7 @@ Claude가 [advisor](/docs/ko/advisor)를 참조하는 동안 배너는 20초 대 서버 오류

-이러한 오류의 대부분은 추론 제공자에서 발생합니다: Anthropic API의 Anthropic 서비스, Amazon Bedrock의 해당 제공자 엔드포인트 뒤의 서비스, Google Cloud의 Agent Platform, Microsoft Foundry 또는 사용자 정의 게이트웨이입니다. [자동 모드가 작업의 안전성을 결정할 수 없음](#auto-mode-cannot-determine-the-safety-of-an-action) 및 [API 오류로 인해 에이전트가 조기에 종료됨](#agent-terminated-early-due-to-an-api-error)은 또한 사용자 측의 원인을 다룹니다. 예를 들어 분류자 모델을 호출할 수 없는 Amazon Bedrock 계정이나 사용 한도에 도달한 하위 에이전트입니다. +이러한 오류의 대부분은 추론 제공자에서 발생합니다: Anthropic API의 Anthropic 서비스, Amazon Bedrock의 해당 제공자 엔드포인트 뒤의 서비스, Google Cloud의 Agent Platform, Microsoft Foundry 또는 사용자 정의 게이트웨이입니다. [자동 모드가 작업의 안전성을 결정할 수 없음](#auto-mode-cannot-determine-the-safety-of-an-action) 및 [API 오류로 인해 에이전트가 조기에 종료됨](#agent-terminated-early-due-to-an-api-error)은 또한 사용자 측의 원인을 다룹니다. 예를 들어 분류기 모델을 호출할 수 없는 Amazon Bedrock 계정이나 사용 한도에 도달한 서브에이전트입니다.

API 오류: 500 내부 서버 오류 @@ -457,7 +470,7 @@ API Error: Repeated 529 Overloaded errors. The API is at capacity — this is us * [status.claude.com](https://status.claude.com) 또는 메시지에 명시된 제공자 상태 페이지에서 용량 공지를 확인합니다 * 몇 분 후에 다시 시도합니다 -* `/model`을 실행하고 다른 모델로 전환하여 계속 작업합니다. 용량은 모델별로 추적되기 때문입니다. Claude Code는 한 모델이 특히 높은 부하를 받을 때 이를 수행하도록 프롬프트합니다. 예를 들어 `Opus is experiencing high load, please use /model to switch to Sonnet`입니다. Fable 모델에서 메시지는 Fable을 명시합니다. +* `/model`을 실행하고 다른 모델로 전환하여 계속 작업합니다. 용량은 모델별로 추적되기 때문입니다. Claude Code는 한 모델이 특히 높은 부하를 받을 때 모델 전환을 요청합니다. 예를 들어 `Opus is experiencing high load, please use /model to switch to Sonnet`입니다. Fable 모델에서 메시지는 Fable을 명시합니다. Claude Desktop 앱이 실행하는 세션(예: Code 탭 또는 Cowork)에서 메시지는 `Opus is experiencing high load. Switch to Sonnet.`으로 읽히며 앱의 모델 선택기로 모델을 전환합니다. @@ -471,7 +484,7 @@ API가 연결 마감 시간 전에 응답하지 않았습니다. Request timed out ``` -이는 높은 부하 기간 동안 또는 모델이 매우 큰 응답을 생성할 때 발생할 수 있습니다. 기본 요청 시간 초과는 10분입니다. +이는 높은 부하 기간 동안 또는 모델이 매우 큰 응답을 생성할 때 발생할 수 있습니다. 기본 요청 타임아웃은 10분입니다. **수행할 작업:** @@ -483,7 +496,7 @@ Request timed out API에서 응답 없음

-Claude Code가 스트리밍 요청을 보냈고 API가 첫 바이트의 마감 시간 내에 응답 헤더를 반환하지 않아 Claude Code가 전체 `API_TIMEOUT_MS` 요청 시간 초과(기본값 10분)를 기다리는 대신 요청을 중단했습니다. Claude Code는 [재시도 예산](#tune-retry-behavior)이 허용하는 경우 최대 한 번 요청을 다시 보냅니다. 재시도도 응답이 없을 때 턴이 이 메시지로 끝나며, 각 시도가 대기한 시간을 표시합니다. [`CLAUDE_CODE_RETRY_WATCHDOG`](/docs/ko/env-vars)을 설정하면 일회 재시도 상한이 적용되지 않으며 Claude Code는 [재시도 동작 조정](#tune-retry-behavior)에 설명된 예산 내에서 재시도합니다. +Claude Code가 스트리밍 요청을 보냈고 API가 첫 바이트의 마감 시간 내에 응답 헤더를 반환하지 않아 Claude Code가 전체 `API_TIMEOUT_MS` 요청 타임아웃(기본값 10분)을 기다리는 대신 요청을 중단했습니다. Claude Code는 [재시도 예산](#tune-retry-behavior)이 허용하는 경우 최대 한 번 요청을 다시 보냅니다. 재시도도 응답이 없을 때 턴이 이 메시지로 끝나며, 각 시도가 대기한 시간을 표시합니다. [`CLAUDE_CODE_RETRY_WATCHDOG`](/docs/ko/env-vars)을 설정하면 일회 재시도 상한이 적용되지 않으며 Claude Code는 [재시도 동작 조정](#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. @@ -491,10 +504,10 @@ API Error: No response from API (waited 3m, then 10m on the retry). If a proxy o Claude Code는 첫 시도의 응답 헤더 대기와 재시도의 대기를 별도로 설정합니다: -* **첫 시도**: 1 이상으로 설정할 때 [`CLAUDE_STREAM_FIRST_BYTE_TIMEOUT_MS`](/docs/ko/env-vars), 10초에서 30분 사이로 제한됩니다. 그렇지 않으면 Claude Code는 [스트리밍 유휴 감시자](/docs/ko/network-config#streaming-idle-watchdogs)에 나열된 바이트 수준 감시자 시간 초과를 사용하므로 해당 시간 초과를 변경하는 변수가 이 대기도 변경합니다. 어느 쪽이든 Claude Code는 요청 본문의 32KB마다 1초를 추가합니다. +* **첫 시도**: 1 이상으로 설정할 때 [`CLAUDE_STREAM_FIRST_BYTE_TIMEOUT_MS`](/docs/ko/env-vars), 10초에서 30분 사이로 제한됩니다. 그렇지 않으면 Claude Code는 [스트리밍 유휴 감시자](/docs/ko/network-config#streaming-idle-watchdogs)에 나열된 바이트 수준 감시자 타임아웃을 사용하므로 해당 타임아웃을 변경하는 변수가 이 대기도 변경합니다. 어느 쪽이든 Claude Code는 요청 본문의 32KB마다 1초를 추가합니다. * **재시도**: `API_TIMEOUT_MS`보다 1초 적게, 기본값으로 거의 10분이므로 재시도가 응답을 생성이 완료될 때까지 보유하는 프록시 또는 게이트웨이를 초과할 수 있습니다. Amazon Bedrock에서 재시도는 첫 시도와 동일한 마감 시간을 사용하며 메시지는 두 가지 대신 하나의 기간을 표시합니다. -어느 대기도 양수 `API_TIMEOUT_MS`보다 1초 적게 초과하지 않으며, 11초 미만의 양수 `API_TIMEOUT_MS`는 마감 시간을 끕니다. 바이트 수준 감시자는 응답 헤더가 도착한 후에만 시작되므로 그 후 바이트 전송을 중지하는 응답은 이 마감 시간 대신 [정지된 스트림 규칙](#automatic-retries)을 따릅니다. +어느 대기도 양수 `API_TIMEOUT_MS`보다 1초 적은 값을 초과하지 않으며, 11초 미만의 양수 `API_TIMEOUT_MS`는 마감 시간을 끕니다. 바이트 수준 감시자는 응답 헤더가 도착한 후에만 시작되므로 그 후 바이트 전송을 중지하는 응답은 이 마감 시간 대신 [정지된 스트림 규칙](#automatic-retries)을 따릅니다. **수행할 작업:** @@ -503,13 +516,13 @@ Claude Code는 첫 시도의 응답 헤더 대기와 재시도의 대기를 별 * 네트워크의 프록시 또는 게이트웨이가 응답을 생성이 완료될 때까지 보유하는 경우 `API_TIMEOUT_MS`를 높여 재시도가 더 오래 대기하도록 합니다. Amazon Bedrock에서 `CLAUDE_STREAM_FIRST_BYTE_TIMEOUT_MS`도 높입니다. * 첫 시도가 계속 시간 초과되고 재시도가 성공하면 `CLAUDE_STREAM_FIRST_BYTE_TIMEOUT_MS`를 높여 첫 시도도 충분히 오래 대기하도록 합니다. -v2.1.242 이전에는 Claude Code가 응답 없는 스트리밍 요청이 실패하기 전에 전체 `API_TIMEOUT_MS` 요청 시간 초과(기본값 10분)를 기다렸습니다. v2.1.261 이전에는 재시도가 첫 시도와 동일한 마감 시간을 기다렸고 메시지는 기간을 표시하지 않았습니다. +v2.1.242 이전에는 Claude Code가 응답 없는 스트리밍 요청이 실패하기 전에 전체 `API_TIMEOUT_MS` 요청 타임아웃(기본값 10분)을 기다렸습니다. v2.1.261 이전에는 재시도가 첫 시도와 동일한 마감 시간을 기다렸고 메시지는 기간을 표시하지 않았습니다.

위의 응답이 불완전할 수 있음

-스트리밍 요청이 응답이 진행 중일 때 실패했습니다. Claude가 텍스트 블록 또는 도구 호출을 완료한 후 또는 생각을 마친 후 하나를 시작했습니다. 요청을 다시 보내면 동일한 도구 호출을 두 번 실행할 수 있으므로 Claude Code는 Claude가 완료한 출력을 유지하고 턴을 버리는 대신 이 공지를 추가합니다. 표시되는 변형은 원인을 명시합니다: +스트리밍 요청이 응답이 진행 중일 때 실패했습니다. Claude가 텍스트 블록 또는 도구 호출을 완료한 후 또는 사고를 마친 후 하나를 시작했습니다. 요청을 다시 보내면 동일한 도구 호출을 두 번 실행할 수 있으므로 Claude Code는 Claude가 완료한 출력을 유지하고 턴을 버리는 대신 이 공지를 추가합니다. 표시되는 변형은 원인을 명시합니다: ```text theme={null} API Error: Server error mid-response. The response above may be incomplete. @@ -524,40 +537,40 @@ API Error: The response stream was malformed. The response above may be incomple * `Connection lost mid-response`: 연결이 끊어졌습니다. 프록시 또는 게이트웨이가 응답이 완료되기 전에 응답 본문을 깔끔하게 종료할 때도 이 변형이 표시됩니다. * `Your computer went to sleep mid-response`: Claude Code가 응답이 스트리밍되는 동안 컴퓨터가 절전 모드로 전환되었음을 감지했습니다. 컴퓨터가 깨어나면 Claude Code는 연결을 끊어진 것으로 취급하고 읽기를 중지합니다. * `Part of the response never arrived`: 스트림 이벤트가 API와 Claude Code 사이에서 손실되어 나중 이벤트가 도착하지 않은 콘텐츠를 참조했습니다. v2.1.281 이전에는 이 경우 턴이 `API Error: Content block not found`로 종료되었습니다. -* `The response stream was malformed`: 이미 완료된 콘텐츠 블록에 대한 이벤트가 도착했거나 손상된 이벤트가 도착했습니다. 손상된 이벤트는 데이터가 유효한 JSON이 아니거나 콘텐츠가 누락되었거나 콘텐츠가 이벤트의 유형과 일치하지 않는 이벤트입니다. v2.1.284 이전에는 파서의 원본 오류(예: `API Error: JSON Parse error`로 시작하는 오류)가 Claude가 생각, 텍스트 블록 또는 도구 호출을 완료한 후 유효하지 않은 JSON이 있는 이벤트가 도착했을 때 대신 나타났습니다. +* `The response stream was malformed`: 이미 완료된 콘텐츠 블록에 대한 이벤트가 도착했거나 손상된 이벤트가 도착했습니다. 손상된 이벤트는 데이터가 유효한 JSON이 아니거나 콘텐츠가 누락되었거나 콘텐츠가 이벤트의 유형과 일치하지 않는 이벤트입니다. v2.1.284 이전에는 파서의 원본 오류(예: `API Error: JSON Parse error`로 시작하는 오류)가 Claude가 사고, 텍스트 블록 또는 도구 호출을 완료한 후 유효하지 않은 JSON이 있는 이벤트가 도착했을 때 대신 나타났습니다. * `The response stopped arriving`: 연결은 열려 있었지만 데이터 전달을 중지했으므로 스트리밍 유휴 감시자가 중단했습니다. v2.1.222 이전에는 Claude Code가 `ANTHROPIC_BASE_URL` 또는 `ANTHROPIC_AWS_BASE_URL`을 통해 도달한 [게이트웨이](/docs/ko/gateways) 연결에서 서버의 킵얼라이브 핑이 여전히 도착하는 동안 이 실패를 보고할 수 있었습니다. 파싱된 응답 이벤트만 계산했기 때문입니다. 업그레이드하면 해당 경로에서 이러한 거짓 시간 초과를 중지합니다. `ANTHROPIC_BEDROCK_BASE_URL`과 같은 제공자 기본 URL을 통해 도달한 게이트웨이는 바이트 감시자로 래핑되지 않습니다. [스트리밍 유휴 감시자](/docs/ko/network-config#streaming-idle-watchdogs)를 참조하세요. v2.1.227 이전에는 `Connection lost mid-response`가 `Connection closed mid-response`로 읽혔고 `The response stopped arriving`이 `Response stalled mid-stream`으로 읽혔습니다. -Claude가 텍스트 또는 도구 호출을 시작하기 전에 손실되거나 중복된 스트림 이벤트가 도착하면 이 공지가 표시되지 않습니다: +Claude가 텍스트 또는 도구 호출을 시작하기 전에 손실되거나 중복되거나 손상된 스트림 이벤트가 도착하면 이 공지가 표시되지 않습니다: -* Claude가 생각만 완료했으면 Claude Code가 요청을 다시 발급합니다. 다시 발급된 스트림이 동일한 방식으로 끊어지면 턴이 `Part of the response never arrived and no response was produced. Try again.` 또는 `The response stream was malformed and no response was produced. Try again.`으로 끝납니다. +* Claude가 사고만 완료했으면 Claude Code가 요청을 다시 발급합니다. 다시 발급된 스트림이 동일한 방식으로 끊어지면 턴이 `Part of the response never arrived and no response was produced. Try again.` 또는 `The response stream was malformed and no response was produced. Try again.`으로 끝납니다. * 아무것도 완료되지 않았으면 Claude Code가 스트리밍 없이 요청을 다시 보냅니다. [`CLAUDE_CODE_DISABLE_NONSTREAMING_FALLBACK`](/docs/ko/env-vars)으로 해당 폴백을 끈 경우 턴이 손실된 이벤트에 대해 `API Error: Content block not found`로 끝나거나 중복된 이벤트에 대해 `API Error: Content block already closed`로 끝납니다. 손상된 이벤트의 경우 폴백이 꺼져 있으면 턴이 `API Error: Stream event unreadable` 또는 파서의 원본 오류로 끝납니다. 4가지 경우에 Claude Code는 이 공지를 즉시 표시하지 않고 실패를 처리합니다: * 응답의 앞부분에서 Claude Code는 실패를 재시도하거나 다른 오류로 턴을 종료합니다. [자동 재시도](#automatic-retries)를 참조하세요. * 이러한 실패 중 하나가 Claude가 응답을 마친 후에 도착하면 Claude Code는 완전한 응답을 유지하고 이 공지 없이 턴을 정상적으로 종료합니다. v2.1.222 이전에는 Claude Code가 응답이 완료된 후 연결이 끊어지거나 정지되었을 때 이 공지를 표시했고 응답이 완전했음에도 불구하고 턴을 오류로 보고했습니다. -* [비대화형 세션](/docs/ko/headless)(예: `-p` 실행, [Agent SDK](/docs/ko/agent-sdk/overview) 실행 또는 [클라우드 세션](/docs/ko/claude-code-on-the-web))에서 잘린 응답이 주 대화에 있고 텍스트를 포함하지만 도구 호출이 없는 경우 `continue`를 직접 보낼 필요가 없습니다: Claude Code는 부분 출력을 유지하고 Claude에게 중단된 위치에서 계속하도록 프롬프트합니다. 최대 3번 연속으로. 이 공지는 Claude Code가 해당 연속을 모두 사용한 후에만 이러한 응답에 대해 표시됩니다. v2.1.246 이전에는 Claude Code가 비대화형 턴을 첫 번째 잘림에서 이 공지로 종료했습니다. -* [하위 에이전트](/docs/ko/sub-agents#api-errors-in-subagents)에서, 세션이 대화형인지 여부와 관계없이: 잘린 응답이 텍스트를 포함하지만 도구 호출이 없을 때 Claude Code는 하위 에이전트에게 계속하도록 프롬프트합니다. 공지는 해당 연속이 사용될 때까지만 하위 에이전트의 마지막 메시지가 됩니다. v2.1.257 이전에는 하위 에이전트가 첫 번째 잘림에서 이 공지를 표시했습니다. +* [비대화형 세션](/docs/ko/headless)(예: `-p` 실행, [Agent SDK](/docs/ko/agent-sdk/overview) 실행 또는 [클라우드 세션](/docs/ko/claude-code-on-the-web))에서 잘린 응답이 주 대화에 있고 텍스트를 포함하지만 도구 호출이 없는 경우 `continue`를 직접 보낼 필요가 없습니다: Claude Code는 부분 출력을 유지하고 Claude에게 중단된 위치에서 계속하도록 요청하며, 최대 3번 연속으로 요청합니다. 이 공지는 Claude Code가 해당 연속을 모두 사용한 후에만 이러한 응답에 대해 표시됩니다. v2.1.246 이전에는 Claude Code가 비대화형 턴을 첫 번째 잘림에서 이 공지로 종료했습니다. +* [서브에이전트](/docs/ko/sub-agents#api-errors-in-subagents)에서, 세션이 대화형인지 여부와 관계없이: 잘린 응답이 텍스트를 포함하지만 도구 호출이 없을 때 Claude Code는 서브에이전트에게 계속하도록 요청합니다. 공지는 해당 연속을 모두 사용한 후에만 서브에이전트의 마지막 메시지가 됩니다. v2.1.257 이전에는 서브에이전트가 첫 번째 잘림에서 이 공지를 표시했습니다. **수행할 작업:** * 대화형 세션에서 화면에 남아 있는 응답을 읽습니다: Claude Code는 오류 전에 Claude가 완료한 모든 블록을 유지하지만 턴이 끝날 때 중단된 최종 블록을 버립니다. 따라서 최종 문장 또는 도구 호출이 누락될 수 있습니다. `continue`로 회신하여 Claude가 마지막으로 완료한 블록에서 계속하도록 합니다. * [비대화형 모드](/docs/ko/headless)(`-p`): - * 기본 텍스트 출력을 사용하면 Claude Code는 턴의 앞부분에서 여전히 보유한 마지막 완료된 텍스트 블록을 인쇄한 후 이 메시지를 인쇄합니다. 보유하지 않으면 Claude Code는 이 메시지만 인쇄합니다. 예를 들어 Claude Code가 턴 중간에 대화를 압축하고 해당 텍스트를 지웠기 때문입니다. v2.1.219 이전에는 Claude Code가 `-p` 텍스트 출력에서만 이 메시지를 인쇄했고 이미 생성한 응답을 버렸습니다. + * 기본 텍스트 출력을 사용하면 Claude Code는 턴의 앞부분에서 여전히 보유한 마지막 완료된 텍스트 블록을 인쇄한 후 이 메시지를 인쇄합니다. 보유하지 않으면 Claude Code는 이 메시지만 인쇄합니다. 예를 들어 Claude Code가 턴 중간에 대화를 압축하고 해당 텍스트를 지웠기 때문입니다. v2.1.219 이전에는 Claude Code가 `-p` 텍스트 출력에서 이 메시지만 인쇄했고 이미 생성한 응답을 버렸습니다. * `--output-format json` 또는 `stream-json`을 사용하면 Claude Code는 이 메시지를 `result` 필드에 보고합니다. - * 연결이 안정적이면 턴을 계속하려면 세션을 재개하고 [대화 계속](/docs/ko/headless#continue-conversations)에 설명된 대로 `continue`를 보냅니다. + * 연결이 안정되면 턴을 계속하려면 세션을 재개하고 [대화 계속](/docs/ko/headless#continue-conversations)에 설명된 대로 `continue`를 보냅니다.

자동 모드가 작업의 안전성을 결정할 수 없음

-[자동 모드](/docs/ko/permission-modes#eliminate-prompts-with-auto-mode)가 작업을 분류하는 데 사용하는 모델이 결정을 내릴 수 없어 자동 모드가 작업을 자동으로 승인하지 않았습니다. 표시되는 메시지는 분류자가 실패한 방식에 따라 다릅니다. +[자동 모드](/docs/ko/permission-modes#eliminate-prompts-with-auto-mode)가 작업을 분류하는 데 사용하는 모델이 결정을 내릴 수 없어 자동 모드가 작업을 자동으로 승인하지 않았습니다. 표시되는 메시지는 분류기가 실패한 방식에 따라 다릅니다. -작업 디렉토리 내의 읽기, 검색 및 편집은 분류자를 건너뛰므로 이러한 모든 경우에 계속 작동합니다. +작업 디렉터리 내의 읽기, 검색 및 편집은 분류기를 건너뛰므로 이러한 모든 경우에 계속 작동합니다. -분류자 모델을 사용할 수 없을 때: +분류기 모델을 사용할 수 없을 때: ```text theme={null} is temporarily unavailable, so auto mode cannot determine the safety of right now. Wait a moment and then try this action again. @@ -565,7 +578,7 @@ Claude가 텍스트 또는 도구 호출을 시작하기 전에 손실되거나 Claude Code가 실패 범주를 결정할 수 있을 때 `temporarily unavailable` 뒤의 괄호에 범주를 명시합니다. 예를 들어 ` is temporarily unavailable (rate-limited), so auto mode cannot determine the safety of right now`입니다. 범주는 `(rate-limited)`, `(overloaded)`, `(server error)`, `(timed out)` 및 `(connection failed)`입니다. `(timed out)` 또는 `(connection failed)`가 반복되면 연결을 확인하세요. [API에 연결할 수 없음](#unable-to-connect-to-api)을 참조하세요. v2.1.229 이전에는 메시지가 범주를 명시하지 않았고 `Wait briefly and then try this action again`으로 읽혔습니다. -범주가 맞지 않으면 메시지는 괄호에 범주 없이 나타납니다. 둘 이상의 실패가 해당 형식을 생성합니다. [Amazon Bedrock](/docs/ko/amazon-bedrock)에서, [Mantle 엔드포인트](/docs/ko/amazon-bedrock#use-the-mantle-endpoint) 포함, AWS 계정이 메시지에 명시된 모델을 호출할 수 없을 때도 나타나며, 계정에 모델에 대한 액세스 권한이 부여될 때까지 모든 재시도에서 해당 실패가 반복됩니다. +맞는 범주가 없으면 메시지는 괄호에 범주 없이 나타납니다. 둘 이상의 실패가 해당 형식을 생성합니다. [Amazon Bedrock](/docs/ko/amazon-bedrock)에서, [Mantle 엔드포인트](/docs/ko/amazon-bedrock#use-the-mantle-endpoint) 포함, AWS 계정이 메시지에 명시된 모델을 호출할 수 없을 때도 나타나며, 계정에 모델에 대한 액세스 권한이 부여될 때까지 모든 재시도에서 해당 실패가 반복됩니다. **수행할 작업:** @@ -573,9 +586,9 @@ Claude Code가 실패 범주를 결정할 수 있을 때 `temporarily unavailabl * 재시도가 계속 실패하면 읽기 전용 작업을 계속하고 나중에 차단된 작업으로 돌아옵니다 * Amazon Bedrock에서 메시지가 모든 재시도에서 반환되면 계정이 명시된 모델을 호출할 수 있는지 확인합니다: 표준 Amazon Bedrock 모델의 경우 [IAM 정책](/docs/ko/amazon-bedrock#iam-configuration)이 호출을 허용하는지 확인합니다. Mantle 모델 ID의 경우 [AWS 계정 팀에 문의](/docs/ko/amazon-bedrock#mantle-endpoint-errors)합니다 -분류자 요청이 OAuth 토큰이 만료되었거나 다른 세션에서 회전되었기 때문에 실패할 때 Claude Code는 토큰을 새로 고치고 요청을 한 번 재시도하므로 일상적인 토큰 만료는 이 메시지로 표시되지 않습니다. v2.1.216 이전에는 만료되었거나 회전된 토큰이 각 분류자 요청을 실패했고 토큰이 새로 고쳐질 때까지 자동 모드가 확인된 모든 작업을 거부했습니다. +분류기 요청이 OAuth 토큰이 만료되었거나 다른 세션에서 회전되었기 때문에 실패할 때 Claude Code는 토큰을 새로 고치고 요청을 한 번 재시도하므로 일상적인 토큰 만료는 이 메시지로 표시되지 않습니다. v2.1.216 이전에는 만료되었거나 회전된 토큰이 각 분류기 요청을 실패시켰고 토큰이 새로 고쳐질 때까지 자동 모드가 확인 대상인 모든 작업을 이 메시지와 함께 거부했습니다. -분류자가 파싱할 수 없는 응답을 반환했을 때: +분류기가 파싱할 수 없는 응답을 반환했을 때: ```text theme={null} Auto mode could not evaluate this action and is blocking it for safety — run with --debug for details @@ -586,7 +599,7 @@ Auto mode could not evaluate this action and is blocking it for safety — run w * 작업을 재시도합니다. 이는 일반적으로 다음 시도에서 성공합니다 * `claude --debug`를 실행하고 작업을 반복하여 디버그 로그에서 세부 정보를 확인합니다 -별도의 API 안전 검사가 이전 대화 내용으로 인해 분류자 요청을 차단했을 때: +별도의 API 안전 검사가 이전 대화 내용으로 인해 분류기 요청을 차단했을 때: ```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 @@ -594,19 +607,19 @@ Auto mode could not evaluate this action and is blocking it for safety — a saf Claude Code는 작업을 거부하지만 Claude에게 이것이 작업이 안전하지 않다는 판단이 아니며 재시도하는 대신 다른 작업을 계속하도록 알립니다. 이러한 거부는 [자동 모드의 일시 중지 임계값](/docs/ko/permission-modes#when-auto-mode-falls-back)에 대해 계산되지 않습니다. [비대화형](/docs/ko/headless) `-p` 실행에서 Claude Code는 실행을 중지하지 않습니다. Claude가 수신하는 내용은 작업을 요청한 위치에 따라 다릅니다: -* `-p` 실행 중 `--input-format stream-json` 없이 [백그라운드 하위 에이전트](/docs/ko/sub-agents#run-subagents-in-foreground-or-background)에 Claude Code는 `Agent aborted: auto mode classifier request refused by the safety safeguard in headless mode`를 포함하는 오류 결과를 반환합니다 +* `-p` 실행 중 `--input-format stream-json` 없이 [백그라운드 서브에이전트](/docs/ko/sub-agents#run-subagents-in-foreground-or-background)에 Claude Code는 `Agent aborted: auto mode classifier request refused by the safety safeguard in headless mode`를 포함하는 오류 결과를 반환합니다 * 대화형 세션 및 `-p` 실행의 주 대화를 포함한 다른 모든 곳에서 Claude Code는 해당 거부를 Claude에게 반환합니다 -v2.1.225 이전에는 Claude Code가 이러한 거부를 일시 중지 임계값에 대해 계산했고 진정한 분류자 블록과 동일한 거부 메시지를 반환했습니다. +v2.1.225 이전에는 Claude Code가 이러한 거부를 일시 중지 임계값에 대해 계산했고 진정한 분류기 차단과 동일한 거부 메시지를 반환했습니다. **수행할 작업:** -* 이것은 작업에 대한 결정이 아닙니다. 대화에 이미 있는 내용이 Claude Code가 대화를 분류자에게 보낼 때 API의 안전 필터를 트리거했습니다 +* 이것은 작업에 대한 결정이 아닙니다. 대화에 이미 있는 내용이 자동 모드가 대화를 분류기에 보낼 때 API의 안전 필터를 트리거했습니다 * 재시도는 도움이 되지 않습니다. 동일한 대화 내용이 필터를 다시 트리거합니다 -* 대화형 세션에서 다른 [권한 모드](/docs/ko/permission-modes)로 전환하여 프롬프트될 때 작업을 승인할 수 있습니다 +* 대화형 세션에서 다른 [권한 모드](/docs/ko/permission-modes)로 전환하여 확인 요청이 표시될 때 작업을 승인할 수 있습니다 * 트리거 내용 없이 새 대화를 시작합니다 -대화가 분류자의 컨텍스트 윈도우보다 커졌을 때: +대화가 분류기의 컨텍스트 윈도우보다 커졌을 때: ```text theme={null} Auto mode classifier transcript exceeded context window — falling back to manual approval (try /compact to reduce conversation size) @@ -615,19 +628,19 @@ Auto mode classifier transcript exceeded context window — falling back to manu 작업에 발생하는 일은 Claude가 요청한 위치에 따라 다릅니다: * 대화형 세션에서 자동 모드는 해당 작업에 대해 일반 권한 프롬프트로 폴백하므로 수동으로 승인하거나 거부할 수 있습니다 -* [비대화형](/docs/ko/headless) `-p` 실행 중 `--input-format stream-json` 없이 [백그라운드 하위 에이전트](/docs/ko/sub-agents#run-subagents-in-foreground-or-background)에 Claude Code는 `Agent aborted: auto mode classifier transcript exceeded context window in headless mode`를 포함하는 오류 결과를 반환하고 실행을 계속합니다 +* [비대화형](/docs/ko/headless) `-p` 실행 중 `--input-format stream-json` 없이 [백그라운드 서브에이전트](/docs/ko/sub-agents#run-subagents-in-foreground-or-background)에 Claude Code는 `Agent aborted: auto mode classifier transcript exceeded context window in headless mode`를 포함하는 오류 결과를 반환하고 실행을 계속합니다 * [`--permission-prompt-tool`](/docs/ko/cli-reference#cli-flags) 없이 `-p` 실행의 다른 곳에서 폴백할 프롬프트가 없으므로 작업이 실행되지 않고 실행이 계속됩니다 **수행할 작업:** * 대화형 세션에서 나타나는 프롬프트에서 작업을 승인하거나 거부합니다 -* 대화형 세션에서 `/compact`를 실행하여 대화 크기를 줄여 후속 작업이 분류자 윈도우에 맞도록 합니다 +* 대화형 세션에서 `/compact`를 실행하여 대화 크기를 줄여 후속 작업이 분류기 윈도우에 다시 맞도록 합니다

서버가 안전 판정을 반환하지 않음

-[서버 측 분류자 검토](/docs/ko/permission-modes#server-side-classifier-review) 하에서 자동 모드는 서버가 판정을 제공하지 않을 때 작업을 거부합니다. 거부는 Claude Code가 하나를 결정할 수 있을 때 괄호에 범주를 명시합니다. 예를 들어 `(timed out)`: +[서버 측 분류기 검토](/docs/ko/permission-modes#server-side-classifier-review) 하에서 자동 모드는 서버가 판정을 제공하지 않을 때 작업을 거부합니다. 거부는 Claude Code가 하나를 결정할 수 있을 때 괄호에 범주를 명시합니다. 예를 들어 `(timed out)`: ```text theme={null} The server-side auto mode classifier gave no verdict (timed out), so auto mode cannot determine the safety of . @@ -635,7 +648,7 @@ The server-side auto mode classifier gave no verdict (timed out), so auto mode c 메시지의 나머지 부분은 Claude에게 한 번의 재시도가 도움이 될 수 있는지 알려줍니다. 이러한 거부 중 일부 전에 Claude Code는 대기하므로 Claude의 다음 시도가 즉시 따르지 않습니다. 대화형 세션에서 대기 중에 스피너는 `Auto mode check unavailable`을 카운트다운과 함께 표시하며, `Esc`를 누르면 턴이 중단됩니다. -10개 응답이 연속으로 판정이 없은 후 자동 모드는 턴을 중지합니다: +10개 응답이 연속으로 판정이 없으면 자동 모드는 턴을 중지합니다: ```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. @@ -643,16 +656,16 @@ Auto mode is unavailable — the server returned no safety verdict for the last 중지 메시지는 각 세션 종류에서 다른 위치에 나타납니다: -* 대화형 세션에서 메시지는 대화 기록에 경고로 나타나고 턴이 끝납니다 +* 대화형 세션에서 메시지는 트랜스크립트에 경고로 나타나고 턴이 끝납니다 * [비대화형](/docs/ko/headless) `-p` 실행에서 실행이 끝나고 실행 오류를 보고합니다. 기본 텍스트 출력을 사용하면 메시지가 stderr에 인쇄됩니다. -* [하위 에이전트](/docs/ko/sub-agents)가 한도에 도달했을 때 하위 에이전트는 완료 전에 중지되고 Claude는 자동 모드가 중지했다는 메모와 함께 생성한 것을 받습니다 +* [서브에이전트](/docs/ko/sub-agents)가 한도에 도달했을 때 서브에이전트는 완료 전에 중지되고 Claude는 자동 모드가 중지했다는 메모와 함께 서브에이전트가 생성한 것을 받습니다 **수행할 작업:** * 다른 메시지를 보내 Claude가 다시 시도하도록 합니다. 응답 수 계산이 다시 시작됩니다. -* 중지가 반복되고 요청이 [LLM 게이트웨이 또는 프록시](/docs/ko/llm-gateway)를 통과하면 스트리밍 응답을 자르거나 다시 쓰는지 확인합니다. [서버 측 분류자 검토](/docs/ko/permission-modes#server-side-classifier-review)는 어떤 게이트웨이 동작이 거부를 유발하는지 말하며, [게이트웨이 호환성 가이드](/docs/ko/llm-gateway-protocol#feature-pass-through)는 변경되지 않은 상태로 통과할 내용을 나열합니다. -* Claude Code를 시작하기 전에 `CLAUDE_CODE_AUTO_MODE_SERVER=0`을 설정하여 대신 자체 분류자 요청을 사용합니다. v2.1.281 이전에는 Claude Code가 Anthropic API에 대한 직접 연결에서 변수를 읽지 않았습니다. -* 대신 작업을 직접 승인하려면 [자동 모드를 전환](/docs/ko/permission-modes#switch-permission-modes)합니다 +* 중지가 반복되고 요청이 [LLM 게이트웨이 또는 프록시](/docs/ko/llm-gateway)를 통과하면 스트리밍 응답을 자르거나 다시 쓰는지 확인합니다. [서버 측 분류기 검토](/docs/ko/permission-modes#server-side-classifier-review)는 어떤 게이트웨이 동작이 거부를 유발하는지 설명하며, [게이트웨이 호환성 가이드](/docs/ko/llm-gateway-protocol#feature-pass-through)는 변경되지 않은 상태로 통과시켜야 할 내용을 나열합니다. +* Claude Code를 시작하기 전에 `CLAUDE_CODE_AUTO_MODE_SERVER=0`을 설정하여 대신 자체 분류기 요청을 사용합니다. v2.1.281 이전에는 Claude Code가 Anthropic API에 대한 직접 연결에서 변수를 읽지 않았습니다. +* 대신 작업을 직접 승인하려면 [자동 모드에서 전환](/docs/ko/permission-modes#switch-permission-modes)합니다 v2.1.280 이전에는 Claude Code가 판정이 없는 응답의 각 작업을 즉시 거부했고 턴을 중지하지 않았습니다. @@ -660,7 +673,7 @@ v2.1.280 이전에는 Claude Code가 판정이 없는 응답의 각 작업을 API 오류로 인해 에이전트가 조기에 종료됨 -[하위 에이전트](/docs/ko/sub-agents)의 API 요청이 사용 한도에 도달했거나 서버 오류에 대한 재시도가 소진되었기 때문에 터미널로 실패했으므로 하위 에이전트가 작업을 마치기 전에 중지했습니다. 이 메시지는 Claude Code v2.1.199 이상이 필요합니다. 그 이전에는 API 오류 텍스트가 하위 에이전트의 결과인 것처럼 Claude에게 반환되었습니다. +[서브에이전트](/docs/ko/sub-agents)의 API 요청이 사용 한도에 도달했거나 서버 오류에 대한 재시도가 소진되는 등의 이유로 최종적으로 실패했으므로 서브에이전트가 작업을 마치기 전에 중지했습니다. 이 메시지는 Claude Code v2.1.199 이상이 필요합니다. 그 이전에는 API 오류 텍스트가 서브에이전트의 결과인 것처럼 Claude에게 반환되었습니다. ```text theme={null} Agent terminated early due to an API error: @@ -668,22 +681,22 @@ Agent terminated early due to an API error: **수행할 작업:** -* 콜론 뒤의 오류 세부 정보를 이 페이지의 자체 섹션(예: [사용 한도](#usage-limits) 또는 [서버 오류](#server-errors))과 일치시키고 해당 섹션의 단계를 따릅니다 -* 기본 오류가 해결되면 Claude에게 작업을 재시도하거나 [하위 에이전트를 재개](/docs/ko/sub-agents#resume-subagents)하도록 요청합니다 +* 콜론 뒤의 오류 세부 정보를 이 페이지의 해당 섹션(예: [사용 한도](#usage-limits) 또는 [서버 오류](#server-errors))과 대조하고 해당 섹션의 단계를 따릅니다 +* 기본 오류가 해결되면 Claude에게 작업을 재시도하거나 [서브에이전트를 재개](/docs/ko/sub-agents#resume-subagents)하도록 요청합니다 -속도 제한, 오버로드 또는 서버 오류가 이미 텍스트 출력을 생성한 포그라운드 하위 에이전트를 중단할 때 Claude는 이 오류 대신 불완전으로 표시된 부분 출력을 수신합니다. 유일한 출력이 도구 호출인 하위 에이전트도 이 오류를 받습니다. v2.1.199에서는 해당 형태가 빈 부분 결과를 대신 반환했습니다. [하위 에이전트의 API 오류](/docs/ko/sub-agents#api-errors-in-subagents)를 참조하세요. +속도 제한, 오버로드 또는 서버 오류가 이미 텍스트 출력을 생성한 포그라운드 서브에이전트를 중단할 때 Claude는 이 오류 대신 불완전으로 표시된 부분 출력을 수신합니다. 유일한 출력이 도구 호출인 서브에이전트도 이 오류를 받습니다. v2.1.199에서는 해당 형태가 빈 부분 결과를 대신 반환했습니다. [서브에이전트의 API 오류](/docs/ko/sub-agents#api-errors-in-subagents)를 참조하세요.

사용 한도

-이 섹션의 대부분의 오류는 계정 또는 플랜에 연결된 할당량에 도달했음을 의미합니다. 세 가지는 다르게 작동합니다: [`Server is temporarily limiting requests`](#server-is-temporarily-limiting-requests)는 플랜 할당량과 무관한 서버 측 스로틀이고, [`Usage credits required for 1M context`](#usage-credits-required-for-1m-context)는 소진된 할당량이 아닌 자격 확인이며, [`The prompt to confirm went unanswered`](#the-prompt-to-confirm-went-unanswered)는 할당량 도달 여부와 관계없이 사용 크레딧 동의 프롬프트가 응답 없이 종료되었음을 의미합니다. +이 섹션의 오류 대부분은 계정 또는 플랜에 연결된 할당량에 도달했음을 의미합니다. 세 가지는 다르게 동작합니다. [`Server is temporarily limiting requests`](#server-is-temporarily-limiting-requests)는 플랜 할당량과 무관한 서버 측 제한이고, [`Usage credits required for 1M context`](#usage-credits-required-for-1m-context)는 할당량 소진이 아닌 사용 자격 확인이며, [`The prompt to confirm went unanswered`](#the-prompt-to-confirm-went-unanswered)는 할당량 도달 여부와 관계없이 사용량 크레딧 동의 프롬프트가 응답 없이 닫혔음을 의미합니다.

- 세션 한도에 도달했습니다 + You've hit your session limit

-구독 플랜에는 롤링 사용 허용량이 포함됩니다. 허용량이 소진되면 다음 메시지 중 하나가 표시됩니다: +구독 플랜에는 롤링 방식의 사용 허용량이 포함되어 있습니다. 허용량이 소진되면 다음 메시지 중 하나가 표시됩니다. ```text theme={null} You've hit your session limit · resets 3:45pm @@ -692,114 +705,114 @@ You've hit your Opus limit · resets 3:45pm You've hit your Sonnet limit · resets 3:45pm ``` -Claude Code는 메시지에 표시된 재설정 시간까지 추가 요청을 차단합니다. 세션 및 주간 한도는 모든 모델에서 공유되므로 모델을 전환해도 액세스가 복구되지 않습니다. Opus 및 Sonnet 한도는 각각 해당 모델 제품군에 대한 요청에만 적용되므로 `/model`을 사용하여 제품군 외부의 모델로 전환하면 계속 작업할 수 있습니다. +Claude Code는 메시지에 표시된 재설정 시간까지 추가 요청을 차단합니다. 세션 한도와 주간 한도는 모든 모델에서 공유되므로 모델을 전환해도 접근이 복원되지 않습니다. Opus 한도와 Sonnet 한도는 각각 해당 모델 계열에 대한 요청에만 적용되므로, `/model`로 해당 계열 외의 모델로 전환하면 작업을 계속할 수 있습니다. -claude.ai 구독으로 로그인한 대화형 세션에서 Claude Code는 열린 세션에서 대기할 수 있으며 재설정 직후 중단된 작업을 계속할 수 있습니다. 대기 중에 세션 하단의 줄에 `Usage limit reached · continuing automatically at 3:45pm · esc to cancel`이 표시됩니다. 빈 프롬프트에서 `Esc`를 눌러 대기를 취소합니다. 표시되는 내용, 대기를 시작하거나 취소하는 방법, 자동 계속을 끄는 방법은 [사용 한도 재설정 대기](/docs/ko/interactive-mode#wait-for-a-usage-limit-to-reset)를 참조하십시오. v2.1.234 이전에는 Claude Code가 이 대기 기능을 제공하지 않았습니다. +claude.ai 구독으로 로그인한 대화형 세션에서는 Claude Code가 열려 있는 세션에서 대기하다가 재설정 직후 중단된 작업을 이어서 진행할 수도 있습니다. 표시되는 내용, 대기를 시작하거나 취소하는 방법, 자동 계속을 끄는 방법은 [사용 한도 재설정 대기](/docs/ko/interactive-mode#wait-for-a-usage-limit-to-reset)를 참조하세요. v2.1.234 이전에는 Claude Code가 이 대기 기능을 제공하지 않았습니다. -사용량은 세션 및 주간 허용량에 동시에 계산됩니다. 대규모 워크플로우 팬아웃과 같은 대량의 활동이 한 번에 발생하면 세션 창이 재설정되기 전에 주간 허용량이 소진될 수 있습니다. +사용량은 세션 허용량과 주간 허용량에 동시에 집계됩니다. 대규모 워크플로 팬아웃과 같은 한 번의 집중적인 활동만으로도 세션 윈도우가 재설정되기 전에 주간 허용량이 소진될 수 있습니다. -**수행할 작업:** +**해결 방법:** -* 오류에 표시된 재설정 시간까지 대기합니다 -* [Desktop app](/docs/ko/desktop)의 Code 탭에서 세션 한도 카드는 **Auto-continue when limits reset** 체크박스를 제공합니다. 주간 한도 카드는 제공하지 않습니다. 체크되어 있으면 Desktop app은 재설정 후 중단된 턴을 다시 시도하고 카드에 재시도 시간을 표시합니다. Desktop 체크박스와 CLI의 `/config`의 **Continue automatically at usage limit** 설정은 별개이므로 각각 개별적으로 끕니다. -* Opus 또는 Sonnet 한도의 경우 `/model`을 실행하고 해당 제품군 외부의 모델로 전환하여 계속 작업합니다. 각 모델에는 자체 프롬프트 캐시가 있으므로 다음 요청은 캐시 히트 없이 전체 대화를 다시 읽습니다. [모델 전환](/docs/ko/prompt-caching#switching-models)을 참조하십시오 -* `/usage`를 실행하여 플랜 한도 및 재설정 시간을 확인합니다 -* `/usage-credits`를 실행하여 Pro 및 Max에서 추가 사용량을 구매하거나 Team 및 Enterprise에서 관리자에게 요청합니다. 이것이 청구되는 방식은 [usage credits for paid plans](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans)을 참조하십시오. -* 더 높은 기본 한도를 위해 플랜을 업그레이드하려면 [claude.com/pricing](https://claude.com/pricing)을 참조하십시오 +* 오류에 표시된 재설정 시간까지 기다립니다 +* [Desktop 앱](/docs/ko/desktop)의 Code 탭에서는 세션 한도 카드에 **Auto-continue when limits reset** 체크박스가 제공됩니다. 주간 한도 카드에는 제공되지 않습니다. 이 옵션을 선택하면 Desktop 앱이 재설정 후 중단된 턴을 재시도하고 카드에 재시도 시간을 표시합니다. Desktop 체크박스와 CLI의 `/config`에 있는 **Continue automatically at usage limit** 설정은 별개이므로 각각 따로 꺼야 합니다. +* Opus 또는 Sonnet 한도의 경우 `/model`을 실행하고 해당 계열 외의 모델로 전환하여 작업을 계속합니다. 각 모델에는 자체 프롬프트 캐시가 있으므로 다음 요청은 캐시 적중 없이 전체 대화를 다시 읽습니다. [모델 전환](/docs/ko/prompt-caching#switching-models)을 참조하세요 +* `/usage`를 실행하여 플랜 한도와 재설정 시간을 확인합니다 +* `/usage-credits`를 실행하여 Pro 및 Max에서는 추가 사용량을 구매하거나, Team 및 Enterprise에서는 관리자에게 요청합니다. 청구 방식은 [유료 플랜의 사용량 크레딧](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans)을 참조하세요. +* 더 높은 기본 한도를 위해 플랜을 업그레이드하려면 [claude.com/pricing](https://claude.com/pricing)을 참조하세요 -한도에 도달하기 전에 Claude Code는 남은 허용량을 대부분 사용했다는 경고를 표시할 수 있으며, `You've used 85% of your session limit · resets 3:45pm`과 같은 메시지가 표시됩니다. 남은 허용량을 지속적으로 모니터링하려면 [custom status line](/docs/ko/statusline#rate-limit-usage)에 `rate_limits` 필드를 추가하거나 Desktop app에서 모델 선택기 옆의 [usage ring](/docs/ko/desktop#check-usage)을 클릭합니다. +윈도우가 소진되기 전에 Claude Code는 `You've used 85% of your session limit · resets 3:45pm`과 같은 메시지로 대부분을 사용했다고 경고할 수 있습니다. 남은 허용량을 지속적으로 확인하려면 [사용자 지정 상태줄](/docs/ko/statusline#rate-limit-usage)에 `rate_limits` 필드를 추가하거나, Desktop 앱에서 모델 선택기 옆의 [사용량 링](/docs/ko/desktop#check-usage)을 클릭하세요.

- 1M 컨텍스트에 필요한 사용 크레딧 + Usage credits required for 1M context

-선택한 모델은 1M 토큰 확장 컨텍스트 윈도우를 사용하며 플랜에는 사용 크레딧을 통해서만 포함됩니다. +선택한 모델이 100만 토큰 확장 컨텍스트 윈도우를 사용하는데, 사용자의 플랜에서는 사용량 크레딧을 통해서만 이를 제공합니다. ```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 ``` -Claude Desktop app이 실행하는 세션에서 힌트는 명령을 지정하지 않습니다: claude.ai 사용 설정 페이지를 가리키거나 Team 및 Enterprise 플랜에서는 claude.ai/admin-settings/usage에서 사용 크레딧을 켜거나 관리자에게 요청하도록 지시합니다. +Claude Desktop 앱이 실행하는 세션에서는 안내 문구에 명령이 표시되지 않습니다. 대신 claude.ai 사용량 설정 페이지를 안내하거나, Team 및 Enterprise 플랜에서는 claude.ai/admin-settings/usage에서 사용량 크레딧을 켜거나 관리자에게 요청하라고 안내합니다. -이는 할당량 소진이 아닌 자격 확인입니다. 세션 및 주간 허용량에 용량이 남아 있어도 발생합니다. 1M 컨텍스트를 직접 포함하는 플랜과 사용 크레딧이 필요한 플랜은 [확장 컨텍스트](/docs/ko/model-config#extended-context)를 참조하십시오. +이는 할당량 소진이 아닌 사용 자격 확인입니다. 세션 허용량과 주간 허용량이 남아 있어도 발생합니다. 어떤 플랜이 100만 컨텍스트를 직접 포함하고 어떤 플랜이 사용량 크레딧을 필요로 하는지는 [확장 컨텍스트](/docs/ko/model-config#extended-context)를 참조하세요. -이 오류가 컨텍스트가 200K 토큰을 초과하여 대화 중간에 나타나면 Claude Code는 자동으로 대화를 표준 컨텍스트 한도 아래로 압축하고 이후 세션을 해당 한도로 유지하므로 조치가 필요하지 않습니다. v2.1.172 이전 버전에서는 `/compact`를 포함한 모든 후속 요청에서 오류가 반복되었습니다. 해당 버전에서 복구하려면 `/clear`를 실행합니다. 아래 단계는 명시적으로 `[1m]` 모델을 선택한 경우에 적용됩니다. +컨텍스트가 20만 토큰을 넘어서 대화 도중 이 오류가 나타나면, Claude Code가 자동으로 대화를 압축하여 표준 컨텍스트 한도 아래로 되돌리고 이후 세션을 해당 한도로 유지하므로 별도의 조치가 필요하지 않습니다. v2.1.172 이전 버전에서는 `/compact`를 포함한 모든 후속 요청에서 오류가 반복되었으므로, 해당 버전에서는 `/clear`를 실행하여 복구합니다. 아래 단계는 `[1m]` 모델을 명시적으로 선택한 경우에 적용됩니다. -**수행할 작업:** +**해결 방법:** -* `/model`을 실행하고 `[1m]` 접미사 없는 변형을 선택하여 표준 컨텍스트 윈도우로 폴백합니다 -* 메시지가 `/usage-credits`를 지정하는 경우 이를 실행하여 Pro 및 Max에서 1M 변형에 대한 측정 청구를 켜거나 Team 및 Enterprise에서 관리자에게 사용 크레딧을 요청합니다. 사용 크레딧이 켜진 후 Claude Code를 다시 시작하거나 새 세션을 시작합니다(메시지가 지정하는 대로). 그때까지 세션은 표준 컨텍스트 한도로 유지됩니다. -* `/model` 후에도 오류가 지속되면 1M 모델 ID가 다른 곳에 설정되어 있을 수 있습니다. 우선순위 순서로 확인할 구성 위치는 [모델 설정](/docs/ko/model-config#setting-your-model)을 참조하십시오. -* 모델 선택기에서 1M 변형을 완전히 제거하려면 [`CLAUDE_CODE_DISABLE_1M_CONTEXT=1`](/docs/ko/env-vars)을 설정합니다 +* `/model`을 실행하고 `[1m]` 접미사가 없는 변형을 선택하여 표준 컨텍스트 윈도우로 되돌립니다 +* 메시지에 `/usage-credits`가 표시된 경우, 이를 실행하여 Pro 및 Max에서는 100만 변형에 대한 종량제 청구를 켜거나, Team 및 Enterprise에서는 관리자에게 사용량 크레딧을 요청합니다. 사용량 크레딧이 켜지면 메시지에 안내된 대로 Claude Code를 다시 시작하거나 새 세션을 시작합니다. 그전까지는 세션이 표준 컨텍스트 한도로 유지됩니다. +* `/model` 이후에도 오류가 계속되면 100만 모델 ID가 다른 곳에 설정되어 있을 수 있습니다. 우선순위 순서대로 확인할 구성 위치는 [모델 설정](/docs/ko/model-config#setting-your-model)을 참조하세요. +* 모델 선택기에서 100만 변형을 완전히 제거하려면 [`CLAUDE_CODE_DISABLE_1M_CONTEXT=1`](/docs/ko/env-vars)을 설정합니다 -v2.1.268 이전에는 메시지가 `run /usage-credits to turn them on, or /model to switch to standard context`로 끝났으며 다시 시작을 언급하지 않았습니다. +v2.1.268 이전에는 메시지가 `run /usage-credits to turn them on, or /model to switch to standard context`로 끝났으며 다시 시작에 대한 언급이 없었습니다.

- 확인 프롬프트에 응답이 없습니다 + The prompt to confirm went unanswered

-계정에 [Fable 사용 크레딧 동의](/docs/ko/model-config#fable-and-usage-credits)가 필요한 경우 Claude Code는 Fable 요청이 사용 크레딧을 청구하기 전에 확인하도록 요청합니다. 동의 프롬프트가 아무도 응답하지 않은 채로 종료되면 Claude Code는 다음 메시지 중 하나로 턴을 종료합니다: +계정에 [Fable 사용량 크레딧 동의](/docs/ko/model-config#fable-and-usage-credits)가 필요한 경우, Claude Code는 Fable 요청이 사용량 크레딧으로 청구되기 전에 확인을 요청합니다. 아무도 응답하지 않은 채 동의 프롬프트가 닫히면 Claude Code는 다음 메시지 중 하나와 함께 턴을 종료합니다. ```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 ``` -메시지는 세션의 Fable 모델을 지정하므로 Fable 5에서는 `continuing on Fable 5`와 `Fable 5 now uses usage credits`로 읽습니다. v2.1.257 이전에는 첫 번째 메시지가 `Fable 5 limit reached`로 시작했습니다. +메시지에는 세션의 Fable 모델 이름이 표시되므로, Fable 5에서는 `continuing on Fable 5` 및 `Fable 5 now uses usage credits`로 표시됩니다. v2.1.257 이전에는 첫 번째 메시지가 `Fable 5 limit reached`로 시작했습니다. -이는 [Remote Control](/docs/ko/remote-control) 세션, [background sessions](/docs/ko/agent-view), [agent team](/docs/ko/agent-teams) 팀원 세션, 그리고 다른 애플리케이션이 Agent SDK를 통해 호스팅하는 세션에서 발생합니다. Claude Code가 프롬프트를 닫는 경우는 [Fable and usage credits](/docs/ko/model-config#fable-and-usage-credits)를 참조하십시오. +이는 [Remote Control](/docs/ko/remote-control) 세션, [백그라운드 세션](/docs/ko/agent-view), [에이전트 팀](/docs/ko/agent-teams) 팀원 세션, 그리고 다른 애플리케이션이 Agent SDK를 통해 호스팅하는 세션에서 발생합니다. Claude Code가 프롬프트를 닫는 시점은 [Fable 및 사용량 크레딧](/docs/ko/model-config#fable-and-usage-credits)을 참조하세요. -**수행할 작업:** +**해결 방법:** -* 세션이 실행되는 터미널 또는 이를 호스팅하는 애플리케이션에서 다른 프롬프트를 보내고 다시 나타나면 동의 프롬프트에 답변합니다. 백그라운드 세션의 경우 먼저 [agents view](/docs/ko/agent-view)에서 연결합니다. Remote Control 클라이언트에서 다시 보내면 클라이언트가 프롬프트를 표시할 수 없으므로 이 메시지가 다시 나타납니다. -* `/model`을 실행하여 사용 크레딧을 청구하지 않는 모델로 전환합니다 -* 해당 터미널에 도달할 시간을 더 주려면 [`dialogExpiry`](/docs/ko/settings-reference#dialogexpiry)를 더 긴 값 또는 `"never"`로 설정합니다 +* 세션이 실행되는 곳, 즉 터미널이나 세션을 호스팅하는 애플리케이션에서 다른 프롬프트를 보내고 동의 프롬프트가 다시 나타나면 응답합니다. 백그라운드 세션의 경우 먼저 [에이전트 보기](/docs/ko/agent-view)에서 세션에 연결합니다. Remote Control 클라이언트에서 다시 보내면 클라이언트가 프롬프트를 표시할 수 없으므로 이 메시지가 다시 표시됩니다. +* `/model`을 실행하여 사용량 크레딧으로 청구되지 않는 모델로 전환합니다 +* 응답할 시간을 더 확보하려면 [`dialogExpiry`](/docs/ko/settings-reference#dialogexpiry)를 더 긴 값이나 `"never"`로 설정합니다 -v2.1.236 이전에는 이 메시지가 나타나지 않았습니다: Remote Control 클라이언트가 연결되어 있는 동안 Claude Code는 답변을 60초 동안 기다린 후 기본 모델에서 턴을 계속했습니다. +v2.1.236 이전에는 이 메시지가 나타나지 않았습니다. Remote Control 클라이언트가 연결되어 있는 동안 Claude Code는 응답을 60초간 기다린 후 기본 모델로 턴을 계속 진행했습니다.

- 서버가 일시적으로 요청을 제한하고 있습니다 + Server is temporarily limiting requests

-API가 플랜 할당량과 무관한 단기 스로틀을 적용했습니다. +API가 플랜 할당량과 무관한 단기 제한을 적용했습니다. ```text theme={null} API Error: Server is temporarily limiting requests (not your usage limit) ``` -Claude Code는 실제 한도 응답이 전달하는 통합 할당량 헤더의 부재로 이를 플랜 한도와 구분합니다. v2.1.199부터 이는 인증 방식에 관계없이 [자동으로 재시도](#automatic-retries)되며 백오프로 표시되기 전에 실행됩니다. 이전 버전에서는 claude.ai 구독으로 로그인한 세션이 첫 번째 발생에서 턴에 실패했습니다. API 키 및 Enterprise 로그인만 재시도했습니다. +Claude Code는 실제 한도 응답에 포함되는 통합 할당량 헤더가 없는지를 기준으로 이를 플랜 한도와 구분합니다. v2.1.199부터는 인증 방식과 관계없이 표시되기 전에 백오프와 함께 [자동으로 재시도](#automatic-retries)됩니다. 이전 버전에서는 claude.ai 구독으로 로그인한 세션이 첫 발생 시 턴을 실패 처리했으며, API 키 및 Enterprise 로그인만 재시도했습니다. -**수행할 작업:** +**해결 방법:** -* 잠시 기다렸다가 다시 시도합니다 -* 지속되면 [status.claude.com](https://status.claude.com)을 확인합니다 +* 잠시 기다린 후 다시 시도합니다 +* 문제가 지속되면 [status.claude.com](https://status.claude.com)을 확인합니다

- 요청 거부됨 (429) + Request rejected (429)

-API 키, Amazon Bedrock 프로젝트 또는 Google Cloud 프로젝트에 대해 구성된 속도 제한에 도달했습니다. +API 키, Amazon Bedrock 프로젝트 또는 Google Cloud 프로젝트에 구성된 속도 제한에 도달했습니다. ```text theme={null} API Error: Request rejected (429) · this may be a temporary capacity issue. If it persists, check https://status.claude.com. ``` -뒤따르는 문장은 서비스 상태를 확인할 위치를 지정하며 공급자에 따라 다릅니다. Amazon Bedrock, Google Cloud의 Agent Platform, Microsoft Foundry 구성은 Anthropic 상태 페이지 대신 해당 공급자의 서비스 상태를 지정합니다. 사용자 정의 `ANTHROPIC_BASE_URL`은 게이트웨이 호스트를 지정합니다. +마지막 문장은 서비스 상태를 확인할 위치를 안내하며 제공업체에 따라 다릅니다. Amazon Bedrock, Google Cloud의 Agent Platform, Microsoft Foundry 구성에서는 Anthropic 상태 페이지 대신 해당 제공업체의 서비스 상태를 안내합니다. 사용자 지정 `ANTHROPIC_BASE_URL`을 사용하면 게이트웨이 호스트를 안내합니다. -Claude Code와 API 사이의 프록시, 로드 밸런서 또는 게이트웨이가 자체 HTML 429 페이지로 응답할 때 `·` 뒤의 텍스트는 해당 페이지의 제목(있는 경우)입니다(예: `Too Many Requests`). v2.1.281 이전에는 전체 페이지의 마크업이 `·` 뒤에 인쇄되었습니다. +Claude Code와 API 사이의 프록시, 로드 밸런서 또는 게이트웨이가 자체 HTML 429 페이지로 응답하면, `·` 뒤의 텍스트는 해당 페이지에 제목이 있는 경우 `Too Many Requests`와 같은 페이지 제목이 됩니다. v2.1.281 이전에는 페이지 전체 마크업이 `·` 뒤에 출력되었습니다. -**수행할 작업:** +**해결 방법:** -* `/status`를 실행하고 활성 자격 증명이 예상한 것인지 확인합니다. 환경의 잘못된 `ANTHROPIC_API_KEY`는 구독 대신 저가형 키를 통해 요청을 라우팅할 수 있습니다. -* 공급자 콘솔에서 활성 한도를 확인하고 필요한 경우 더 높은 계층을 요청합니다 -* Anthropic API 키의 경우 계층이 작동하는 방식과 워크스페이스별 상한을 설정하는 방법은 [rate limits reference](https://platform.claude.com/docs/en/api/rate-limits)를 참조하십시오 -* 동시성 감소: [`CLAUDE_CODE_MAX_TOOL_USE_CONCURRENCY`](/docs/ko/env-vars)를 낮추고, 많은 병렬 서브에이전트 실행을 피하거나, 대량 스크립트 실행을 위해 `/model`로 더 작은 모델로 전환합니다 +* `/status`를 실행하여 활성 자격 증명이 예상한 것인지 확인합니다. 환경에 남아 있는 `ANTHROPIC_API_KEY`로 인해 요청이 구독 대신 낮은 티어의 키를 통해 라우팅될 수 있습니다. +* 제공업체 콘솔에서 활성 한도를 확인하고 필요한 경우 더 높은 티어를 요청합니다 +* Anthropic API 키의 경우 티어의 작동 방식과 워크스페이스별 상한을 설정하는 방법은 [속도 제한 참조](https://platform.claude.com/docs/en/api/rate-limits)를 확인하세요 +* 동시성을 줄입니다. [`CLAUDE_CODE_MAX_TOOL_USE_CONCURRENCY`](/docs/ko/env-vars)를 낮추거나, 여러 서브에이전트를 병렬로 실행하지 않거나, 대량 스크립트 실행 시 `/model`로 더 작은 모델로 전환합니다

- 월간 지출 한도에 도달했습니다 + You've hit your monthly spend limit

-플랜의 포함된 사용량이 이 요청을 충당할 수 없으며, 그렇지 않으면 이를 지불할 [사용 크레딧](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans)이 지출 한도에 도달했습니다. 이는 플랜의 사용 창 중 하나가 소진되었거나 요청이 [사용 크레딧에 청구되는](/docs/ko/model-config#fable-and-usage-credits) 모델에 대한 요청과 같이 사용 크레딧만 지불하는 요청일 때 발생합니다. 메시지는 어느 한도가 사용자를 차단했는지 지정합니다. `·` 뒤의 텍스트는 해당 한도를 높이는 방법을 설명하며 플랜 및 청구 관리 여부에 따라 다릅니다: +플랜에 포함된 사용량으로는 이 요청을 처리할 수 없으며, 그 대신 비용을 지불할 [사용량 크레딧](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans)도 지출 한도에 도달했습니다. 이는 플랜의 사용량 윈도우 중 하나가 소진되었거나, [사용량 크레딧으로 청구되는](/docs/ko/model-config#fable-and-usage-credits) 모델에 대한 요청처럼 사용량 크레딧으로만 지불되는 요청인 경우에 발생합니다. 메시지에는 누구의 한도로 인해 차단되었는지가 표시됩니다. `·` 뒤의 텍스트는 해당 한도를 늘리는 방법을 안내하며, 플랜과 청구 관리 여부에 따라 다릅니다. ```text theme={null} You've hit your monthly spend limit · raise it at claude.ai/settings/usage @@ -809,176 +822,180 @@ You've hit your team's shared budget · ask your admin to raise it at claude.ai/ 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`는 관리자가 속한 그룹에 할당한 풀링된 예산입니다. 메시지는 그룹을 지정하지 않습니다. `channel's monthly spend limit`은 세션이 실행되는 Slack 채널의 예산이므로 조직은 여전히 그 외부에 예산이 있을 수 있습니다. +`team's shared budget`는 관리자가 사용자가 속한 그룹에 할당한 공유 예산이며, 메시지에는 그룹 이름이 표시되지 않습니다. `channel's monthly spend limit`는 세션이 실행되는 단일 Slack 채널의 예산이므로, 조직에는 그 외의 예산이 남아 있을 수 있습니다. -플랜의 창 중 하나가 소진된 경우 메시지는 해당 창이 재설정될 때를 나타내며, 예를 들어 `· your session limit resets 3:45pm`이고 아무도 한도를 높이지 않으면 액세스가 그때 반환됩니다. 사용량 기반 청구가 있는 조직에서 메시지는 `spend limit` 대신 `usage limit`을 나타내며, `You've hit your individual usage limit`과 같습니다. +플랜의 윈도우 중 하나가 소진된 경우, 메시지에는 `· your session limit resets 3:45pm`과 같이 해당 윈도우의 재설정 시간도 표시되며, 누군가 한도를 늘리지 않아도 그때 접근이 복원됩니다. 사용량 기반 청구를 사용하는 조직에서는 메시지에 `spend limit` 대신 `usage limit`가 표시되며, `You've hit your individual usage limit`와 같이 나타납니다. -v2.1.239 이전에는 메시지가 플랜 창의 재설정 시간을 지정하지 않았습니다. v2.1.268 이전에는 그룹의 풀링된 예산이 `individual spend limit` 메시지 대신 `team's shared budget`을 생성했습니다. +v2.1.239 이전에는 메시지에 플랜 윈도우의 재설정 시간이 표시되지 않았습니다. v2.1.268 이전에는 그룹의 공유 예산에 도달했을 때 `team's shared budget` 대신 `individual spend limit` 메시지가 표시되었습니다. -Claude apps 게이트웨이를 통해 연결하고 소문자 `spend limit reached`를 보면 그것은 게이트웨이 운영자의 상한입니다. [지출 한도 도달](#spend-limit-reached)을 참조하십시오. +Claude 앱 게이트웨이를 통해 연결하고 있으며 소문자 `spend limit reached`가 표시된다면, 이는 게이트웨이 운영자가 설정한 상한입니다. [Spend limit reached](#spend-limit-reached)를 참조하세요. -**수행할 작업:** +**해결 방법:** -* Pro 및 Max에서 claude.ai의 [**Settings > Usage**](https://claude.ai/settings/usage)에서 월간 지출 한도를 높이거나 `/usage-credits`를 실행합니다 -* Team 및 Enterprise에서 청구를 관리하면 [**Admin settings > Usage**](https://claude.ai/admin-settings/usage)에서 한도를 높이거나 관리자에게 요청합니다. `/usage-credits`는 관리자에게 해당 요청을 보냅니다 -* 채널의 한도의 경우 조직 소유자 또는 채널의 관리자에게 claude.ai에서 이를 높이도록 요청합니다. Claude Tag 문서의 [Per-channel limits](https://claude.com/docs/claude-tag/admins/set-spend-limit#per-channel-limits)를 참조하십시오 -* 메시지가 플랜의 창에 대한 재설정 시간을 지정하면 대신 기다릴 수 있습니다 -* `/usage`를 실행하여 플랜의 창과 각각 재설정될 때를 확인합니다 +* Pro 및 Max에서는 claude.ai의 [**Settings > Usage**](https://claude.ai/settings/usage)에서 월간 지출 한도를 늘리거나 `/usage-credits`를 실행합니다 +* Team 및 Enterprise에서는 청구를 관리하는 경우 [**Admin settings > Usage**](https://claude.ai/admin-settings/usage)에서 한도를 늘리거나 관리자에게 요청합니다. `/usage-credits`를 실행하면 해당 요청이 관리자에게 전송됩니다 +* 채널 한도의 경우 조직 소유자나 채널 관리자에게 claude.ai에서 한도를 늘려 달라고 요청합니다. Claude Tag 문서의 [채널별 한도](https://claude.com/docs/claude-tag/admins/set-spend-limit#per-channel-limits)를 참조하세요 +* 메시지에 플랜 윈도우의 재설정 시간이 표시된 경우 그때까지 기다릴 수도 있습니다 +* `/usage`를 실행하여 플랜의 윈도우와 각 윈도우의 재설정 시간을 확인합니다

- 지출 한도 도달 + Spend limit reached

-[Claude apps gateway](/docs/ko/claude-apps-gateway)를 통해 연결하고 게이트웨이 운영자가 설정한 [spend cap](/docs/ko/claude-apps-gateway-spend-limits)을 초과했습니다. 게이트웨이는 명명된 기간이 재설정되거나 운영자가 상한을 높을 때까지 요청을 차단합니다. 각 차단된 `429` 응답을 `x-should-retry: false`로 표시하므로 Claude Code는 재시도 없이 이 메시지를 표시합니다. +[Claude 앱 게이트웨이](/docs/ko/claude-apps-gateway)를 통해 연결하고 있으며 게이트웨이 운영자가 설정한 [지출 상한](/docs/ko/claude-apps-gateway-spend-limits)을 초과했습니다. 게이트웨이는 명시된 기간이 재설정되거나 운영자가 상한을 올릴 때까지 요청을 차단합니다. 차단된 각 `429` 응답에는 `x-should-retry: false`가 표시되므로, Claude Code는 재시도하지 않고 이 메시지를 표시합니다. ```text theme={null} spend limit reached (daily; resets 2026-08-09 00:00 UTC) ``` -메시지는 상한의 기간과 재설정 시간을 지정하며 운영자가 `blocked_message`를 구성한 경우 해당 지침이 뒤따릅니다. v2.1.225 이전에는 메시지가 `spend limit reached`만 읽었습니다. 이전 버전의 게이트웨이는 여전히 더 짧은 형식을 보냅니다. +메시지에는 상한의 기간과 재설정 시간이 표시되며, 운영자가 `blocked_message`를 구성한 경우 그 뒤에 운영자의 안내가 이어집니다. v2.1.225 이전에는 메시지가 `spend limit reached`로만 표시되었으며, 이전 버전의 게이트웨이는 여전히 이 짧은 형식을 보냅니다. -**수행할 작업:** +**해결 방법:** -* 메시지가 지정하는 재설정 시간까지 기다리거나 메시지에 지침이 포함된 경우 운영자의 지침을 따릅니다 -* 정기적으로 상한에 도달하면 게이트웨이 운영자에게 상한을 높이도록 요청합니다 +* 메시지에 표시된 재설정 시간까지 기다리거나, 메시지에 운영자의 안내가 포함되어 있으면 그 안내를 따릅니다 +* 상한에 자주 도달한다면 게이트웨이 운영자에게 상한을 올려 달라고 요청합니다 -관련 메시지인 `spend limit unavailable`은 게이트웨이가 지출 기록을 읽을 수 없었고 상한을 초과하기보다는 예방 조치로 요청을 차단했음을 의미합니다. 일반적으로 자동으로 해결됩니다. 지속되면 게이트웨이 운영자에게 알립니다. +관련 메시지인 `spend limit unavailable`은 게이트웨이가 지출 기록을 읽을 수 없어 상한 초과가 아닌 예방 차원에서 요청을 차단했음을 의미합니다. 보통 저절로 해소되며, 지속되면 게이트웨이 운영자에게 알리세요.

- 크레딧 잔액이 너무 낮습니다 + Credit balance is too low

-Console 조직이 선불 크레딧을 소진했거나 Claude Code가 구독 대신 Console API 키로 요청을 보내고 있습니다. +Console 조직의 선불 크레딧이 소진되었거나, 구독을 사용하려 했는데 Claude Code가 Console API 키로 요청을 보내고 있습니다. ```text theme={null} Credit balance is too low ``` -**수행할 작업:** +**해결 방법:** -* Pro, Max, Team 또는 Enterprise 플랜이 있고 이것을 보면 `/status`를 실행하고 `API key` 행을 확인합니다. 환경의 승인된 `ANTHROPIC_API_KEY`는 구독 대신 해당 키를 통해 요청을 라우팅합니다. 현재 셸에서 설정을 해제하고 셸 프로필에서 제거한 후 `claude`를 다시 시작합니다. 아직 구독으로 로그인하지 않았으면 `/login`을 실행합니다. -* [platform.claude.com/settings/billing](https://platform.claude.com/settings/billing)에서 크레딧을 추가하고 잔액이 0에 도달하기 전에 자동 재로드를 활성화하는 것을 고려합니다 -* Console에서 워크스페이스별 지출 상한을 설정하여 단일 프로젝트가 조직 잔액을 소진하는 것을 방지합니다. [비용 효과적으로 관리](/docs/ko/costs)를 참조하십시오. +* Pro, Max, Team 또는 Enterprise 플랜을 사용 중인데 이 메시지가 표시되면 `/status`를 실행하고 `API key` 행을 확인합니다. 환경에 승인된 `ANTHROPIC_API_KEY`가 있으면 요청이 구독 대신 해당 키를 통해 라우팅됩니다. 현재 셸에서 이를 해제하고 셸 프로필에서 제거한 다음 `claude`를 다시 실행합니다. 아직 구독으로 로그인하지 않았다면 `/login`을 실행합니다. +* [platform.claude.com/settings/billing](https://platform.claude.com/settings/billing)에서 크레딧을 추가하고, 잔액이 0이 되기 전에 충전되도록 해당 페이지에서 자동 충전을 활성화하는 것을 고려합니다 +* 단일 프로젝트가 조직 잔액을 모두 소진하지 않도록 Console에서 워크스페이스별 지출 상한을 설정합니다. [효과적인 비용 관리](/docs/ko/costs)를 참조하세요.

- 지출 한도를 업데이트할 수 없습니다 + Could not update your spend limit

-서버가 지출 한도에 도달할 때 나타나는 프롬프트에서 수행한 지출 한도 변경을 거부했습니다. +지출 한도에 도달했을 때 나타나는 프롬프트에서 변경한 지출 한도를 서버가 거부했습니다. ```text theme={null} Could not update your spend limit: ``` -서버가 거부를 설명할 때 메시지는 해당 이유로 끝나고 동일한 값을 재시도하면 다시 실패합니다. 연결 끊김과 같이 실패에 서버 제공 이유가 없으면 메시지는 `Could not update your spend limit. Press Enter to retry.`로 읽고 재시도하면 성공할 수 있습니다. v2.1.216 이전에는 Claude Code가 모든 실패에 대해 일반 형식을 표시했습니다. +서버가 거부 사유를 설명하면 메시지가 해당 사유로 끝나며, 같은 값으로 재시도하면 다시 실패합니다. 연결 끊김처럼 서버가 제공한 사유가 없는 실패의 경우 메시지는 `Could not update your spend limit. Press Enter to retry.`로 표시되며, 재시도하면 성공할 수 있습니다. v2.1.216 이전에는 Claude Code가 모든 실패에 대해 일반 형식을 표시했습니다. -**수행할 작업:** +**해결 방법:** -* 메시지에 이유가 포함되면 더 낮은 금액과 같이 이를 만족하는 한도를 선택합니다 -* 메시지가 일반 형식만 표시하면 재시도합니다. 실패가 일시적일 수 있습니다 -* 변경이 계속 실패하면 브라우저의 [claude.ai billing settings](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans)에서 대신 변경합니다 +* 메시지에 사유가 포함되어 있으면 더 낮은 금액처럼 사유를 충족하는 한도를 선택합니다 +* 메시지가 일반 형식만 표시하면 재시도합니다. 일시적인 실패일 수 있습니다 +* 변경이 계속 실패하면 대신 브라우저에서 [claude.ai 청구 설정](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans)을 통해 변경합니다

인증 오류

-이러한 오류는 Claude Code가 API에 대해 사용자의 신원을 증명할 수 없음을 의미합니다. 언제든지 `/status`를 실행하여 현재 활성화된 자격증명을 확인하십시오. +이 오류는 Claude Code가 API에 사용자의 신원을 증명할 수 없다는 뜻입니다. 언제든지 `/status`를 실행하면 현재 활성화된 자격 증명을 확인할 수 있습니다.

- 로그인하지 않음 + 로그인되지 않음

-이 세션에 유효한 자격증명이 없습니다. +이 세션에 사용할 수 있는 유효한 자격 증명이 없습니다. ```text theme={null} Not logged in · Please run /login ``` -Claude Desktop 앱이 실행하는 세션(예: Code 탭 또는 Cowork)에서 메시지는 `Authentication required · Sign in again to continue`로 읽으며, 앱에서 다시 로그인합니다. +Code 탭이나 Cowork처럼 Claude Desktop 앱이 실행하는 세션에서는 메시지가 `Authentication required · Sign in again to continue`로 표시되며, 앱에서 다시 로그인합니다. -**수행할 작업:** +같은 [구성 디렉터리](/docs/ko/claude-directory)를 사용하는 다른 Claude Code 창에서 claude.ai 계정으로 로그인하면, 이 메시지를 표시하던 대화형 세션이 자동으로 해당 로그인을 사용하기 시작합니다. 세션을 다시 시작할 필요가 없습니다. -* `/login`을 실행하여 Claude 구독 또는 Console 계정으로 인증합니다. -* 환경 변수가 사용자를 인증할 것으로 예상했다면, `ANTHROPIC_API_KEY`가 `claude`를 실행한 셸에서 설정되고 내보내졌는지 확인합니다. -* CI 또는 자동화에서 대화형 로그인이 불가능한 경우, 시작 시 키를 가져오는 [`apiKeyHelper`](/docs/ko/settings-reference#apikeyhelper) 스크립트를 구성합니다. -* [인증 우선순위](/docs/ko/authentication#authentication-precedence)를 참조하여 여러 자격증명이 있을 때 Claude Code가 어떤 자격증명을 사용하는지 이해합니다. +macOS에서 v2.1.286 이전에는 다른 창에서 로그인한 후에도 세션이 계속 이 메시지를 표시할 수 있었습니다. 해당 버전에서는 메시지를 표시하는 세션을 다시 시작하십시오. -반복적으로 로그인하라는 메시지가 표시되면, [로그인하지 않음 또는 토큰 만료됨](/docs/ko/troubleshoot-install#not-logged-in-or-token-expired)에서 시스템 시계 확인 및 macOS 자격증명 저장소 복구 단계를 참조하십시오. +**해결 방법:** + +* `/login`을 실행하여 Claude 구독 또는 Console 계정으로 인증합니다 +* 환경 변수로 인증될 것으로 예상했다면, `claude`를 실행한 셸에서 `ANTHROPIC_API_KEY`가 설정되고 export되었는지 확인합니다 +* 대화형 로그인이 불가능한 CI 또는 자동화 환경에서는 시작 시 키를 가져오는 [`apiKeyHelper`](/docs/ko/settings-reference#apikeyhelper) 스크립트를 구성합니다 +* 여러 자격 증명이 있을 때 Claude Code가 어떤 자격 증명을 사용하는지 알아보려면 [인증 우선순위](/docs/ko/authentication#authentication-precedence)를 참조하십시오 + +로그인을 반복적으로 요청받는 경우, 시스템 시계 확인 방법과 macOS 자격 증명 저장소 복구 단계는 [로그인되지 않음 또는 토큰 만료](/docs/ko/troubleshoot-install#not-logged-in-or-token-expired)를 참조하십시오.

인증 방법을 확인할 수 없음

-세션이 자격증명 없이 API 클라이언트에 도달했습니다. [백그라운드 세션](/docs/ko/agent-view) 및 클라우드 세션은 워커가 자격증명 없이 시작될 때 이 메시지를 표시합니다. 대화형, `-p` 및 Agent SDK 실행은 [로그인하지 않음](#not-logged-in)과 동일한 조건을 보고하며 이 문자열을 디버그 로그에만 기록하므로, 거기서 찾은 경우 대신 해당 항목을 따릅니다. +세션이 자격 증명 없이 API 클라이언트에 도달했습니다. [백그라운드 세션](/docs/ko/agent-view)과 클라우드 세션은 워커가 자격 증명 없이 시작될 때 이 메시지를 표시합니다. 대화형, `-p`, Agent SDK 실행에서는 같은 상황을 [로그인되지 않음](#not-logged-in)으로 보고하고 이 문자열은 디버그 로그에만 기록하므로, 디버그 로그에서 이 문자열을 발견했다면 해당 항목을 따르십시오. ```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 ``` -현재 버전에서 오류는 워커 프로세스에 사용 가능한 자격증명이 없음을 의미합니다. v2.1.174 이전에는 유휴 사전 초기화된 워커에 할당된 백그라운드 세션이 유효한 자격증명이 구성되어 있어도 이런 식으로 실패할 수 있었습니다. v2.1.176 이전에는 요청되기 전에 유휴 상태였던 클라우드 세션도 마찬가지였습니다. 업그레이드하여 복구합니다. +현재 버전에서 이 오류는 워커 프로세스에 사용할 수 있는 자격 증명이 없었다는 뜻입니다. v2.1.174 이전에는 유휴 상태의 사전 초기화된 워커에 할당된 백그라운드 세션이 유효한 자격 증명이 구성되어 있어도 이렇게 실패할 수 있었습니다. v2.1.176 이전에는 할당되기 전에 유휴 상태로 있던 클라우드 세션도 마찬가지였습니다. 업그레이드하면 복구됩니다. -**수행할 작업:** +**해결 방법:** -* 백그라운드 또는 클라우드 세션에서 이것이 나타나고 자격증명이 이미 구성되어 있으면 v2.1.176 이상으로 업그레이드합니다. -* `ANTHROPIC_API_KEY`, `CLAUDE_CODE_OAUTH_TOKEN` 또는 클라우드 공급자 자격증명이 대화형 셸이 아닌 워커를 실행하는 환경에서 설정되어 있는지 확인합니다. -* Agent SDK의 경우, [빠른 시작의 인증 설정](/docs/ko/agent-sdk/quickstart#setup)을 참조합니다. -* 동일한 환경의 대화형 세션에서 `/status`를 실행하여 어떤 자격증명 소스가 확인되는지 확인합니다. +* 백그라운드 또는 클라우드 세션에서 이 오류가 나타나고 자격 증명이 이미 구성되어 있다면 v2.1.176 이상으로 업그레이드합니다 +* `ANTHROPIC_API_KEY`, `CLAUDE_CODE_OAUTH_TOKEN` 또는 클라우드 공급자 자격 증명이 대화형 셸뿐 아니라 워커를 실행하는 환경에도 설정되어 있는지 확인합니다 +* Agent SDK의 경우 [빠른 시작의 인증 설정](/docs/ko/agent-sdk/quickstart#setup)을 참조하십시오 +* 같은 환경의 대화형 세션에서 `/status`를 실행하여 어떤 자격 증명 소스가 확인되는지 확인합니다

- 잘못된 API 키 + 유효하지 않은 API 키

-`ANTHROPIC_API_KEY` 환경 변수 또는 `apiKeyHelper` 스크립트가 API가 거부한 키를 반환했습니다. 또는 Claude Code가 `ANTHROPIC_API_KEY`의 키를 전송하기 전에 차단했습니다. +`ANTHROPIC_API_KEY` 환경 변수 또는 `apiKeyHelper` 스크립트가 API에서 거부한 키를 반환했거나, Claude Code가 `ANTHROPIC_API_KEY`의 키를 전송하기 전에 차단했습니다. ```text theme={null} Invalid API key · Fix external API key ``` -메시지가 `Fix external API key` 이후로 계속되고 `Invalid X-Api-Key header value from ANTHROPIC_API_KEY: it contains a line break at character 41 (120 characters on 2 lines).`와 같은 설명이 있으면, API는 키를 보지 못했습니다. Claude Code가 HTTP 헤더가 전달할 수 없는 문자를 찾았고 전송하기 전에 요청을 중지했습니다. 설명을 읽고 값을 수정하는 방법은 [잘못된 요청 헤더 값](#invalid-request-header-value)을 참조합니다. +메시지가 `Fix external API key` 뒤에 `Invalid X-Api-Key header value from ANTHROPIC_API_KEY: it contains a line break at character 41 (120 characters on 2 lines).`와 같은 설명으로 이어진다면, API는 키를 받지 못한 것입니다. Claude Code가 HTTP 헤더에 담을 수 없는 문자를 발견하고 요청을 전송하기 전에 중단했습니다. 설명을 읽는 방법과 값을 수정하는 방법은 [유효하지 않은 요청 헤더 값](#invalid-request-header-value)을 참조하십시오. -**수행할 작업:** +**해결 방법:** -* 오타를 확인하고 [Console](https://platform.claude.com/settings/keys)에서 키가 취소되지 않았는지 확인합니다. -* 동일한 셸에서 `env | grep ANTHROPIC`을 실행하거나, PowerShell에서 `Get-ChildItem Env:ANTHROPIC*`을 실행합니다. direnv, dotenv 셸 플러그인 및 IDE 터미널과 같은 도구는 명시적으로 설정하지 않고도 프로젝트의 `.env` 파일에서 오래된 키를 로드할 수 있습니다. -* `ANTHROPIC_API_KEY`를 설정 해제하고 `/login`을 실행하여 대신 구독 인증을 사용합니다. -* 키가 [`apiKeyHelper`](/docs/ko/settings-reference#apikeyhelper) 스크립트에서 오는 경우, 스크립트를 직접 실행하여 stdout에 유효한 키를 인쇄하는지 확인합니다. -* `/status`를 실행하여 Claude Code가 실제로 사용 중인 자격증명 소스를 확인합니다. +* 오타가 있는지 확인하고, [Console](https://platform.claude.com/settings/keys)에서 키가 폐기되지 않았는지 확인합니다 +* 같은 셸에서 `env | grep ANTHROPIC`을 실행하거나, PowerShell에서는 `Get-ChildItem Env:ANTHROPIC*`를 실행합니다. direnv, dotenv 셸 플러그인, IDE 터미널 같은 도구는 사용자가 명시적으로 설정하지 않아도 프로젝트의 `.env` 파일에서 오래된 키를 불러올 수 있습니다. +* `ANTHROPIC_API_KEY`를 해제하고 `/login`을 실행하여 대신 구독 인증을 사용합니다 +* 키가 [`apiKeyHelper`](/docs/ko/settings-reference#apikeyhelper) 스크립트에서 오는 경우, 스크립트를 직접 실행하여 stdout에 유효한 키를 출력하는지 확인합니다 +* `/status`를 실행하여 Claude Code가 실제로 사용하는 자격 증명 소스를 확인합니다

- apiKeyHelper 스크립트가 실패 중입니다 + apiKeyHelper 스크립트가 실패함

-Claude Code가 [`apiKeyHelper`](/docs/ko/settings-reference#apikeyhelper) 설정에서 명령을 실행했지만 키를 다시 받지 못했습니다. 키 없이 요청이 자리 표시자 자격증명으로 API에 도달하고, API가 `401`로 거부합니다. 터미널의 `Authentication` 패널은 다음 중 어떤 일이 발생했는지 보여줍니다: +Claude Code가 [`apiKeyHelper`](/docs/ko/settings-reference#apikeyhelper) 설정의 명령을 실행했지만 키를 받지 못했습니다. 키가 없으면 요청이 자리표시자 자격 증명으로 API에 도달하고, API는 `401`로 이를 거부합니다. 터미널의 `Authentication` 패널에 다음 중 어떤 경우가 발생했는지 표시됩니다. -* 명령이 오류로 종료되었거나 시간 초과되었습니다. -* 명령이 stdout에 아무것도 인쇄하지 않았습니다. -* 명령이 로그인 배너 또는 로그 라인과 같이 키 이외의 것을 인쇄했습니다. 패널은 `returned output that cannot be used as an API key`를 표시하고 무엇이 잘못되었는지 말하며, 출력을 반복하지 않습니다. v2.1.227 이전에는 Claude Code가 주변 공백을 자른 후 명령이 인쇄한 모든 것을 전송했습니다. +* 명령이 오류와 함께 종료되었거나 시간 초과되었습니다 +* 명령이 stdout에 아무것도 출력하지 않았습니다 +* 명령이 로그인 배너나 로그 줄처럼 키 이외의 내용을 출력했습니다. 패널에는 `returned output that cannot be used as an API key`가 표시되고, 출력 내용을 반복하지 않고 무엇이 잘못되었는지 알려줍니다. v2.1.227 이전에는 Claude Code가 앞뒤 공백을 제거한 후 명령이 출력한 내용을 그대로 전송했습니다. ```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 ``` -[비대화형 모드](/docs/ko/headless)에서 stderr도 `apiKeyHelper failed:`로 접두사가 붙은 특정 이유를 전달합니다. +[비대화형 모드](/docs/ko/headless)에서는 stderr에도 `apiKeyHelper failed:` 접두사와 함께 구체적인 이유가 출력됩니다. -Claude Code는 스크립트를 다시 실행하고 이 메시지를 표시하기 전에 요청을 최대 2회 더 재시도하므로, 실패는 3번의 시도 내에 표시됩니다. v2.1.208 이전에는 Claude Code가 전체 [재시도 예산](#automatic-retries)을 자리 표시자 자격증명으로 요청을 재전송하는 데 사용한 후 일반적인 `401` 인증 오류 대신 스크립트 실패를 보고했습니다. +Claude Code는 이 메시지를 표시하기 전에 스크립트를 다시 실행하고 요청을 최대 두 번 더 재시도하므로, 실패는 세 번의 시도 안에 드러납니다. v2.1.208 이전에는 Claude Code가 [재시도 한도](#automatic-retries) 전체를 자리표시자 자격 증명으로 요청을 다시 보내는 데 소모한 후, 스크립트 실패 대신 일반적인 `401` 인증 오류를 보고했습니다. -`/login`을 실행하는 것은 여기서 도움이 되지 않습니다: 헬퍼의 출력은 설정이 있는 한 저장된 로그인보다 [우선순위](/docs/ko/authentication#authentication-precedence)를 갖습니다. +이 경우 `/login`을 실행해도 도움이 되지 않습니다. 설정이 있는 한 헬퍼의 출력이 저장된 로그인보다 [우선합니다](/docs/ko/authentication#authentication-precedence). -**수행할 작업:** +**해결 방법:** -* `apiKeyHelper`에 구성된 명령을 셸에서 직접 실행하여 실패를 재현합니다. -* 명령이 만료된 세션을 보고하면, 예를 들어 SSO 또는 비밀 자격증명 모음에 다시 로그인하여 자격증명 공급자로 다시 인증합니다. -* 명령이 stdout에만 키를 인쇄하도록 수정합니다. 단일 인쇄 가능한 ASCII 토큰으로 최대 16,384자이며 종료 코드 0으로 종료합니다. 작동하는 설정은 [apiKeyHelper로 자격증명 회전](/docs/ko/llm-gateway-connect#rotate-credentials-with-apikeyhelper)을 참조합니다. -* `/status`를 실행하여 실패를 확인하고 `apiKeyHelper`가 활성 자격증명 소스인지 확인합니다. `apiKeyHelper` 행은 종료 코드 및 명령의 오류 출력과 같은 마지막 실패의 세부 정보와 함께 `Failing`을 표시하며, 다음 성공적인 실행 후 사라집니다. v2.1.274 이전에는 `/status`가 실패가 아닌 자격증명 소스만 표시했습니다. -* 명령이 실패할 때마다 종료 코드와 오류 출력도 터미널의 `Authentication` 패널에 나타납니다. v2.1.212 이전에는 패널의 제목이 `Cloud authentication`이었습니다. +* `apiKeyHelper`에 구성된 명령을 셸에서 직접 실행하여 실패를 재현합니다 +* 명령이 만료된 세션을 보고하면, 예를 들어 SSO나 시크릿 볼트에 다시 로그인하는 방식으로 자격 증명 공급자에서 다시 인증합니다 +* 명령이 최대 16,384자의 출력 가능한 ASCII로 이루어진 단일 토큰 형태로 키만 stdout에 출력하고 종료 코드 0으로 종료되도록 수정합니다. 동작하는 설정 예시는 [apiKeyHelper로 자격 증명 교체](/docs/ko/llm-gateway-connect#rotate-credentials-with-apikeyhelper)를 참조하십시오. +* `/status`를 실행하여 실패 내용을 확인하고 `apiKeyHelper`가 활성 자격 증명 소스인지 확인합니다. `apiKeyHelper` 행에는 `Failing`과 함께 종료 코드 및 명령의 오류 출력 같은 마지막 실패의 세부 정보가 표시되며, 다음 실행이 성공하면 사라집니다. v2.1.274 이전에는 `/status`가 실패 내용 없이 자격 증명 소스만 표시했습니다. +* 명령이 실패할 때마다 종료 코드와 오류 출력이 터미널의 `Authentication` 패널에도 표시됩니다. v2.1.212 이전에는 패널 제목이 `Cloud authentication`이었습니다.

- 잘못된 요청 헤더 값 + 유효하지 않은 요청 헤더 값

-Claude Code가 요청 헤더로 전송하려던 값에 HTTP 헤더가 전달할 수 없는 문자가 포함되어 있습니다: 줄 바꿈, NUL 바이트 또는 `U+00FF` 위의 문자(예: 곡선 따옴표 또는 너비가 0인 공백). Claude Code는 아무것도 전송되기 전에 요청을 중지하고 수정할 변수 또는 설정의 이름을 지정합니다. 일반적인 원인은 보이지 않는 문자 또는 잘못된 줄 바꿈을 전달한 문서 또는 채팅에서 붙여넣은 자격증명입니다. +Claude Code가 요청 헤더로 보내려던 값에 HTTP 헤더에 담을 수 없는 문자, 즉 줄바꿈, NUL 바이트, 또는 둥근 따옴표나 폭 없는 공백처럼 `U+00FF`보다 큰 문자가 포함되어 있습니다. Claude Code는 아무것도 전송하기 전에 요청을 중단하고 수정해야 할 변수나 설정의 이름을 알려줍니다. 보통 문서나 채팅에서 붙여 넣은 자격 증명에 보이지 않는 문자나 불필요한 줄바꿈이 들어간 것이 원인입니다. -Claude Code는 Claude API에 직접 또는 [LLM 게이트웨이](/docs/ko/llm-gateway)를 통해 요청을 전송할 때 이 확인을 실행합니다. [Amazon Bedrock](/docs/ko/amazon-bedrock)과 같은 타사 클라우드 공급자에서는 Claude Code가 전송하기 전에 실행하지 않습니다. +Claude Code는 Claude API에 직접 또는 [LLM 게이트웨이](/docs/ko/llm-gateway)를 통해 요청을 보낼 때 이 검사를 실행합니다. [Amazon Bedrock](/docs/ko/amazon-bedrock) 같은 타사 클라우드 공급자에서는 전송 전에 이 검사를 실행하지 않습니다. ```text theme={null} Invalid auth token · Fix external auth token @@ -986,33 +1003,33 @@ Invalid ANTHROPIC_CUSTOM_HEADERS · Fix the environment variable Invalid request header from the environment · Fix the environment variable ``` -메시지의 첫 번째 부분은 잘못된 값이 어디에서 왔는지에 따라 달라집니다: +메시지의 첫 부분은 잘못된 값이 어디에서 왔는지에 따라 달라집니다. -* `Invalid auth token`: [`ANTHROPIC_AUTH_TOKEN`](/docs/ko/env-vars) 또는 [`CLAUDE_CODE_OAUTH_TOKEN`](/docs/ko/env-vars)의 베어러 토큰 -* `Invalid ANTHROPIC_CUSTOM_HEADERS`: [`ANTHROPIC_CUSTOM_HEADERS`](/docs/ko/env-vars)에서 설정한 헤더 이름 또는 값입니다. 설명은 `ANTHROPIC_CUSTOM_HEADERS`에서 구문 분석된 3개 중 2번째 고유 헤더와 같이 어떤 `Name: Value` 쌍이 잘못되었는지 계산하며, 이름이나 값을 반복하지 않습니다. -* `Invalid request header from the environment`: Claude Code가 `CLAUDE_AGENT_SDK_CLIENT_APP`과 같은 다른 환경 변수에서 요청 헤더로 복사하는 값입니다. 설명은 수정할 변수의 이름을 지정합니다. +* `Invalid auth token`: [`ANTHROPIC_AUTH_TOKEN`](/docs/ko/env-vars) 또는 [`CLAUDE_CODE_OAUTH_TOKEN`](/docs/ko/env-vars)의 bearer 토큰 +* `Invalid ANTHROPIC_CUSTOM_HEADERS`: [`ANTHROPIC_CUSTOM_HEADERS`](/docs/ko/env-vars)에 설정한 헤더 이름 또는 값. 설명에는 `distinct header 2 of 3 parsed from ANTHROPIC_CUSTOM_HEADERS`처럼 몇 번째 `Name: Value` 쌍이 문제인지 표시되며, 이름과 값은 사용자가 직접 정한 것이므로 반복하지 않습니다. +* `Invalid request header from the environment`: Claude Code가 `CLAUDE_AGENT_SDK_CLIENT_APP` 같은 다른 환경 변수에서 요청 헤더로 복사하는 값. 설명에 수정해야 할 변수 이름이 표시됩니다. -Claude Code는 이 확인으로 포착된 잘못된 `ANTHROPIC_API_KEY`를 [잘못된 API 키](#invalid-api-key)로 보고하며, 동일한 후행 설명이 있습니다. 잘못된 저장된 `/login` 자격증명을 [로그인하지 않음](#not-logged-in)으로 보고합니다. [`apiKeyHelper`](/docs/ko/settings-reference#apikeyhelper) 스크립트의 출력은 이 확인에 도달하지 않습니다: Claude Code는 스크립트가 실행될 때 유효성을 검사하며, HTTP 헤더가 전달할 수 없는 출력은 [apiKeyHelper 스크립트가 실패 중입니다](#your-apikeyhelper-script-is-failing)로 실패합니다. +이 검사에서 발견된 잘못된 `ANTHROPIC_API_KEY`는 같은 후행 설명과 함께 [유효하지 않은 API 키](#invalid-api-key)로 보고됩니다. 잘못된 저장된 `/login` 자격 증명은 대신 [로그인되지 않음](#not-logged-in)으로 보고되며, `/login`을 실행하여 새 자격 증명을 저장하면 됩니다. [`apiKeyHelper`](/docs/ko/settings-reference#apikeyhelper) 스크립트의 출력은 이 검사에 도달하지 않습니다. Claude Code는 스크립트가 실행될 때 출력을 검증하며, HTTP 헤더에 담을 수 없는 출력은 [apiKeyHelper 스크립트가 실패함](#your-apikeyhelper-script-is-failing)으로 실패합니다. -두 번째 `·` 이후에 메시지는 다음과 같은 전체 예제에서 문제를 설명합니다: +두 번째 `·` 뒤에서 메시지는 다음 전체 예시처럼 문제를 설명합니다. ```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). ``` -위치는 1부터 시작하는 문자를 계산합니다. 설명은 고정된 구문과 문자 수로 구성되므로 값 자체를 포함하지 않습니다. 바이트 순서 표시, 너비가 0인 공백 또는 곡선 따옴표와 같이 잘 알려진 보이지 않는 또는 인쇄 문자인 경우에만 잘못된 문자의 이름을 지정하며, 다른 모든 것을 `a non-ASCII character`로 보고합니다. +위치는 1부터 시작하여 문자 단위로 셉니다. 설명은 고정된 문구와 문자 수로 구성되므로 값 자체는 절대 포함되지 않습니다. 문제가 되는 문자가 바이트 순서 표시, 폭 없는 공백, 둥근 따옴표처럼 잘 알려진 보이지 않는 문자나 인쇄용 문자일 때만 해당 문자의 이름을 표시하고, 그 밖의 문자는 `a non-ASCII character`로 보고합니다. -**수행할 작업:** +**해결 방법:** -* 메시지가 이름을 지정한 변수 또는 설정을 다시 설정하고, 동일한 소스에서 붙여넣는 대신 보고된 위치 주변의 문자를 다시 입력합니다. -* `ANTHROPIC_CUSTOM_HEADERS`의 경우, 한 줄에 하나의 `Name: Value` 쌍을 유지하고 메시지가 계산하는 쌍을 다시 작성합니다. -* `/status`를 실행하여 어떤 자격증명 소스가 활성화되어 있는지 확인합니다. +* 메시지에 표시된 변수나 설정을 다시 설정하되, 같은 소스에서 다시 붙여 넣지 말고 보고된 위치 주변의 문자를 직접 다시 입력합니다 +* `ANTHROPIC_CUSTOM_HEADERS`의 경우 한 줄에 `Name: Value` 쌍 하나씩 유지하고, 메시지가 가리키는 쌍을 다시 작성합니다 +* `/status`를 실행하여 활성 자격 증명 소스를 확인합니다

- 이 조직이 비활성화되었습니다 + 이 조직이 비활성화됨

-Claude Code가 비활성화된 Console 조직의 오래된 `ANTHROPIC_API_KEY`를 사용 중입니다. 저장된 구독 로그인이 있으면 키가 이를 재정의합니다. +Claude Code가 비활성화된 Console 조직의 오래된 `ANTHROPIC_API_KEY`를 사용하고 있습니다. 저장된 구독 로그인이 있어도 키가 이를 재정의합니다. ```text theme={null} Your ANTHROPIC_API_KEY belongs to a disabled organization · Unset the environment variable to use your subscription instead @@ -1020,22 +1037,22 @@ Your ANTHROPIC_API_KEY belongs to a disabled organization · Update or unset the API Error: 400 ... This organization has been disabled. ``` -`·` 이후의 힌트는 저장된 자격증명에 따라 달라집니다: 첫 번째 형식은 저장된 `/login`이 키를 설정 해제한 후 인수할 수 있을 때 나타나고, 두 번째는 키가 유일한 자격증명일 때 나타납니다. +`·` 뒤의 안내는 저장된 자격 증명에 따라 달라집니다. 첫 번째 형태는 키를 해제한 후 저장된 `/login`이 대신 사용될 수 있을 때 표시되고, 두 번째 형태는 키가 유일한 자격 증명일 때 표시됩니다. -환경 변수는 `/login`보다 우선순위를 가지므로, 셸 프로필에서 내보낸 키 또는 `.env` 파일에서 로드된 키는 작동하는 Pro 또는 Max 구독이 있어도 사용됩니다. 비대화형 모드(`-p`)에서는 키가 있을 때 항상 사용됩니다. +환경 변수는 `/login`보다 우선하므로, 셸 프로필에서 export했거나 `.env` 파일에서 불러온 키는 정상적인 Pro 또는 Max 구독이 있어도 사용됩니다. 비대화형 모드(`-p`)에서는 키가 있으면 항상 키가 사용됩니다. -**수행할 작업:** +**해결 방법:** -* 현재 셸에서 `ANTHROPIC_API_KEY`를 설정 해제하고 셸 프로필에서 제거한 후 `claude`를 다시 실행합니다. -* 메시지가 `Update or unset`이라고 하면, 폴백할 저장된 로그인이 없습니다. 키를 설정 해제하고 `/login`을 실행하거나, 활성 Console 조직의 키로 바꿉니다. -* 그 후 `/status`를 실행하여 활성 자격증명이 구독인지 확인합니다. -* 환경 변수가 설정되지 않았고 오류가 지속되면, 비활성화된 조직은 `/login`에 연결된 조직입니다. 지원팀에 문의하거나 다른 계정으로 로그인합니다. +* 현재 셸에서 `ANTHROPIC_API_KEY`를 해제하고 셸 프로필에서 제거한 다음 `claude`를 다시 실행합니다 +* 메시지에 `Update or unset`이 표시되면 대신 사용할 저장된 로그인이 없는 것입니다. 키를 해제하고 `/login`을 실행하거나, 활성 Console 조직의 키로 교체합니다. +* 이후 `/status`를 실행하여 활성 자격 증명이 구독인지 확인합니다 +* 환경 변수가 설정되어 있지 않은데도 오류가 계속되면 지원팀에 문의하거나 다른 계정으로 로그인합니다.

- 조직이 API 키 인증을 비활성화했습니다 + 조직에서 API 키 인증을 비활성화함

-이 메시지는 Claude Code v2.1.169 이상이 필요합니다. Console 조직의 관리자가 API 키 인증을 비활성화했으므로 API가 Claude Code가 전송 중인 키를 거부합니다. 복구 힌트는 키가 어디에서 왔는지에 따라 `·` 이후에 달라집니다: +이 메시지는 Claude Code v2.1.169 이상이 필요합니다. Console 조직의 관리자가 API 키 인증을 꺼 두었기 때문에 API가 Claude Code가 보내는 키를 거부합니다. `·` 뒤의 복구 안내는 키를 가져온 위치에 따라 달라집니다. ```text theme={null} Your organization has disabled API key authentication · Run /login to sign in with your claude.ai account @@ -1045,87 +1062,87 @@ Your organization has disabled API key authentication · Unset the apiKeyHelper Your organization has disabled API key authentication · Sign in again with your claude.ai account ``` -마지막 형식은 Claude Desktop 앱이 실행하는 세션(예: Code 탭 또는 Cowork)에 나타나며, 앱에서 다시 로그인합니다. +마지막 형태는 Code 탭이나 Cowork처럼 Claude Desktop 앱이 실행하는 세션에서 표시되며, 이 경우 앱에서 다시 로그인합니다. -환경 변수와 `apiKeyHelper`는 `/login`보다 우선순위를 가지므로, 둘 중 하나가 여전히 키를 제공하는 동안 `/login`을 실행하는 것만으로는 도움이 되지 않습니다. [인증 우선순위](/docs/ko/authentication#authentication-precedence)를 참조합니다. +환경 변수와 `apiKeyHelper`는 `/login`보다 우선하므로, 둘 중 하나가 계속 키를 제공하는 동안에는 `/login`만 실행해서는 해결되지 않습니다. [인증 우선순위](/docs/ko/authentication#authentication-precedence)를 참조하십시오. -**수행할 작업:** +**해결 방법:** -* 메시지가 `ANTHROPIC_API_KEY`의 이름을 지정하면, 현재 셸에서 설정을 해제하고 셸 프로필 또는 `.env` 파일에서 제거한 후 `claude`를 다시 실행합니다. -* 메시지가 `apiKeyHelper`의 이름을 지정하면, `settings.json`에서 [`apiKeyHelper`](/docs/ko/settings-reference#apikeyhelper) 설정을 제거합니다. -* `/login`을 실행하여 claude.ai 계정으로 로그인합니다. -* 그 후 `/status`를 실행하여 활성 자격증명이 API 키가 아닌 구독인지 확인합니다. -* 자동화를 위해 API 키 인증이 필요하면, 조직 관리자에게 Console에서 이를 다시 활성화하도록 요청합니다. +* 메시지에 `ANTHROPIC_API_KEY`가 표시되면 현재 셸에서 해제하고 셸 프로필이나 `.env` 파일에서 제거한 다음 `claude`를 다시 실행합니다 +* 메시지에 `apiKeyHelper`가 표시되면 `settings.json`에서 [`apiKeyHelper`](/docs/ko/settings-reference#apikeyhelper) 설정을 제거합니다 +* `/login`을 실행하여 claude.ai 계정으로 로그인합니다 +* 이후 `/status`를 실행하여 활성 자격 증명이 API 키가 아닌 구독인지 확인합니다 +* 자동화에 API 키 인증이 필요하다면 조직 관리자에게 Console에서 다시 활성화해 달라고 요청합니다

- 조직이 Claude 구독 액세스를 비활성화했습니다 + 조직에서 Claude 구독 액세스를 비활성화함

-Claude 조직이 구독 로그인으로 Claude Code에 로그인하는 것을 허용하지 않습니다. 동일한 계정으로 `/login`을 다시 실행하면 동일한 오류가 반환됩니다. +Claude 조직에서 구독 로그인으로 Claude Code에 로그인하는 것을 허용하지 않습니다. 같은 계정으로 `/login`을 다시 실행해도 같은 오류가 반환됩니다. ```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 ``` -이것은 서버 측 조직 설정이므로 로컬 설정, 환경 변수 또는 CLI 플래그에서 재정의할 수 없습니다. +이는 서버 측 조직 설정이므로 로컬 설정, 환경 변수, CLI 플래그로 재정의할 수 없습니다. -Agent SDK 및 `-p` 비대화형 모드는 이를 `oauth_org_not_allowed` 오류 코드로 표시합니다. +Agent SDK와 `-p` 비대화형 모드에서는 이 오류가 `oauth_org_not_allowed` 오류 코드로 표시됩니다. -**수행할 작업:** +**해결 방법:** -* 조직 관리자에게 조직에 대한 Claude Code 액세스를 활성화하도록 요청합니다. -* 구독 대신 Console API 키로 인증합니다. 설정은 [Claude Console 인증](/docs/ko/authentication#claude-console-authentication)을 참조합니다. -* 관리자이고 액세스를 활성화하는 옵션이 보이지 않으면, [Anthropic 지원](https://support.claude.com)에 문의합니다. +* 관리자에게 조직의 Claude Code 액세스를 활성화해 달라고 요청합니다 +* 구독 대신 Console API 키로 인증합니다. 설정 방법은 [Claude Console 인증](/docs/ko/authentication#claude-console-authentication)을 참조하십시오. +* 관리자인데 액세스를 활성화하는 옵션이 보이지 않으면 [Anthropic 지원팀](https://support.claude.com)에 문의합니다

- 루틴이 조직의 정책에 의해 비활성화되었습니다 + 조직 정책에 의해 루틴이 비활성화됨

-Team 또는 Enterprise 조직의 Owner가 조직 수준에서 루틴을 비활성화했습니다. 오류는 예를 들어 claude.ai/code의 [루틴](/docs/ko/routines) UI에서 루틴을 생성하거나 실행하려고 할 때 나타납니다. Claude Code v2.1.227 이상에서는 동일한 설정이 CLI에서 [`/schedule`도 숨깁니다](/docs/ko/routines#troubleshooting). +Team 또는 Enterprise 조직의 Owner가 조직 수준에서 루틴을 꺼 두었습니다. 예를 들어 claude.ai/code의 [루틴](/docs/ko/routines) UI에서 루틴을 만들거나 실행하려고 할 때 이 오류가 나타납니다. Claude Code v2.1.227 이상에서는 같은 설정이 CLI에서 [`/schedule`도 숨깁니다](/docs/ko/routines#troubleshooting). ```text theme={null} Routines are disabled by your organization's policy. ``` -이것은 서버 측 설정이므로 로컬 설정, 환경 변수 또는 CLI 플래그에서 재정의할 수 없습니다. +이는 서버 측 설정이므로 로컬 설정, 환경 변수, CLI 플래그로 재정의할 수 없습니다. -**수행할 작업:** +**해결 방법:** -* 조직의 Owner에게 [claude.ai/admin-settings/claude-code](https://claude.ai/admin-settings/claude-code)에서 **루틴** 토글을 활성화하도록 요청합니다. -* 조직 수준의 루틴이 필요하지 않은 일회성 예약 작업의 경우, [예약된 작업](/docs/ko/scheduled-tasks)을 참조합니다. +* 조직의 Owner에게 [claude.ai/admin-settings/claude-code](https://claude.ai/admin-settings/claude-code)에서 **Routines** 토글을 활성화해 달라고 요청합니다 +* 조직 수준의 루틴이 필요하지 않은 일회성 예약 작업은 [예약 작업](/docs/ko/scheduled-tasks)을 참조하십시오

- Remote Control에는 Anthropic API가 필요합니다 + Remote Control에는 Anthropic API가 필요함

-세션이 Anthropic API와 직접 통신하지 않으므로 [Remote Control](/docs/ko/remote-control)이 필요로 하는 것입니다. +세션이 Anthropic API와 직접 통신하고 있지 않지만, [Remote Control](/docs/ko/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. ``` -두 번째 문장은 세션을 Anthropic API에서 멀어지게 한 것을 설명합니다. v2.1.219 이전에는 메시지가 첫 번째 문장만 있었습니다. 원인에 따라 메시지는 다음의 이름을 지정합니다: +두 번째 문장은 세션이 Anthropic API가 아닌 다른 곳으로 라우팅된 원인을 설명합니다. v2.1.219 이전에는 메시지가 첫 번째 문장만으로 구성되었습니다. 원인에 따라 메시지에는 다음이 표시됩니다. -* `CLAUDE_CODE_USE_BEDROCK`(예: [Amazon Bedrock](/docs/ko/amazon-bedrock)) 또는 `CLAUDE_CODE_USE_VERTEX`(예: [Google Cloud의 Agent Platform](/docs/ko/google-vertex-ai))와 같은 `CLAUDE_CODE_USE_*` 공급자 변수 -* [`ANTHROPIC_BASE_URL`](/docs/ko/env-vars)이 `api.anthropic.com` 이외의 호스트를 가리키고 있습니다. 예를 들어 [LLM 게이트웨이](/docs/ko/llm-gateway) 또는 프록시이며, claude.ai로 로그인할 때도 마찬가지입니다. v2.1.196 이전에는 사용자 정의 기본 URL이 Remote Control을 차단하지 않았습니다. -* `ANTHROPIC_UNIX_SOCKET`이 설정되어 있으므로 세션이 `api.anthropic.com`이 아닌 로컬 소켓을 통해 요청을 전송합니다. -* `/login`을 통한 엔터프라이즈 [클라우드 게이트웨이](/docs/ko/claude-apps-gateway) 로그인으로, Remote Control을 지원하지 않으며 설정 해제할 변수가 없습니다. +* [Amazon Bedrock](/docs/ko/amazon-bedrock)의 `CLAUDE_CODE_USE_BEDROCK` 또는 [Google Cloud의 Agent Platform](/docs/ko/google-vertex-ai)의 `CLAUDE_CODE_USE_VERTEX` 같은 `CLAUDE_CODE_USE_*` 공급자 변수 +* claude.ai로 로그인한 경우에도 [LLM 게이트웨이](/docs/ko/llm-gateway)나 프록시처럼 `api.anthropic.com`이 아닌 호스트를 가리키는 [`ANTHROPIC_BASE_URL`](/docs/ko/env-vars). v2.1.196 이전에는 사용자 지정 기본 URL이 Remote Control을 차단하지 않았습니다 +* 설정된 `ANTHROPIC_UNIX_SOCKET`. 이 경우 세션이 `api.anthropic.com`이 아닌 로컬 소켓을 통해 요청을 보냅니다 +* `/login`을 통해 이루어진 엔터프라이즈 [클라우드 게이트웨이](/docs/ko/claude-apps-gateway) 로그인. 이 방식은 Remote Control을 지원하지 않으며 해제할 변수가 없습니다 -**수행할 작업:** +**해결 방법:** -* 메시지가 이름을 지정한 변수(예: `CLAUDE_CODE_USE_BEDROCK` 또는 `ANTHROPIC_BASE_URL`)를 설정 해제하고 세션을 다시 시작하거나, Anthropic API와 직접 통신하는 세션에서 Remote Control을 시작합니다. -* 변수가 셸에 설정되지 않았으면, [설정 파일](/docs/ko/settings#where-settings-live)의 `env` 키를 확인합니다. 이는 모든 세션에 환경 변수를 적용합니다. -* 이 및 다른 Remote Control 시작 메시지의 경우, [Remote Control 문제 해결](/docs/ko/remote-control#troubleshooting)을 참조합니다. +* `CLAUDE_CODE_USE_BEDROCK`이나 `ANTHROPIC_BASE_URL`처럼 메시지에 표시된 변수를 해제하고 세션을 다시 시작하거나, Anthropic API와 직접 통신하는 세션에서 Remote Control을 시작합니다 +* 셸에 변수가 설정되어 있지 않다면, 모든 세션에 환경 변수를 적용하는 [설정 파일](/docs/ko/settings#where-settings-live)의 `env` 키를 확인합니다 +* 이 메시지와 다른 Remote Control 시작 메시지는 [Remote Control 문제 해결](/docs/ko/remote-control#troubleshooting)을 참조하십시오

- Remote Control이 로그인을 새로 고칠 수 없습니다 + Remote Control이 로그인을 갱신하지 못함

-Claude Code는 저장된 claude.ai 로그인을 사용하여 얻고 갱신하는 단기 자격증명에서 라이브 [Remote Control](/docs/ko/remote-control) 연결을 실행합니다. claude.ai가 해당 로그인을 더 이상 수락하지 않거나 Claude Code에 저장된 로그인이 남아 있지 않으면, Claude Code는 Remote Control을 중지하고 다시 로그인하도록 요청합니다. 두 실패 모두 Claude Code가 여전히 연결 중이거나 나중에 자격증명을 갱신할 때 발생할 수 있습니다. +Claude Code는 저장된 claude.ai 로그인을 사용하여 얻고 갱신하는 단기 자격 증명으로 실시간 [Remote Control](/docs/ko/remote-control) 연결을 유지합니다. claude.ai가 해당 로그인을 더 이상 받아들이지 않거나 Claude Code에 저장된 로그인이 남아 있지 않으면, Claude Code는 Remote Control을 중지하며 다시 로그인해야 합니다. 두 가지 실패 모두 Claude Code가 아직 연결 중일 때 또는 나중에 자격 증명을 갱신할 때 발생할 수 있습니다. -Claude Code가 로그인 서비스에 저장된 로그인을 새로 고치도록 요청하고 응답을 받지 못하면, Remote Control을 계속 실행하고 연결의 현재 자격증명이 여전히 유효한 동안 새로 고침을 다시 시도합니다. 새로 고침이 응답을 받지 못하는 경우는 Claude Code가 로그인 서비스에 도달할 수 없거나, 요청이 시간 초과되거나, 서비스가 로그인을 거부하지 않고 실패할 때입니다. 해당 자격증명이 만료될 때 로그인 서비스가 여전히 응답하지 않으면, Claude Code는 Remote Control을 중지하고 `OAuth token refresh failed`를 보고합니다. +Claude Code가 로그인 서비스에 저장된 로그인 갱신을 요청했는데 응답을 받지 못하면, Remote Control을 계속 실행하면서 연결의 현재 자격 증명이 아직 유효한 동안 갱신을 다시 시도합니다. Claude Code가 로그인 서비스에 연결할 수 없거나, 요청이 시간 초과되거나, 서비스가 로그인을 거부하지 않은 채 실패하면 갱신에 대한 응답이 없는 것입니다. 해당 자격 증명이 만료될 때까지 로그인 서비스가 여전히 응답하지 않으면, Claude Code는 Remote Control을 중지하고 `OAuth token refresh failed`를 보고합니다. -Claude Code가 Remote Control을 중지하면, 경고 및 `Remote Control disconnected`로 시작하는 기록 라인에 이유를 표시합니다. 로컬 세션은 Remote Control 없이 계속 실행됩니다. 이 섹션은 다음 라인을 다룹니다: +Claude Code가 Remote Control을 중지하면 경고와 `Remote Control disconnected`로 시작하는 트랜스크립트 줄에 이유를 표시합니다. 로컬 세션은 Remote Control 없이 계속 실행됩니다. 이 섹션에서는 다음 줄을 다룹니다. ```text theme={null} Remote Control disconnected — Claude.ai login expired — run /login to restore Remote Control @@ -1137,49 +1154,49 @@ Remote Control disconnected — JWT refresh failed: no OAuth token — run /logi Remote Control disconnected — Signed out of Claude — run /login, then /remote-control ``` -Claude Code는 메시지의 중간에 원인의 이름을 지정합니다: +Claude Code는 메시지 중간에 원인을 표시합니다. -* ` Claude.ai login expired` 및 `Claude.ai login was rejected`: claude.ai가 더 이상 저장된 로그인 토큰을 수락하지 않습니다. 만료되었거나 취소되었기 때문입니다. -* ` OAuth token unavailable`: Claude Code가 연결의 자격증명이 갱신될 때 저장된 로그인 토큰이 없었습니다. -* `OAuth token refresh failed`: Claude Code가 다시 연결할 때 claude.ai가 저장된 로그인 토큰을 거부했으며, 토큰을 새로 고치면 새 토큰이 생성되지 않았습니다. -* `JWT refresh failed: no OAuth token`: Claude Code가 갱신할 저장된 로그인 토큰을 찾지 못했습니다. -* ` Signed out of Claude`: 예를 들어 다른 터미널에서 `/logout`을 실행하여 이 머신에서 로그아웃했으므로 Claude Code가 연결을 갱신할 저장된 로그인이 없습니다. +* `Claude.ai login expired` 및 `Claude.ai login was rejected`: 저장된 로그인 토큰이 만료되었거나 폐기되어 claude.ai가 더 이상 받아들이지 않습니다 +* `OAuth token unavailable`: 연결의 자격 증명을 갱신해야 할 때 Claude Code에 저장된 로그인 토큰이 없었습니다 +* `OAuth token refresh failed`: Claude Code가 다시 연결하는 동안 claude.ai가 저장된 로그인 토큰을 거부했고, 토큰을 갱신해도 새 토큰이 생성되지 않았습니다 +* `JWT refresh failed: no OAuth token`: Claude Code가 갱신에 사용할 저장된 로그인 토큰을 찾지 못했습니다 +* `Signed out of Claude`: 예를 들어 다른 터미널에서 `/logout`을 실행하여 이 머신에서 로그아웃했기 때문에, Claude Code에 연결을 갱신할 저장된 로그인이 남아 있지 않습니다 -**수행할 작업:** +**해결 방법:** -* `/login`을 실행하여 다시 로그인합니다. -* `/remote-control`을 실행하여 세션을 다시 연결합니다. ` run /login to restore Remote Control`으로 끝나는 메시지는 이 단계가 필요하지 않습니다: Claude Code는 로그인하면 자동으로 다시 연결됩니다. +* `/login`을 실행하여 다시 로그인합니다 +* `/remote-control`을 실행하여 세션을 다시 연결합니다. `run /login to restore Remote Control`로 끝나는 메시지는 이 단계가 필요하지 않습니다. 로그인하면 Claude Code가 자동으로 다시 연결합니다. -v2.1.224 이전에는 `OAuth token refresh failed — run /login to re-authenticate`가 `OAuth token refresh failed — re-authenticate, then re-enable Remote Control`으로 읽혔으며, `JWT refresh failed: no OAuth token — run /login`이 `no OAuth token available for recovery (code )`으로 읽혔습니다. ` Claude.ai login expired`, `Claude.ai login was rejected` 및 `OAuth token unavailable` 메시지는 v2.1.225에서 추가되었습니다. +v2.1.224 이전에는 `OAuth token refresh failed — run /login to re-authenticate`가 `OAuth token refresh failed — re-authenticate, then re-enable Remote Control`로, `JWT refresh failed: no OAuth token — run /login`이 `no OAuth token available for recovery (code )`로 표시되었습니다. `Claude.ai login expired`, `Claude.ai login was rejected`, `OAuth token unavailable` 메시지는 v2.1.225에서 추가되었습니다. -v2.1.238 이전에는 Claude Code가 현재 `Signed out of Claude`라고 하는 경우를 `JWT refresh failed: no OAuth token — run /login`으로 보고했으며, 한 번의 로그인 새로 고침이 응답을 받지 못하자마자 `Claude.ai login expired — run /login to restore Remote Control`으로 Remote Control을 중지했습니다. +v2.1.238 이전에는 현재 `Signed out of Claude`로 표시되는 경우를 Claude Code가 `JWT refresh failed: no OAuth token — run /login`으로 보고했으며, 로그인 갱신 요청 하나에 응답이 없으면 즉시 `Claude.ai login expired — run /login to restore Remote Control`과 함께 Remote Control을 중지했습니다.

- Remote Control이 로그인한 계정이 변경되어 중지되었습니다 + 로그인된 계정이 변경되어 Remote Control이 중지됨

-Claude Code는 이 머신에서 다른 claude.ai 계정 또는 조직으로 로그인할 때 [Remote Control](/docs/ko/remote-control) 세션 중에 이 라인을 표시합니다. 예를 들어 다른 터미널에서 `/login`을 실행하여 Claude Code 세션 외부에서 전환했습니다. +[Remote Control](/docs/ko/remote-control) 세션 중에 이 머신에서 다른 claude.ai 계정이나 조직으로 로그인하면 Claude Code가 이 줄을 표시합니다. 예를 들어 다른 터미널에서 `/login`을 실행하는 등 Claude Code 세션 외부에서 전환한 경우입니다. -`/login`을 통해 로그인하는 동안 시작한 Remote Control 세션은 당시 로그인한 claude.ai 계정 및 조직에 속합니다. +`/login`으로 로그인한 상태에서 시작한 Remote Control 세션은 당시 로그인되어 있던 claude.ai 계정과 조직에 속합니다. ```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는 claude.ai가 계정 또는 조직이 변경되었음을 확인하자마자 Remote Control 세션을 중지합니다. 로컬 세션은 Remote Control 없이 계속 실행됩니다. +Claude Code는 claude.ai가 계정이나 조직이 변경되었음을 확인하는 즉시 Remote Control 세션을 중지합니다. 로컬 세션은 Remote Control 없이 계속 실행됩니다. -**수행할 작업:** +**해결 방법:** -* `/remote-control`을 실행하여 현재 계정 또는 조직에서 새 Remote Control 세션을 시작합니다. -* 다시 전환하려면, `/login`을 실행하고 이전 계정 또는 조직으로 다시 로그인합니다. 그런 다음 `/remote-control`을 실행합니다. +* `/remote-control`을 실행하여 현재 계정이나 조직으로 새 Remote Control 세션을 시작합니다 +* 이전으로 되돌리려면 `/login`을 실행하고 이전 계정이나 조직으로 다시 로그인한 다음 `/remote-control`을 실행합니다. -v2.1.234 이전에는 Claude Code가 Claude Code 세션 외부에서 다른 계정 또는 조직으로 전환할 때 알아차리지 못했습니다. Claude Code는 Remote Control 서버에 대한 나중의 요청이 `Remote Control server rejected the request (HTTP 404)`로 실패할 때까지 Remote Control 세션을 연결된 상태로 유지했습니다. 해당 실패는 전환 후 몇 시간이 지날 수 있습니다. +v2.1.234 이전에는 Claude Code 세션 외부에서 다른 계정이나 조직으로 전환해도 Claude Code가 이를 감지하지 못했습니다. Claude Code는 이후 Remote Control 서버에 대한 요청이 `Remote Control server rejected the request (HTTP 404)`로 실패할 때까지 Remote Control 세션을 연결된 상태로 유지했습니다. 이 실패는 전환 후 몇 시간 뒤에 발생할 수도 있었습니다.

- Remote Control이 세션을 실행 중인 앱이 로그아웃하거나 계정을 전환하여 중지되었습니다 + 세션을 실행하는 앱이 로그아웃하거나 계정을 전환하여 Remote Control이 중지됨

-Claude 데스크톱 앱 또는 IDE가 세션을 호스팅할 때, Claude Code는 `/login`이 아닌 해당 앱에서 로그인 토큰을 가져옵니다. claude.ai가 해당 토큰을 거부할 때, Claude Code는 앱에 새 토큰을 요청합니다. 앱이 로그아웃했거나 이제 다른 Claude 계정으로 로그인했다고 응답하면, Claude Code는 [Remote Control](/docs/ko/remote-control) 세션을 종료하고 앱에 다음 라인 중 하나를 보냅니다: +Claude 데스크톱 앱이나 IDE가 세션을 호스팅하는 경우, Claude Code는 `/login`이 아닌 해당 앱에서 로그인 토큰을 받습니다. claude.ai가 그 토큰을 거부하면 Claude Code는 앱에 새 토큰을 요청합니다. 앱이 로그아웃되어 있거나 이제 다른 Claude 계정으로 로그인되어 있다고 응답하면, Claude Code는 [Remote Control](/docs/ko/remote-control) 세션을 종료하고 앱에 다음 줄 중 하나를 보냅니다. ```text theme={null} Remote Control stopped — the app running this session is now signed in to a different Claude account @@ -1188,607 +1205,622 @@ Remote Control stopped — the app running this session is signed out of Claude. 로컬 세션은 Remote Control 없이 계속 실행됩니다. -**수행할 작업:** +**해결 방법:** -* 앱이 로그아웃했으면, 다시 로그인한 후 앱에서 Remote Control을 다시 켭니다. -* 앱이 계정을 전환했으면, Claude Code는 새 계정에서 종료된 세션을 계속할 수 없습니다. 해당 계정에서 새 Remote Control 세션을 시작합니다. +* 앱이 로그아웃된 경우 앱에 다시 로그인한 다음, 앱에서 Remote Control을 다시 켭니다 +* 앱이 계정을 전환한 경우 Claude Code는 종료된 세션을 새 계정으로 이어갈 수 없습니다. 해당 계정으로 새 Remote Control 세션을 시작합니다. -v2.1.238 이전에는 Claude Code가 두 경우 모두에서 앱에 [Remote Control이 로그인을 새로 고칠 수 없습니다](#remote-control-couldnt-refresh-your-login)에 나열된 `run /login` 메시지를 보냈습니다. +v2.1.238 이전에는 두 경우 모두 Claude Code가 [Remote Control이 로그인을 갱신하지 못함](#remote-control-couldnt-refresh-your-login)에 나열된 `run /login` 메시지를 앱에 보냈습니다.

- OAuth 토큰이 취소되었거나 만료되었습니다 + OAuth 토큰이 폐기되었거나 만료됨

-저장된 로그인이 더 이상 유효하지 않습니다. 취소된 토큰은 어디서나 로그아웃했거나 관리자가 액세스를 제거했음을 의미합니다. 만료된 토큰은 자동 새로 고침이 세션 중에 실패했음을 의미합니다. +저장된 로그인이 더 이상 유효하지 않습니다. 토큰이 폐기되었다는 것은 모든 곳에서 로그아웃했거나 관리자가 액세스를 제거했다는 뜻이고, 토큰이 만료되었다는 것은 세션 도중 자동 갱신이 실패했다는 뜻입니다. -두 메시지 모두 Claude Code가 전송한 요청에 대해 API가 반환한 거부를 보고합니다. 저장된 로그인이 실패한 새로 고침 후 이미 지워진 경우, 대신 [로그인 만료됨](#login-expired)을 봅니다. [`CLAUDE_CODE_OAUTH_TOKEN`](/docs/ko/env-vars)에서 장기 토큰으로 인증하면, 해당 토큰이 만료되거나 취소될 때 동일한 메시지가 표시됩니다. +두 메시지 모두 Claude Code가 보낸 요청에 대해 API가 반환한 거부를 보고합니다. 갱신 실패 후 저장된 로그인이 이미 삭제된 경우에는 대신 [로그인 만료](#login-expired)가 표시됩니다. [`CLAUDE_CODE_OAUTH_TOKEN`](/docs/ko/env-vars)의 장기 토큰으로 인증하는 경우에도 해당 토큰이 만료되거나 폐기되면 같은 메시지가 표시됩니다. ```text theme={null} OAuth token revoked · Please run /login Please run /login · API Error: 401 OAuth token has expired ... ``` -**수행할 작업:** +[비대화형 모드](/docs/ko/headless)(`-p`)와 [Agent SDK](/docs/ko/agent-sdk/overview)에서는 메시지가 다음과 같이 표시되며, 구조화된 오류 코드는 `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 ... +``` + +v2.1.287 이전에는 비대화형 모드와 Agent SDK에서 폐기 메시지가 `Your account does not have access to Claude. Please login again or contact your administrator.`로 표시되었습니다. -* `/login`을 실행하여 다시 로그인합니다. -* ` CLAUDE_CODE_OAUTH_TOKEN` 환경 변수로 인증하면, Claude Code는 요청이 401로 실패한 후 설정한 값을 계속 전송하며, 저장된 로그인의 토큰으로 전환하지 않습니다. [`/status`](/docs/ko/commands)는 이 자격증명을 `Auth token` 행으로 표시하며 `CLAUDE_CODE_OAUTH_TOKEN`을 읽습니다. [`claude setup-token`](/docs/ko/authentication#generate-a-long-lived-token)으로 새 토큰을 생성하고 이를 사용하여 다시 시작하거나, 변수를 설정 해제하고 `/login`을 실행합니다. v2.1.225 이전에는 Claude Code가 세션 중에 변수의 값을 저장된 로그인의 단기 액세스 토큰으로 바꿀 수 있었으며, 해당 토큰이 만료되면 세션이 다시 401 오류로 실패했습니다. -* 시작 간 반복적인 로그인 프롬프트의 경우, [로그인하지 않음 또는 토큰 만료됨](/docs/ko/troubleshoot-install#not-logged-in-or-token-expired)의 시스템 시계 확인 및 macOS 자격증명 저장소 복구 단계를 참조합니다. -* `403 Forbidden` 및 OAuth 브라우저 문제를 포함한 다른 실패의 경우, [로그인 및 인증](/docs/ko/troubleshoot-install#login-and-authentication)을 참조합니다. +**해결 방법:** + +* Claude Code 프롬프트에서 `/login`을 실행하여 다시 로그인합니다 +* `-p` 명령이나 Agent SDK 프로그램이 저장된 로그인을 사용하는 경우, 같은 환경에서 `claude`를 실행하고 `/login`을 완료한 다음 명령이나 프로그램을 다시 실행합니다. 대화형으로 로그인할 수 없는 자동화의 경우 [`ANTHROPIC_API_KEY`](/docs/ko/env-vars)로 인증하거나 [`claude setup-token`으로 장기 토큰을 생성](/docs/ko/authentication#generate-a-long-lived-token)합니다. +* `CLAUDE_CODE_OAUTH_TOKEN` 환경 변수로 인증하는 경우, 요청이 401로 실패한 후에도 Claude Code는 저장된 로그인의 토큰으로 전환하지 않고 사용자가 설정한 값을 계속 보냅니다. [`/status`](/docs/ko/commands)는 이 자격 증명을 `CLAUDE_CODE_OAUTH_TOKEN`이라고 표시된 `Auth token` 행으로 보여줍니다. [`claude setup-token`](/docs/ko/authentication#generate-a-long-lived-token)으로 새 토큰을 생성하고 이를 사용해 다시 시작하거나, 변수를 해제하고 `/login`을 실행합니다. v2.1.225 이전에는 Claude Code가 세션 도중 변수의 값을 저장된 로그인의 단기 액세스 토큰으로 바꿀 수 있었고, 해당 토큰이 만료되면 세션이 다시 401 오류로 실패했습니다. +* 실행할 때마다 로그인을 반복적으로 요청받는 경우, [문제 해결](/docs/ko/troubleshoot-install#not-logged-in-or-token-expired)의 시스템 시계 확인 방법과 macOS 자격 증명 저장소 복구 단계를 참조하십시오 +* `403 Forbidden` 및 OAuth 브라우저 문제를 포함한 기타 실패는 [로그인 및 인증](/docs/ko/troubleshoot-install#login-and-authentication)을 참조하십시오

- API 오류: 401 잘못된 인증 자격증명 + API Error: 401 Invalid authentication credentials

-API가 자격증명의 형식을 인식했지만 뒤에 있는 계정 또는 조직을 거부했습니다. Anthropic은 자격증명이 최근에 취소되었거나, 조직이 비활성화되었거나 액세스를 제거했거나, 계정 자체가 비활성화되었을 때 이 메시지를 반환하므로, 만료된 토큰이 원인이 아닙니다. 자격증명은 저장된 로그인 또는 승인된 `ANTHROPIC_API_KEY`일 수 있으며, 수정이 다르므로 `/status`를 실행하여 어떤 것이 활성화되어 있는지 확인하여 시작합니다. +API가 자격 증명의 형식은 인식했지만 그 뒤에 있는 계정이나 조직을 거부했습니다. Anthropic은 자격 증명이 최근에 폐기되었거나, 조직이 비활성화되었거나 사용자의 액세스를 제거했거나, 계정 자체가 비활성화되었을 때 이 메시지를 반환하므로, 만료된 토큰은 원인이 아닙니다. 자격 증명은 저장된 로그인이거나 승인된 `ANTHROPIC_API_KEY`일 수 있으며 해결 방법이 다르므로, 먼저 `/status`를 실행하여 어떤 자격 증명이 활성 상태인지 확인하십시오. ```text theme={null} Please run /login · API Error: 401 Invalid authentication credentials ``` -**수행할 작업:** +**해결 방법:** -* `/status`가 사용 중이 아닌 것으로 표시되지 않은 `API key` 행을 표시하면, 승인된 [`ANTHROPIC_API_KEY`](/docs/ko/authentication#authentication-precedence)가 활성 자격증명이며 로그인보다 우선순위를 가지므로 `/login`이 이를 바꾸지 않습니다. Claude Console에서 키를 회전하거나, `unset ANTHROPIC_API_KEY`를 실행하거나, PowerShell에서 `Remove-Item Env:ANTHROPIC_API_KEY`를 실행하여 구독으로 폴백합니다. -* `/status`가 로그인만 표시하면, `/login`을 한 번 실행합니다. 자격증명이 취소되었으면, 새 로그인이 이를 바꿉니다. -* 동일한 로그인 계정에 대해 동일한 메시지가 반환되면, 계정 또는 조직이 더 이상 활성화되지 않습니다. `/status`가 보고하는 계정 및 조직을 확인하고, 조직 관리자에게 액세스를 복구하도록 요청합니다. -* [`ANTHROPIC_BASE_URL`](/docs/ko/env-vars)이 [LLM 게이트웨이](/docs/ko/llm-gateway)를 가리키면, `401` 이후의 텍스트는 Anthropic의 메시지가 아닌 게이트웨이의 메시지이며, `/login`이 이를 변경하지 않습니다. 게이트웨이가 예상하는 자격증명을 대신 수정합니다. +* `/status`에 사용되지 않음으로 표시되지 않은 `API key` 행이 있다면, 승인된 [`ANTHROPIC_API_KEY`](/docs/ko/authentication#authentication-precedence)가 활성 자격 증명이며 로그인보다 우선하므로 `/login`으로 대체되지 않습니다. Claude Console에서 키를 교체하거나, `unset ANTHROPIC_API_KEY`(PowerShell에서는 `Remove-Item Env:ANTHROPIC_API_KEY`)를 실행하여 구독으로 전환합니다. +* `/status`에 로그인만 표시된다면 `/login`을 한 번 실행합니다. 자격 증명이 폐기된 경우 새 로그인이 이를 대체합니다. +* 같은 로그인 계정에 대해 같은 메시지가 다시 나타나면 계정이나 조직이 더 이상 활성 상태가 아닙니다. `/status`가 보고하는 계정과 조직을 확인하고, 조직 관리자에게 액세스 복원을 요청합니다. +* [`ANTHROPIC_BASE_URL`](/docs/ko/env-vars)이 [LLM 게이트웨이](/docs/ko/llm-gateway)를 가리키는 경우, `401` 뒤의 텍스트는 Anthropic이 아닌 게이트웨이의 메시지이며 `/login`으로 바뀌지 않습니다. 대신 게이트웨이가 요구하는 자격 증명을 수정합니다.

- 로그인 만료됨 + 로그인 만료

-Claude Code가 저장된 claude.ai 또는 Claude Console 로그인을 갱신하려고 했으며 OAuth 서비스가 저장된 새로 고침 토큰을 거부했으므로, Claude Code가 저장된 자격증명을 지웠습니다. 그 후, 각 모델 요청은 `/login`만 새 자격증명을 만들 수 있으므로 API에 도달하기 전에 로컬에서 이 메시지로 중지됩니다. +Claude Code가 저장된 claude.ai 로그인을 갱신하려고 했지만 OAuth 서비스가 저장된 갱신 토큰을 거부했기 때문에, Claude Code가 저장된 자격 증명을 삭제했습니다. 그 이후 각 모델 요청은 API에 도달하기 전에 로컬에서 이 메시지와 함께 중단됩니다. 새 자격 증명은 `/login`으로만 만들 수 있기 때문입니다. -v2.1.206 이전에는 Claude Code가 환경에 남아 있는 모든 자격증명으로 모델 요청을 어쨌든 전송했으며, 모든 모델이 로그인하라는 프롬프트 대신 [선택한 모델에 문제가 있습니다](#theres-an-issue-with-the-selected-model) 또는 401로 실패했습니다. +v2.1.206 이전에는 Claude Code가 환경에 남아 있는 자격 증명으로 모델 요청을 그대로 보냈으며, 모든 모델이 로그인 안내 대신 [선택한 모델에 문제가 있음](#theres-an-issue-with-the-selected-model) 또는 401로 실패했습니다. ```text theme={null} Login expired · Please run /login ``` -[비대화형 모드](/docs/ko/headless)(`-p`) 및 [Agent SDK](/docs/ko/agent-sdk/overview)에서 메시지는 다음과 같이 읽으며, 구조화된 오류 코드는 `authentication_failed`입니다: +[비대화형 모드](/docs/ko/headless)(`-p`)와 [Agent SDK](/docs/ko/agent-sdk/overview)에서는 메시지가 다음과 같이 표시되며, 구조화된 오류 코드는 `authentication_failed`입니다. ```text theme={null} Failed to authenticate: OAuth session expired and could not be refreshed ``` -이것은 [OAuth 토큰이 취소되었거나 만료되었습니다](#oauth-token-revoked-or-expired)와 동일한 상태가 아닙니다. 이러한 메시지는 API가 반환한 거부를 보고합니다. Claude Code 자체는 이미 갱신하지 못한 로그인에 대해 `Login expired`를 생성하므로, 요청을 전송하지 않습니다. 계정 자체가 일시 중단되었기 때문에 갱신이 실패하면, Claude Code는 대신 [계정이 보류 중입니다](#your-account-is-on-hold)를 표시합니다. +이는 [OAuth 토큰이 폐기되었거나 만료됨](#oauth-token-revoked-or-expired)과 같은 상태가 아닙니다. 해당 메시지는 API가 반환한 거부를 보고합니다. `Login expired`는 이미 갱신에 실패한 로그인에 대해 Claude Code 자체가 생성하는 메시지이므로 요청을 보내지 않습니다. 로그인이 오래되어서가 아니라 계정 자체가 정지되어 갱신이 실패한 경우, Claude Code는 대신 [계정이 보류 상태임](#your-account-is-on-hold)을 표시합니다. -API 키, [`CLAUDE_CODE_OAUTH_TOKEN`](/docs/ko/env-vars) 또는 타사 공급자로 인증된 세션은 저장된 로그인을 사용하지 않으며 이 메시지를 절대 보지 않습니다. +API 키, [`CLAUDE_CODE_OAUTH_TOKEN`](/docs/ko/env-vars) 또는 타사 공급자로 인증된 세션은 저장된 로그인을 사용하지 않으므로 이 메시지가 표시되지 않습니다. -요청이 실패하기 전에 이 상태를 확인할 수 있습니다: [`/status`](/docs/ko/commands)는 `Login` 행을 표시하며 `Expired — log in again`을 읽고, 만료된 로그인에 대해 저장한 조직 및 이메일을 표시합니다. 행은 저장된 로그인이 활성 자격증명이고 더 이상 갱신할 수 없을 때만 나타납니다. 다른 방식으로 인증된 세션은 만료된 로그인이 저장되어 있어도 행을 표시하지 않습니다. v2.1.210 이전에는 `/status`가 이 상태에서 로그인이 존재했던 적이 있다는 표시를 주지 않았습니다. 지워진 자격증명이 보고할 것이 없었기 때문입니다. +요청이 실패하기 전에 이 상태를 확인할 수 있습니다. [`/status`](/docs/ko/commands)에 `Expired — log in again`이라고 표시된 `Login` 행과 함께, 만료된 로그인에 대해 저장된 조직과 이메일이 표시됩니다. 이 행은 저장된 로그인이 활성 자격 증명이고 더 이상 갱신할 수 없을 때만 나타납니다. 다른 방식으로 인증된 세션에서는 만료된 로그인이 저장되어 있더라도 이 행이 표시되지 않습니다. v2.1.210 이전에는 자격 증명이 삭제되어 보고할 내용이 없었기 때문에, 이 상태에서 `/status`가 로그인이 존재했었다는 어떤 표시도 하지 않았습니다. -**수행할 작업:** +**해결 방법:** -* `/login`을 실행하여 다시 로그인합니다. 로그인하지 않고 재시도하면 모든 요청에서 동일한 메시지가 표시됩니다. -* 비대화형 모드에서는 동일한 환경에서 `claude`를 실행하고, `/login`을 완료한 후 명령을 다시 실행합니다. 대화형으로 로그인할 수 없는 자동화의 경우, `ANTHROPIC_API_KEY`로 인증하거나 [`claude setup-token`](/docs/ko/authentication#generate-a-long-lived-token)으로 장기 토큰을 생성합니다. -* 로그인이 계속 실패하면, [로그인 및 인증](/docs/ko/troubleshoot-install#login-and-authentication)을 참조합니다. +* `/login`을 실행하여 다시 로그인합니다. 로그인하지 않고 재시도하면 모든 요청에서 같은 메시지가 표시됩니다. +* 다른 Claude Code 창에서 claude.ai 계정으로 로그인하는 경우, 이 세션이 언제 자동으로 해당 로그인을 사용하기 시작하는지는 [로그인되지 않음](#not-logged-in)을 참조하십시오. +* 비대화형 모드에서는 같은 환경에서 `claude`를 실행하고 `/login`을 완료한 다음 명령을 다시 실행합니다. 대화형으로 로그인할 수 없는 자동화의 경우 `ANTHROPIC_API_KEY`로 인증하거나 [`claude setup-token`으로 장기 토큰을 생성](/docs/ko/authentication#generate-a-long-lived-token)합니다. +* 로그인이 계속 실패하면 [로그인 및 인증](/docs/ko/troubleshoot-install#login-and-authentication)을 참조하십시오

- 다른 Claude Code 프로세스가 로그인을 새로 고치고 있어서 로그인을 새로 고칠 수 없습니다 + 다른 Claude Code 프로세스가 갱신 중이어서 로그인을 갱신할 수 없음

-이 메시지는 로그인이 거부되었다는 의미가 아닙니다. 저장된 claude.ai 로그인이 만료되었으며 갱신이 필요했습니다. 동일한 머신의 다른 Claude Code 프로세스가 공유 새로 고침 잠금을 보유했거나, 종료되고 뒤에 남겨두었으며, 이 세션이 기다리는 동안 새로 고침이 진행되지 않았습니다. Claude Code는 전송하기 전에 요청을 중지합니다: +이 메시지는 로그인이 거부되었다는 뜻이 아닙니다. 저장된 claude.ai 로그인이 만료되어 갱신이 필요했습니다. 같은 머신의 다른 Claude Code 프로세스가 공유 갱신 잠금을 보유하고 있었거나 잠금을 남긴 채 종료되었고, 이 세션이 기다리는 동안 갱신이 진행되지 않았습니다. Claude Code는 요청을 보내기 전에 중단합니다. ```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 ``` -[비대화형 모드](/docs/ko/headless)(`-p`) 및 [Agent SDK](/docs/ko/agent-sdk/overview)에서 메시지는 다음과 같이 읽으며, 구조화된 오류 코드는 `server_error`입니다: +[비대화형 모드](/docs/ko/headless)(`-p`)와 [Agent SDK](/docs/ko/agent-sdk/overview)에서는 메시지가 다음과 같이 표시되며, 구조화된 오류 코드는 `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 ``` -API 키, [`CLAUDE_CODE_OAUTH_TOKEN`](/docs/ko/env-vars) 또는 타사 공급자로 인증된 세션은 저장된 로그인을 사용하지 않으며 이 메시지를 절대 보지 않습니다. +API 키, [`CLAUDE_CODE_OAUTH_TOKEN`](/docs/ko/env-vars) 또는 타사 공급자로 인증된 세션은 저장된 로그인을 사용하지 않으므로 이 메시지가 표시되지 않습니다. -**수행할 작업:** +**해결 방법:** -* 1분 후에 다시 시도합니다. 다른 프로세스가 먼저 새로 고침을 완료하면, 이 세션이 갱신된 로그인을 사용합니다. -* 메시지가 계속 반환되면, 다른 Claude Code 창과 프로세스를 닫은 후 재시도합니다. -* 다른 Claude Code 프로세스가 실행 중이지 않은 상태에서 반환되면, `/login`을 실행합니다. 다시 로그인하면 새로 고침 잠금을 기다리지 않습니다. +* 1분 후에 다시 시도합니다. 다른 프로세스가 먼저 갱신을 완료하면 이 세션은 갱신된 로그인을 사용합니다. +* 메시지가 계속 나타나면 다른 Claude Code 창과 프로세스를 닫은 다음 재시도합니다. +* 다른 Claude Code 프로세스가 실행되고 있지 않은데도 메시지가 나타나면 `/login`을 실행합니다. 다시 로그인하는 것은 갱신 잠금을 기다리지 않습니다.

- 로그인을 저장할 수 없습니다 + 로그인을 저장할 수 없음

-claude.ai로 로그인했지만 Claude Code가 로그인을 자격증명 저장소에 저장할 수 없어서, 로그인이 완료되지 않았습니다. macOS에서는 예를 들어 절전 또는 유휴 후 로그인 키체인이 잠길 때 발생할 수 있으며, Claude Code가 동일한 세션 중에 이미 자격증명을 읽거나 저장한 후입니다. +claude.ai로 로그인했지만 Claude Code가 로그인을 자격 증명 저장소에 저장할 수 없어 로그인이 완료되지 않았습니다. macOS에서는 같은 세션 중에 Claude Code가 이미 로그인 키체인에서 자격 증명을 읽거나 저장한 후, 예를 들어 잠자기나 유휴 상태로 인해 키체인이 잠기면 이 문제가 발생할 수 있습니다. ```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. ``` -첫 번째 형식은 macOS에 나타나고 두 번째는 다른 곳에 나타납니다. 시간 초과 또는 읽을 수 없는 저장소와 같은 일시적인 자격증명 저장소 실패는 동일한 메시지를 생성합니다. +첫 번째 형태는 macOS에서, 두 번째 형태는 그 밖의 모든 환경에서 표시됩니다. 시간 초과나 읽을 수 없는 저장소 같은 일시적인 자격 증명 저장소 실패도 같은 메시지를 생성합니다. -**수행할 작업:** +**해결 방법:** -* macOS에서 로그인 키체인을 잠금 해제한 후 `/login`을 다시 실행합니다. -* 다른 플랫폼에서 `/login`을 다시 실행합니다. -* 로그인이 여전히 저장되지 않으면, [로그인하지 않음 또는 토큰 만료됨](/docs/ko/troubleshoot-install#not-logged-in-or-token-expired)에서 키체인 잠금 해제 명령 및 기타 자격증명 저장소 복구 단계를 참조합니다. +* macOS에서는 로그인 키체인의 잠금을 해제한 다음 `/login`을 다시 실행합니다 +* 다른 플랫폼에서는 `/login`을 다시 실행합니다 +* 로그인이 여전히 저장되지 않으면, 키체인 잠금 해제 명령과 기타 자격 증명 저장소 복구 단계는 [로그인되지 않음 또는 토큰 만료](/docs/ko/troubleshoot-install#not-logged-in-or-token-expired)를 참조하십시오

- Failed to start OAuth callback server + OAuth 콜백 서버를 시작하지 못함

-`/login`, `claude auth login` 또는 `claude setup-token`이 브라우저를 통해 로그인할 때, Claude Code는 `127.0.0.1`에서 수신 포트를 열어서 브라우저가 로그인 결과를 반환할 수 있도록 합니다. 이 메시지는 Claude Code가 해당 포트를 열 수 없었으며, 로그인이 브라우저 창 또는 로그인 URL이 나타나기 전에 중지됨을 의미합니다: +`/login`, `claude auth login` 또는 `claude setup-token`이 브라우저를 통해 로그인할 때, Claude Code는 브라우저가 로그인 결과를 돌려보낼 수 있도록 `127.0.0.1`에 수신 포트를 엽니다. 이 메시지는 Claude Code가 해당 포트를 열 수 없었다는 뜻이며, 브라우저 창이나 로그인 URL이 나타나기 전에 로그인이 중단됩니다. ```text theme={null} Failed to start OAuth callback server: Failed to start server. Is port 0 in use? ``` -메시지가 `Is port 0 in use?`로 끝나면, IPv4 루프백 주소 `127.0.0.1`에서 수신하려는 시도가 완전히 실패했습니다. 실패가 로그인 URL이 존재하기 전에 발생하므로, `Paste code here if prompted` 흐름은 해결책으로 사용할 수 없습니다. +메시지가 `Is port 0 in use?`로 끝나면 IPv4 루프백 주소 `127.0.0.1`에서 수신하려는 시도가 완전히 실패한 것입니다. 로그인 URL이 생성되기 전에 실패하므로 `Paste code here if prompted` 흐름을 해결 방법으로 사용할 수 없습니다. -**수행할 작업:** +**해결 방법:** -* 로컬 리스너 없이 지금 바로 로그인하려면: claude.ai 구독을 사용하면, 로그인이 작동하는 머신에서 [`claude setup-token`](/docs/ko/authentication#generate-a-long-lived-token)을 실행하고 인쇄하는 토큰을 이 머신에서 `CLAUDE_CODE_OAUTH_TOKEN`으로 설정합니다. 그렇지 않으면 [Claude Console](https://platform.claude.com/settings/keys)의 키로 `ANTHROPIC_API_KEY`를 설정합니다. [인증 우선순위](/docs/ko/authentication#authentication-precedence)는 Claude Code가 여러 자격증명 중에서 선택하는 방식을 설명합니다. -* 대신 이 머신에서 브라우저 로그인을 사용하려면, Claude Code가 `127.0.0.1`에서 수신할 수 있어야 합니다. 샌드박스 내에서 실행되면, 샌드박스의 정책이 로컬 포트에서 수신하도록 허용하는지 확인한 후 `/login`을 다시 실행합니다. 할 수 있어야 하는데도 여전히 실패하면, `/feedback`을 실행하여 보고서에 환경 세부 정보가 포함되도록 합니다. +* 로컬 수신기 없이 바로 로그인하려면: claude.ai 구독을 사용하는 경우 로그인이 작동하는 머신에서 [`claude setup-token`](/docs/ko/authentication#generate-a-long-lived-token)을 실행하고, 출력된 토큰을 이 머신에서 `CLAUDE_CODE_OAUTH_TOKEN`으로 설정합니다. 그렇지 않으면 `ANTHROPIC_API_KEY`를 [Claude Console](https://platform.claude.com/settings/keys)의 키로 설정합니다. Claude Code가 자격 증명 중에서 선택하는 방식은 [인증 우선순위](/docs/ko/authentication#authentication-precedence)에서 설명합니다. +* 대신 이 머신에서 브라우저 로그인을 사용하려면 Claude Code가 `127.0.0.1`에서 수신할 수 있어야 합니다. 샌드박스 안에서 실행되는 경우 샌드박스 정책이 로컬 포트 수신을 허용하는지 확인한 다음 `/login`을 다시 실행합니다. 수신할 수 있어야 하는데도 계속 실패하면 `/feedback`을 실행하여 보고서에 환경 세부 정보가 포함되도록 합니다.

- Claude login not accepted + Claude 로그인이 수락되지 않음

-[클라우드 세션](/docs/ko/claude-code-on-the-web)을 시작하려고 했으며, 서버가 401로 생성을 거부했습니다: 이 머신이 전송한 Claude 로그인을 수락하지 않았습니다. 일반적으로 로그인이 만료되었거나 취소되었기 때문입니다. +[클라우드 세션](/docs/ko/claude-code-on-the-web)을 시작하려고 했지만 서버가 401로 세션 생성을 거부했습니다. 서버가 이 머신이 보낸 Claude 로그인을 받아들이지 않았으며, 보통 로그인이 만료되었거나 폐기되었기 때문입니다. -라인의 첫 번째 부분은 서버가 제공할 때 서버 자신의 이유입니다. 그렇지 않으면 라인은 다음과 같이 읽습니다: +줄의 첫 부분은 서버가 이유를 제공하는 경우 서버 자체의 이유입니다. 그렇지 않으면 다음과 같이 표시됩니다. ```text theme={null} Claude login not accepted · Run /login, then try again ``` -**수행할 작업:** +**해결 방법:** -* `/login`을 실행하고, 로그인을 완료한 후 세션을 다시 시작합니다. +* `/login`을 실행하고 로그인을 완료한 다음 세션을 다시 시작합니다

- 아티팩트에 claude.ai 로그인이 필요합니다 + 아티팩트에는 claude.ai 로그인이 필요함

-Claude Code가 세션에 아티팩트에 사용할 수 있는 claude.ai 로그인이 없어서 [아티팩트](/docs/ko/artifacts) 게시 또는 읽기를 거부했습니다. +세션에 아티팩트에 사용할 수 있는 claude.ai 로그인이 없어서 Claude Code가 [아티팩트](/docs/ko/artifacts) 게시 또는 읽기를 거부했습니다. -메시지의 모든 형식은 동일한 단어로 시작하며, 그 뒤에 세션이 인증하는 방식에 따라 달라지는 해결책이 있습니다. 경쟁하는 자격증명이 없으면 다음과 같이 읽습니다: +메시지의 모든 형태는 같은 문구로 시작하고, 세션의 인증 방식에 따라 달라지는 해결 방법이 뒤따릅니다. 경쟁하는 자격 증명이 없을 때는 다음과 같이 표시됩니다. ```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. ``` -**수행할 작업:** +**해결 방법:** -* `/login`을 실행하고 **Claude account with subscription**을 선택합니다. **Anthropic Console account** 옵션은 claude.ai 자격증명을 제공하지 않습니다. -* 메시지가 `ANTHROPIC_API_KEY`, `apiKeyHelper` 설정 또는 이전 `/login`으로 저장된 Console 키와 같이 우선순위를 갖는 자격증명의 이름을 지정하면, 메시지가 말하는 방식으로 제거한 후 `/login`을 실행합니다. -* 메시지가 이 원격 세션이 이를 실행한 머신을 통해 인증한다고 하면, 해당 머신에서 claude.ai에 로그인한 후 세션을 다시 연결합니다. -* 메시지가 자격증명이 세션의 호스트 환경에 의해 주입된다고 하면, 해당 세션에서 이를 변경할 수 없습니다. claude.ai에 로그인한 세션을 시작합니다. -* 계획, 모델 공급자 및 조직 정책과 같은 아티팩트가 가진 다른 요구 사항은 [가용성](/docs/ko/artifacts#availability)을 참조합니다. +* `/login`을 실행하고 **Claude account with subscription**을 선택합니다. **Anthropic Console account** 옵션은 claude.ai 자격 증명을 제공하지 않습니다. +* 메시지에 `ANTHROPIC_API_KEY`, `apiKeyHelper` 설정, 또는 이전 `/login`으로 저장된 Console 키처럼 우선하는 자격 증명이 표시되면, 메시지가 안내하는 방식으로 이를 제거한 다음 `/login`을 실행합니다 +* 메시지에 이 원격 세션이 자신을 실행한 머신을 통해 인증한다고 표시되면, 해당 머신에서 claude.ai에 로그인한 다음 세션을 다시 연결합니다 +* 메시지에 자격 증명이 세션의 호스트 환경에서 주입된다고 표시되면, 해당 세션에서는 변경할 수 없습니다. claude.ai에 로그인된 세션을 시작합니다 +* 플랜, 모델 공급자, 조직 정책 등 아티팩트의 기타 요구 사항은 [사용 가능 여부](/docs/ko/artifacts#availability)를 참조하십시오

- 관리자 정책에 Cloud 게이트웨이 로그인이 필요합니다 + 관리자 정책에 따라 Cloud 게이트웨이 로그인이 필요함

-관리자의 [관리 설정](/docs/ko/managed-settings)이 이 머신에서 [`forceLoginMethod`](/docs/ko/settings-reference#forceloginmethod)를 `"gateway"`로 설정했거나 [`forceLoginGatewayUrl`](/docs/ko/settings-reference#forcelogingatewayurl)을 설정했습니다. `CLAUDE_CODE_USE_BEDROCK`과 같은 변수를 통해 클라우드 공급자를 선택하지 않으면, Claude Code는 [Claude apps 게이트웨이](/docs/ko/claude-apps-gateway) 로그인만 수락합니다. 두 가지 메시지 중 하나가 표시됩니다: +이 머신의 관리자 [관리형 설정](/docs/ko/managed-settings)이 [`forceLoginMethod`](/docs/ko/settings-reference#forceloginmethod)를 `"gateway"`로 설정했거나 [`forceLoginGatewayUrl`](/docs/ko/settings-reference#forcelogingatewayurl)을 설정했습니다. 이 경우 `CLAUDE_CODE_USE_BEDROCK` 같은 변수로 클라우드 공급자를 선택하지 않는 한 Claude Code는 [Claude 앱 게이트웨이](/docs/ko/claude-apps-gateway) 로그인만 허용합니다. 다음 두 메시지 중 하나가 표시됩니다. ```text theme={null} Not signed in to the Cloud gateway — run /login. ``` -세션에 게이트웨이 로그인이 없을 때 모델 요청이 이 메시지로 실패합니다. 예를 들어 정책이 머신에 도달한 이후 `/login`을 실행하지 않았기 때문입니다. +예를 들어 정책이 머신에 적용된 이후 `/login`을 실행하지 않아 세션에 게이트웨이 로그인이 없으면 모델 요청이 이 메시지와 함께 실패합니다. + +머신에 Anthropic이 발급한 자격 증명도 있고 관리형 설정이 `forceLoginMethod` 또는 `forceLoginOrgUUID`를 설정한 경우, Claude Code는 대신 시작 시 종료됩니다. 해당 자격 증명은 `ANTHROPIC_API_KEY` 또는 `ANTHROPIC_AUTH_TOKEN` 변수, `apiKeyHelper` 설정, 또는 이전 Claude Console 로그인으로 저장된 API 키일 수 있습니다. -또한 `ANTHROPIC_API_KEY`, `ANTHROPIC_AUTH_TOKEN` 또는 `apiKeyHelper` 자격증명이 구성되어 있고 관리 설정이 `forceLoginMethod`를 설정하면, Claude Code는 대신 시작 시 다음과 같이 시작하는 메시지로 종료됩니다: +시작 메시지에는 세션에 구성된 자격 증명, 설정된 위치, 그리고 이를 제거하는 단계가 표시됩니다. 예를 들어 셸에 `ANTHROPIC_API_KEY` 변수가 설정되어 있으면 다음과 같이 표시됩니다. ```text theme={null} -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. +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. ``` -**수행할 작업:** +**해결 방법:** + +* `Not signed in to the Cloud gateway`의 경우 `/login`을 실행하고 **Cloud gateway** 화면에서 로그인을 완료합니다 +* 시작 메시지의 경우 메시지 끝의 단계에 따라 자격 증명을 제거합니다 +* 머신에 게이트웨이가 필요하지 않아야 한다고 생각되면, 머신을 관리하는 관리자에게 관리형 설정에서 `forceLoginMethod`와 `forceLoginGatewayUrl`을 제거해 달라고 요청합니다 -* `/login`을 실행하고 **Cloud gateway** 화면에서 로그인을 완료합니다. -* 시작 메시지의 경우, 구성한 `ANTHROPIC_API_KEY`, `ANTHROPIC_AUTH_TOKEN` 또는 `apiKeyHelper` 설정을 제거한 후 `claude`를 시작하고 `/login`을 실행합니다. -* 머신이 게이트웨이를 요구하지 않아야 한다고 생각하면, 관리 설정에서 `forceLoginMethod` 및 `forceLoginGatewayUrl`을 제거하도록 머신을 관리하는 관리자에게 요청합니다. +v2.1.284 이전에는 시작 메시지가 구성된 자격 증명의 이름을 표시하는 대신 가능한 자격 증명을 나열했습니다. 메시지는 `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.`로 시작했습니다. 이 문구가 표시되고 어떤 자격 증명을 제거해야 할지 알 수 없다면 v2.1.284 이상으로 업데이트하고 `claude`를 다시 시작하십시오. -v2.1.265에서는 회귀가 API 키, `apiKeyHelper` 또는 사용자 정의 헤더로 인증하는 일부 LLM 게이트웨이 및 프록시 구성에서도 첫 번째 메시지를 표시했으며, 머신에 관리자 요구 사항이 없었습니다. v2.1.266 이상으로 업데이트합니다. 구성을 변경할 필요가 없습니다. +v2.1.265에서는 회귀 문제로 인해, 머신에 관리자 요구 사항이 없어도 API 키, `apiKeyHelper` 또는 사용자 지정 헤더로 인증하는 일부 LLM 게이트웨이 및 프록시 구성에서 첫 번째 메시지가 표시되기도 했습니다. v2.1.266 이상으로 업데이트하십시오. 구성을 변경할 필요는 없습니다. -v2.1.261 이전에는 `forceLoginMethod`를 `"gateway"`로 설정한 머신에서 Claude Code가 모델 요청을 실패하는 대신 남은 저장된 로그인을 사용했으며, 구성된 환경 자격증명을 `This machine's managed settings require a first-party login` 대신 시작 메시지로 보고했습니다. v2.1.265 이전에는 관리 설정이 `forceLoginGatewayUrl`만 설정한 머신이 게이트웨이 로그인을 요구하지 않았으며, Claude Code가 거기서 남은 자격증명을 사용했습니다. +v2.1.261 이전에는 `forceLoginMethod`를 `"gateway"`로 설정한 머신에서 Claude Code가 모델 요청을 실패시키는 대신 남아 있는 저장된 로그인을 사용했으며, 구성된 환경 자격 증명을 시작 메시지 대신 `This machine's managed settings require a first-party login`으로 보고했습니다.

- 계정이 보류 중입니다 + 계정이 보류 상태임

-로그인 뒤의 Claude 계정이 일시 중단되었습니다. Claude Code는 저장된 로그인을 갱신하려고 할 때 보류를 알게 되면 첫 번째 메시지를 표시하고, 브라우저에서 완료한 로그인이 이를 보고하면 두 번째 메시지를 표시합니다: +로그인에 연결된 Claude 계정이 정지되었습니다. Claude Code는 저장된 로그인을 갱신하려다가 보류 상태를 알게 되면 첫 번째 메시지를, 브라우저에서 완료한 로그인이 보류 상태를 보고하면 두 번째 메시지를 표시합니다. ```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 ``` -동일한 계정으로 다시 로그인하면 메시지가 지워지지 않습니다. 보류가 로그인이 아닌 계정에 있기 때문입니다. [비대화형 모드](/docs/ko/headless)(`-p`) 및 [Agent SDK](/docs/ko/agent-sdk/overview)에서 구조화된 오류 코드는 `account_on_hold`입니다. v2.1.235 이전에는 Claude Code가 보류된 계정을 [로그인 만료됨 · /login을 실행하십시오](#login-expired)로 보고했으며, 복구 단계가 보류를 지울 수 없습니다. +보류는 로그인이 아닌 계정에 적용되므로 같은 계정으로 다시 로그인해도 메시지가 사라지지 않습니다. [비대화형 모드](/docs/ko/headless)(`-p`)와 [Agent SDK](/docs/ko/agent-sdk/overview)에서 구조화된 오류 코드는 `account_on_hold`입니다. v2.1.235 이전에는 Claude Code가 보류된 계정을 [Login expired · Please run /login](#login-expired)으로 보고했으며, 그 복구 단계로는 보류를 해제할 수 없었습니다. -**수행할 작업:** +**해결 방법:** -* 메시지의 링크를 열어 보류의 세부 정보를 보거나 이의를 제기합니다. -* 보류의 영향을 받지 않는 다른 Claude 계정 또는 API 키가 있으면, 보류가 해결되는 동안 계속 작업할 수 있습니다: 해당 계정으로 `/login`을 실행하거나, `ANTHROPIC_API_KEY`로 키를 설정합니다. +* 메시지의 링크를 열어 보류의 세부 정보를 확인하거나 이의를 제기합니다 +* 보류의 영향을 받지 않는 다른 Claude 계정이나 API 키가 있다면, 보류가 해결되는 동안 계속 작업할 수 있습니다. 해당 계정으로 `/login`을 실행하거나 `ANTHROPIC_API_KEY`로 키를 설정합니다

- Anthropic 프로필 로그인 만료됨 + Anthropic 프로필 로그인 만료

-Claude Code가 저장된 로그인 자격증명이 만료된 Anthropic 자격증명 프로필을 통해 인증 중이며, 프로필이 Claude Code가 갱신하는 데 사용할 수 있는 새로 고침 자격증명을 보유하지 않습니다. Claude Code는 동일한 만료된 자격증명을 읽을 재시도가 있으므로 각 요청을 로컬에서 중지합니다. +Claude Code가 Anthropic 자격 증명 프로필을 통해 인증하고 있는데, 이 프로필의 저장된 로그인 자격 증명이 만료되었고 프로필에 Claude Code가 갱신에 사용할 수 있는 갱신 자격 증명이 없습니다. 재시도해도 같은 만료된 자격 증명을 읽게 되므로, Claude Code는 재시도하지 않고 각 요청을 로컬에서 중단합니다. ```text theme={null} Anthropic profile login expired · Re-authenticate your Anthropic profile Anthropic profile login expired · Run /login to use your claude.ai account instead, or re-authenticate the profile ``` -이것은 활성 자격증명이 Anthropic 자격증명 프로필에서 올 때만 나타나며, `ANTHROPIC_PROFILE` 환경 변수로 선택하거나, Claude Code가 Anthropic 구성 디렉토리에서 활성 프로필로 발견하거나, Claude Code가 [API 키 없이 로그인](/docs/ko/authentication#sign-in-without-an-api-key)할 때 작성했습니다. `/login`의 claude.ai 옵션, API 키, `ANTHROPIC_AUTH_TOKEN`과 같은 베어러 토큰 또는 타사 공급자로 인증하는 세션은 이 메시지를 절대 보지 않습니다. +이 메시지는 활성 자격 증명이 Anthropic 자격 증명 프로필에서 올 때만 표시됩니다. 해당 프로필은 `ANTHROPIC_PROFILE` 환경 변수로 선택한 프로필, Claude Code가 Anthropic 구성 디렉터리에서 활성 프로필로 발견한 프로필, 또는 [API 키 없이 로그인](/docs/ko/authentication#sign-in-without-an-api-key)했을 때 Claude Code가 작성한 프로필입니다. API 키, `ANTHROPIC_AUTH_TOKEN` 같은 bearer 토큰, 또는 타사 공급자로 인증하는 세션에서는 이 메시지가 표시되지 않습니다. -[키 없는 로그인을 제공](/docs/ko/authentication#sign-in-without-an-api-key)하는 머신에서는 `/login`을 실행하고, Anthropic Console 계정을 선택하고, 다시 로그인하여 키 없는 Console 로그인 또는 Claude Platform CLI의 `ant auth login`이 작성한 프로필을 갱신합니다. Claude Code는 해당 프로필의 만료된 자격증명을 바꿉니다. 페더레이션 프로필 또는 다른 도구가 만든 프로필의 경우, `/login`이 자격증명을 갱신하지 않습니다. 어떤 형식을 보는지는 프로필을 선택했는지 아니면 Claude Code가 발견했는지에 따라 달라집니다: +[키 없는 로그인을 제공하는](/docs/ko/authentication#sign-in-without-an-api-key) 머신에서는, 키 없는 Console 로그인이나 Claude Platform CLI의 `ant auth login`이 작성한 프로필을 갱신하려면 `/login`을 실행하고 Anthropic Console 계정을 선택한 다음 다시 로그인합니다. Claude Code가 해당 프로필의 만료된 자격 증명을 교체합니다. 페더레이션 프로필이나 다른 도구가 만든 프로필의 경우 `/login`으로 자격 증명이 갱신되지 않습니다. 표시되는 형태는 사용자가 프로필을 선택했는지, Claude Code가 프로필을 발견했는지에 따라 달라집니다. -* `ANTHROPIC_PROFILE`을 명시적으로 설정하면, 메시지는 `Re-authenticate your Anthropic profile`로 끝납니다. -* Claude Code가 구성 디렉토리에서 프로필을 발견했으면, 메시지는 `/login`을 제공합니다. Claude Code가 작동하는 `/login`을 발견된 프로필보다 우선순위를 주고 대신 claude.ai 또는 Console 계정으로 인증하기 때문입니다. v2.1.234 이전에는 Claude Code가 이 경우에도 `Re-authenticate your Anthropic profile` 형식을 표시했습니다. +* `ANTHROPIC_PROFILE`을 명시적으로 설정한 경우 메시지가 `Re-authenticate your Anthropic profile`로 끝납니다. +* Claude Code가 구성 디렉터리에서 프로필을 발견한 경우, 메시지에 `/login`이 제안됩니다. Claude Code는 정상적인 `/login`을 발견된 프로필보다 우선 적용하고, 그 경우 claude.ai 또는 Console 계정으로 인증하기 때문입니다. v2.1.234 이전에는 이 경우에도 Claude Code가 `Re-authenticate your Anthropic profile` 형태를 표시했습니다. -**수행할 작업:** +**해결 방법:** -* 프로필에 다시 로그인한 후 재시도합니다: [키 없는 로그인을 제공](/docs/ko/authentication#sign-in-without-an-api-key)하는 머신에서는 키 없는 Console 로그인 또는 Claude Platform CLI의 `ant auth login`이 작성한 프로필의 경우 `/login`을 실행하고 Anthropic Console 계정을 선택합니다. 다른 프로필의 경우, 프로필을 만든 도구를 사용합니다. -* 관리자가 프로필의 자격증명을 프로비저닝했으면, 새 자격증명을 발급하도록 요청합니다. -* `/status`를 실행하여 활성 자격증명 소스 및 프로필 이름을 확인합니다. -* 프로필 사용을 중지하려면, 설정했으면 `ANTHROPIC_PROFILE`을 설정 해제한 후 `/login` 또는 `ANTHROPIC_API_KEY`와 같은 다른 방식으로 인증합니다. +* 프로필에 다시 로그인한 다음 재시도합니다. [키 없는 로그인을 제공하는](/docs/ko/authentication#sign-in-without-an-api-key) 머신에서는 키 없는 Console 로그인이나 Claude Platform CLI의 `ant auth login`이 작성한 프로필의 경우 `/login`을 실행하고 Anthropic Console 계정을 선택합니다. 다른 프로필의 경우 해당 프로필을 만든 도구를 사용합니다 +* 관리자가 프로필의 자격 증명을 프로비저닝한 경우 새 자격 증명 발급을 요청합니다 +* `/status`를 실행하여 활성 자격 증명 소스와 프로필 이름을 확인합니다 +* 프로필 사용을 중단하려면, `ANTHROPIC_PROFILE`을 설정했다면 해제한 다음 `/login`이나 `ANTHROPIC_API_KEY` 같은 다른 방법으로 인증합니다

OAuth 범위 요구 사항

-저장된 토큰이 최신 기능이 필요로 하는 권한 범위보다 앞서 있습니다: +저장된 토큰이 새 기능에 필요한 권한 범위보다 먼저 발급되었습니다. ```text theme={null} OAuth token does not meet scope requirement: user:profile ``` -**수행할 작업:** +**해결 방법:** -* `/login`을 실행하여 현재 범위가 있는 새 토큰을 가져옵니다. 먼저 로그아웃할 필요가 없습니다. +* `/login`을 실행하여 현재 범위가 포함된 새 토큰을 받습니다. 먼저 로그아웃할 필요는 없습니다.

- claude.ai가 세션 토큰을 거부했습니다 + claude.ai가 세션 토큰을 거부함

-[claude.ai 커넥터](/docs/ko/mcp#use-mcp-servers-from-claude-ai) 요청이 실패했습니다. claude.ai가 Claude Code 로그인의 토큰을 거부했습니다. 일반적으로 만료되었거나 새로 고칠 수 없는 로그인입니다. 거부된 토큰은 로그인이며, 커넥터 자신의 claude.ai 인증이 아니므로, 커넥터를 다시 인증해도 해결되지 않습니다. `/mcp`에서 커넥터는 `session token rejected`로 표시되며 세부 정보 보기는 다음과 같이 읽습니다: +claude.ai가 Claude Code 로그인의 토큰을 거부하여 [claude.ai 커넥터](/docs/ko/mcp#use-mcp-servers-from-claude-ai) 요청이 실패했습니다. 거부된 토큰은 claude.ai에서 커넥터 자체의 권한 부여가 아니라 사용자의 로그인이므로, 커넥터를 다시 승인해도 해결되지 않습니다. `/mcp`에서 커넥터는 `session token rejected`로 표시되고, 세부 정보 보기에는 다음과 같이 표시됩니다. ```text theme={null} claude.ai rejected the session token. Run /login, then reconnect. ``` -**수행할 작업:** +**해결 방법:** -* `/login`을 실행하여 다시 로그인합니다. -* `/mcp`에서 커넥터를 다시 연결하거나, `/mcp reconnect `를 실행합니다. 다시 로그인하기 전에 다시 연결하면 커넥터가 동일한 상태로 유지됩니다. `/mcp` 패널의 **Reconnect** 옵션은 `your claude.ai session token was rejected`를 보고합니다. 입력된 `/mcp reconnect ` 형식은 토큰이 여전히 거부되었음에도 불구하고 성공적인 다시 연결을 보고합니다. +* `/login`을 실행하여 다시 로그인합니다 +* `/mcp`에서 커넥터를 다시 연결하거나 `/mcp reconnect `를 실행합니다. 다시 로그인하기 전에 다시 연결하면 커넥터가 같은 상태로 남습니다. `/mcp` 패널의 **Reconnect** 옵션은 `your claude.ai session token was rejected`를 보고하지만, 직접 입력하는 `/mcp reconnect ` 형태는 토큰이 여전히 거부된 상태인데도 다시 연결에 성공했다고 보고합니다. -v2.1.222 이전에는 Claude Code가 커넥터를 인증이 필요한 것으로 표시했으며, 이는 완료해도 상태를 해결하지 못하는 커넥터의 인증 흐름을 가리켰습니다. +v2.1.222 이전에는 Claude Code가 대신 커넥터를 인증이 필요한 상태로 표시했기 때문에, 커넥터의 권한 부여 흐름을 완료해도 상태가 해결되지 않는데도 해당 흐름으로 안내했습니다.

- MCP 서버가 다시 로그인하도록 요청합니다 + MCP 서버에 다시 로그인해야 함

-원격 [MCP 서버](/docs/ko/mcp)가 세션 중에 도구 호출에서 자격증명을 거부했습니다. 일반적으로 로그인 또는 토큰이 만료되었거나 취소되었거나 토큰이 도구가 필요로 하는 권한이 부족합니다. 도구 호출이 실패하고 `/mcp`가 서버를 [인증이 필요한 것](/docs/ko/mcp#authenticate-with-remote-mcp-servers)으로 표시합니다. +세션 도중 원격 [MCP 서버](/docs/ko/mcp)가 도구 호출의 자격 증명을 거부했습니다. 보통 로그인이나 토큰이 만료되었거나 토큰에 도구에 필요한 권한이 없기 때문입니다. 도구 호출이 실패하고, `/mcp`는 서버를 [인증이 필요한](/docs/ko/mcp#authenticate-with-remote-mcp-servers) 상태로 표시합니다. -Claude Code에서 로그인하는 서버(claude.ai 커넥터 포함)의 경우, 로그인이 만료되었거나 취소되었습니다: +claude.ai 커넥터를 포함하여 Claude Code에서 로그인하는 서버의 경우, 로그인이 만료되었거나 폐기되었습니다. ```text theme={null} MCP server "" needs you to sign in again (run /mcp to re-authenticate) ``` -`/mcp`를 실행하고, 서버를 선택하고, 메뉴에서 다시 로그인합니다. +`/mcp`를 실행하고 서버를 선택한 다음 메뉴에서 다시 로그인합니다. -[`headersHelper`](/docs/ko/mcp#use-dynamic-headers-for-custom-authentication) 스크립트로 구성된 서버의 경우, Claude Code가 이미 헬퍼를 다시 실행하고 표시하기 전에 호출을 한 번 재시도했습니다: +[`headersHelper`](/docs/ko/mcp#use-dynamic-headers-for-custom-authentication) 스크립트로 구성된 서버의 경우, Claude Code는 이 메시지를 표시하기 전에 이미 헬퍼를 다시 실행하고 호출을 한 번 재시도했습니다. ```text theme={null} MCP server "" rejected the credential from its headersHelper (check the helper and run /mcp to reconnect, or to authenticate if the server also uses OAuth) ``` -헬퍼가 서버가 수락하는 자격증명을 반환하는지 확인한 후, `/mcp`에서 다시 연결합니다. 이는 헬퍼를 다시 실행합니다. +헬퍼가 서버가 받아들이는 자격 증명을 반환하는지 확인한 다음, 헬퍼를 다시 실행하는 `/mcp`에서 다시 연결합니다. -정적 `Authorization` 헤더가 있는 서버의 경우: +구성에 정적 `Authorization` 헤더가 있는 서버의 경우: ```text theme={null} MCP server "" rejected the Authorization header in its config (update it, then run /mcp to reconnect) ``` -서버가 구성된 곳에서 헤더 값을 업데이트한 후 `/mcp`에서 다시 연결합니다. +서버가 구성된 위치에서 헤더 값을 업데이트한 다음 `/mcp`에서 다시 연결합니다. -v2.1.273 이전에는 만료된 로그인, `headersHelper` 및 `Authorization` 헤더 경우가 모두 `MCP server "" requires re-authorization (token expired)`를 표시했습니다. +v2.1.273 이전에는 만료된 로그인, `headersHelper`, `Authorization` 헤더의 경우 모두 `MCP server "" requires re-authorization (token expired)`가 표시되었습니다. -서버는 HTTP 403 `insufficient_scope`로 도구 호출을 거부하여 범위를 요청할 수도 있습니다. 때로는 토큰이 이미 나열한 범위입니다. 메시지는 해당 범위의 이름을 지정합니다: +서버는 범위 승인을 요청하기 위해 HTTP 403 `insufficient_scope`로 도구 호출을 거부할 수도 있으며, 때로는 토큰에 이미 포함된 범위를 요청하기도 합니다. 메시지에 해당 범위가 표시됩니다. ```text theme={null} MCP server "" needs additional permissions (scope: "") — run /mcp to re-authenticate ``` -`/mcp`를 실행하고, 서버를 선택하고, 메뉴에서 다시 인증합니다. +`/mcp`를 실행하고 서버를 선택한 다음 메뉴에서 다시 인증합니다. -서버의 구성이 [`oauth.scopes`](/docs/ko/mcp#restrict-oauth-scopes) 또는 [`authServerMetadataUrl`](/docs/ko/mcp#override-oauth-metadata-discovery)을 설정하지 않으면, Claude Code가 서버가 이름을 지정한 범위를 요청합니다. 어느 설정이든 Claude Code가 해당 설정의 범위를 요청합니다. `oauth.scopes`를 고정했으면, 다시 인증하기 전에 누락된 범위를 해당 목록에 추가합니다. +서버 구성에 [`oauth.scopes`](/docs/ko/mcp#restrict-oauth-scopes)와 [`authServerMetadataUrl`](/docs/ko/mcp#override-oauth-metadata-discovery)이 모두 설정되어 있지 않으면, Claude Code는 서버가 지정한 범위를 요청합니다. 둘 중 하나가 설정되어 있으면 Claude Code는 대신 해당 설정의 범위를 요청합니다. `oauth.scopes`를 고정했다면 다시 인증하기 전에 누락된 범위를 해당 목록에 추가하십시오. -v2.1.274 이전에는 이 경우가 `needs you to sign in again` 메시지를 표시했으며, v2.1.273 이전에는 다른 경우처럼 `requires re-authorization (token expired)`를 표시했습니다. +v2.1.274 이전에는 이 경우 `needs you to sign in again` 메시지가 표시되었고, v2.1.273 이전에는 다른 경우와 마찬가지로 `requires re-authorization (token expired)`가 표시되었습니다.

- MCP 서버 URL이 누락되었거나 유효한 URL이 아닙니다 + MCP 서버 URL이 없거나 유효한 URL이 아님

-Claude Code가 원격 MCP 서버에 대한 OAuth 로그인을 시작하기를 거부했습니다. 서버의 구성된 `url`이 URL로 구문 분석되지 않기 때문입니다. Claude Code가 서버에 대해 보고할 더 구체적인 구성 문제가 없으면, [`claude mcp login `](/docs/ko/mcp#authenticate-from-the-command-line)을 셸에서 실행하면 거부가 다음과 같이 인쇄됩니다: +서버에 구성된 `url`이 URL로 파싱되지 않아서 Claude Code가 원격 MCP 서버의 OAuth 로그인 시작을 거부했습니다. Claude Code가 해당 서버에 대해 보고할 더 구체적인 구성 문제가 없는 한, 셸에서 [`claude mcp login `](/docs/ko/mcp#authenticate-from-the-command-line)을 실행하면 거부 내용이 다음과 같이 출력됩니다. ```text theme={null} Couldn't complete authentication for "": 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. ``` -**수행할 작업:** +**해결 방법:** -* 서버가 구성된 곳에서 항목의 `url`을 서버의 실제 엔드포인트로 설정하거나, 해당 [`${VAR}` 참조](/docs/ko/mcp#environment-variable-expansion-in-mcp-json)가 이름을 지정하는 환경 변수를 설정한 후 로그인을 다시 실행합니다. +* 서버가 구성된 위치에서 항목의 `url`을 서버의 실제 엔드포인트로 설정하거나, 해당 [`${VAR}` 참조](/docs/ko/mcp#environment-variable-expansion-in-mcp-json)가 가리키는 환경 변수를 설정한 다음 로그인을 다시 실행합니다.

- 인증 응답의 발급자 불일치 + 권한 부여 응답의 발급자 불일치

-[MCP OAuth 로그인](/docs/ko/mcp#authenticate-with-remote-mcp-servers) 중에 인증 서버가 Claude Code로 리디렉션되었으며, `iss` 매개변수가 Claude Code가 서버의 OAuth 메타데이터에서 예상한 발급자의 이름을 지정하지 않습니다. 이 단계에서 잘못된 발급자는 인증 서버 혼합 공격이 어떻게 보이는지이므로, Claude Code는 인증 코드를 교환하는 대신 로그인을 실패합니다. Claude Code는 브라우저 로그인 후 `/mcp` 서버 메뉴에 오류를 표시합니다: +[MCP OAuth 로그인](/docs/ko/mcp#authenticate-with-remote-mcp-servers) 중에 권한 부여 서버가 Claude Code로 리디렉션하면서, Claude Code가 서버의 OAuth 메타데이터에서 예상한 발급자를 가리키지 않는 `iss` 매개변수를 보냈습니다. 이 단계에서 잘못된 발급자가 나타나는 것은 권한 부여 서버 혼동(mix-up) 공격의 징후이므로, Claude Code는 권한 부여 코드를 교환하는 대신 로그인을 실패 처리합니다. Claude Code는 브라우저 로그인 후 `/mcp` 서버 메뉴에 오류를 표시합니다. ```text theme={null} Issuer mismatch in authorization response (RFC 9207): expected "https://auth.example.com", received "https://other.example.com" ``` -`expected`는 서버의 OAuth 메타데이터의 발급자이며, `received`는 리디렉션이 전달한 `iss` 값입니다. `iss` 매개변수를 전달하지 않는 로그인은 확인을 통과합니다. 서버의 메타데이터가 `authorization_response_iss_parameter_supported`를 설정하지 않으면, 이 경우 Claude Code는 로그인을 실패합니다. +`expected`는 서버의 OAuth 메타데이터에 있는 발급자이고, `received`는 리디렉션에 포함된 `iss` 값입니다. 리디렉션에 `iss` 매개변수가 없는 로그인은 검사를 통과하지만, 서버의 메타데이터가 `authorization_response_iss_parameter_supported`를 설정한 경우에는 Claude Code가 로그인을 실패 처리합니다. -**수행할 작업:** +**해결 방법:** -* `/mcp`에서 로그인을 다시 시도합니다. -* 오류가 반복되면, 서버 운영자에게 보고합니다. 수정은 서버 측입니다: 인증 서버는 메타데이터에서 광고하는 것과 동일한 발급자를 `iss` 매개변수에서 반환해야 합니다. -* 서버가 수정되는 동안 연결하려면, [`MCP_SDK_GENERATION=v1`](/docs/ko/env-vars)로 Claude Code를 시작합니다. 해당 [런타임](/docs/ko/mcp#mcp-client-runtimes)은 이 확인을 실행하지 않습니다. 이것은 혼합 공격에 대한 보호를 제거하므로 서버 측 수정을 선호합니다. +* `/mcp`에서 로그인을 다시 시도합니다 +* 오류가 반복되면 서버 운영자에게 보고합니다. 해결 방법은 서버 측에 있습니다. 권한 부여 서버는 메타데이터에 명시한 것과 같은 발급자를 `iss` 매개변수로 반환해야 합니다 +* 서버가 수정되는 동안 연결하려면 [`MCP_SDK_GENERATION=v1`](/docs/ko/env-vars)로 Claude Code를 시작합니다. 이 [런타임](/docs/ko/mcp#mcp-client-runtimes)은 이 검사를 실행하지 않습니다. 이렇게 하면 혼동 공격에 대한 보호가 제거되므로 서버 측 수정을 우선하십시오 -v2.1.232 이전에는 Claude Code가 점진적 롤아웃에서만 v2 런타임을 사용했거나 `MCP_SDK_GENERATION=v2`를 설정했을 때 사용했습니다. +v2.1.232 이전에는 Claude Code가 점진적 출시 대상이거나 `MCP_SDK_GENERATION=v2`를 설정한 경우에만 v2 런타임을 사용했습니다.

- HTTPS가 아닌 토큰 엔드포인트로 자격증명을 전송하기를 거부합니다 + HTTPS가 아닌 토큰 엔드포인트로 자격 증명 전송 거부

-[v2 런타임](/docs/ko/mcp#mcp-client-runtimes)에서 Claude Code는 [MCP OAuth](/docs/ko/mcp#authenticate-with-remote-mcp-servers) 토큰 요청을 HTTPS를 통해 제공되거나 `localhost`, `127.0.0.1` 또는 `::1`에서만 전송합니다. 이 메시지는 서버의 토큰 엔드포인트가 둘 다 아니므로 Claude Code가 요청을 전송하기 전에 중지했음을 의미합니다. 이는 브라우저 로그인 후에 발생하므로 브라우저 단계가 먼저 성공하고, Claude Code가 서버의 토큰을 새로 고칠 때마다 다시 발생합니다. +[v2 런타임](/docs/ko/mcp#mcp-client-runtimes)에서 Claude Code는 HTTPS로 제공되거나 `localhost`, `127.0.0.1`, `::1`에 있는 토큰 엔드포인트에만 [MCP OAuth](/docs/ko/mcp#authenticate-with-remote-mcp-servers) 토큰 요청을 보냅니다. 이 메시지는 서버의 토큰 엔드포인트가 둘 다 해당하지 않아 Claude Code가 요청을 보내기 전에 중단했다는 뜻입니다. 이는 브라우저 로그인 이후에 발생하므로 브라우저 단계는 먼저 성공하며, Claude Code가 서버의 토큰을 갱신할 때마다 다시 발생합니다. -전체 형식에서 메시지는 MCP SDK에서 오며 거부한 토큰 엔드포인트를 인용합니다. 디버그 로그에서 로그인의 경우 `Error during auth completion:` 뒤에 오고, 새로 고침의 경우 `Token refresh failed:` 뒤에 옵니다. 셸에서 `claude mcp login `은 `Couldn't complete authentication for "":` 뒤에 인쇄하고, 세션에서 `/mcp`는 서버의 메뉴 아래에 표시합니다: +메시지의 전체 형태는 MCP SDK에서 생성되며 거부한 토큰 엔드포인트를 인용합니다. 디버그 로그에서는 로그인의 경우 `Error during auth completion:` 뒤에, 갱신의 경우 `Token refresh failed:` 뒤에 나타납니다. 셸에서는 `claude mcp login `이 `Couldn't complete authentication for "":` 뒤에 이를 출력하고, 세션에서는 `/mcp`가 서버 메뉴 아래에 표시합니다. ```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는 쿼리 문자열이 있거나 긴 무작위 경로 세그먼트가 있는 서버 URL을 가능성 있게 비밀로 취급합니다. 그러한 서버의 경우, MCP SDK가 발생시키는 로그인 오류를 표시하거나 로깅하기 전에 수정합니다. 이 오류는 릴리스 간에 변경될 수 있는 짧은 이름(예: `io`)으로 읽은 후 `from the MCP SDK for` 및 수정된 서버 URL이 옵니다. MCP SDK의 다른 오류는 거기서 동일한 모양을 취합니다. 수정된 메시지는 서버의 토큰 엔드포인트가 `localhost`, `127.0.0.1` 또는 `::1` 이외의 주소에서 일반 `http://`일 때만 이 오류일 수 있습니다. +Claude Code는 쿼리 문자열이나 길고 무작위처럼 보이는 경로 세그먼트가 있는 서버 URL을 비밀 정보일 수 있다고 간주합니다. 이러한 서버의 경우 MCP SDK가 발생시킨 로그인 오류를 표시하거나 로그에 기록하기 전에 수정(redact)합니다. 이때 이 오류는 `io`처럼 릴리스마다 바뀔 수 있는 짧은 이름 뒤에 `from the MCP SDK for`와 수정된 서버 URL이 이어지는 형태로 표시됩니다. MCP SDK의 다른 오류도 같은 형태를 띱니다. 수정된 메시지가 이 오류일 수 있는 경우는 서버의 토큰 엔드포인트가 `localhost`, `127.0.0.1`, `::1` 이외의 주소에 있는 일반 `http://`일 때뿐입니다. -**수행할 작업:** +**해결 방법:** -* 예를 들어 서버를 역방향 프록시 또는 TLS를 종료하는 터널 뒤에 놓고 서버가 `https://` 주소를 광고하도록 구성하여 해당 토큰 엔드포인트를 HTTPS를 통해 제공합니다. -* 서버를 변경하지 않고 연결하려면, [`MCP_SDK_GENERATION=v1`](/docs/ko/env-vars)로 Claude Code를 시작합니다. 해당 [런타임](/docs/ko/mcp#mcp-client-runtimes)은 이 규칙을 적용하지 않으며 일반 HTTP를 통해 토큰 요청을 전송합니다. 이 선택은 종료할 때까지 지속되며 모든 서버에 적용됩니다. v1 런타임은 또한 [발급자 확인](#issuer-mismatch-in-authorization-response)을 건너뜁니다. 따라서 엔드포인트를 HTTPS를 통해 제공하는 것을 선호합니다. +* 해당 토큰 엔드포인트를 HTTPS로 제공합니다. 예를 들어 TLS를 종료하는 리버스 프록시나 터널 뒤에 서버를 두고, 서버가 `https://` 주소를 알리도록 구성합니다 +* 서버를 변경하지 않고 연결하려면 [`MCP_SDK_GENERATION=v1`](/docs/ko/env-vars)로 Claude Code를 시작합니다. 이 [런타임](/docs/ko/mcp#mcp-client-runtimes)은 이 규칙을 적용하지 않고 일반 HTTP로 토큰 요청을 보냅니다. 이 선택은 종료할 때까지 유지되며 모든 서버에 적용됩니다. v1 런타임은 [발급자 검사](#issuer-mismatch-in-authorization-response)도 건너뛰므로, 엔드포인트를 HTTPS로 제공하는 방법을 우선하십시오

- AWS 자격증명이 만료되었거나 유효하지 않습니다 + AWS 자격 증명이 만료되었거나 유효하지 않음

-AWS 세션 토큰이 만료되었거나 거부되었습니다. 이 메시지는 [Claude Platform on AWS](/docs/ko/claude-platform-on-aws) 또는 [Mantle 엔드포인트](/docs/ko/amazon-bedrock#use-the-mantle-endpoint)에서 401로 나타나며, 이는 해당 공급자가 만료된 보안 토큰을 보고하는 방식입니다. +AWS 세션 토큰이 만료되었거나 거부되었습니다. 이 메시지는 [Claude Platform on AWS](/docs/ko/claude-platform-on-aws) 또는 [Mantle 엔드포인트](/docs/ko/amazon-bedrock#use-the-mantle-endpoint)에서 401이 반환될 때 나타나며, 이는 해당 공급자가 만료된 보안 토큰을 보고하는 방식입니다. -중간의 작업 힌트는 설정에 따라 달라집니다. 안정적인 부분은 선행 `AWS credentials expired or invalid`입니다: +중간의 작업 안내는 설정에 따라 달라집니다. 고정된 부분은 앞의 `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 ... ``` -v2.1.273 이전에는 `awsAuthRefresh`가 구성되었을 때만 이 메시지가 나타났습니다. +v2.1.273 이전에는 `awsAuthRefresh`가 구성된 경우에만 이 메시지가 나타났습니다. -**수행할 작업:** +**해결 방법:** -* 힌트가 자격증명이 이 환경에서 관리된다고 하면, 이를 실행한 앱이 자격증명을 소유하며 여기의 다른 단계는 적용되지 않습니다: 재시도하거나, 관리자에게 문의합니다. -* [`awsAuthRefresh`](/docs/ko/amazon-bedrock#advanced-credential-configuration)가 설정되면, 메시지에서 이름을 지정한 명령(예: `aws sso login --profile myprofile`)을 다른 터미널에서 실행하고 브라우저 로그인을 완료한 후 재시도합니다. 그렇지 않으면 사용하는 AWS 자격증명을 직접 새로 고칩니다: SSO 로그인, 액세스 키, API 키 또는 프록시 토큰입니다. -* `awsAuthRefresh`가 대화형 세션에 설정되면, `/login`을 실행하고, **3rd-party platform**을 선택한 후, **Using 3rd-party platforms** 아래에서 **Claude Platform on AWS · refresh credentials**를 선택하여 Claude Code를 다시 시작하지 않고 동일한 명령을 실행할 수 있습니다. [AWS 자격증명 구성](/docs/ko/claude-platform-on-aws#1-configure-aws-credentials)을 참조합니다. -* 새로 고침 명령이 성공한 후에도 오류가 반복되면, 동일한 셸 및 프로필에서 `aws sts get-caller-identity`로 Claude Code 외부에서 ID가 유효한지 확인합니다. +* 안내에 자격 증명이 이 환경에서 관리된다고 표시되면, Claude Code를 실행한 앱이 자격 증명을 소유하므로 여기의 다른 단계는 적용되지 않습니다. 재시도하거나 관리자에게 문의합니다 +* [`awsAuthRefresh`](/docs/ko/amazon-bedrock#advanced-credential-configuration)가 설정되어 있으면 메시지에 표시된 `aws sso login --profile myprofile` 같은 명령을 다른 터미널에서 실행하고 브라우저 로그인을 완료한 다음 재시도합니다. 그렇지 않으면 사용하는 AWS 자격 증명, 즉 SSO 로그인, 액세스 키, API 키 또는 프록시 토큰을 직접 갱신합니다 +* 대화형 세션에서 `awsAuthRefresh`가 설정되어 있으면, 대신 `/login`을 실행하고 **3rd-party platform**을 선택한 다음 **Using 3rd-party platforms** 아래의 **Claude Platform on AWS · refresh credentials**를 선택하여 Claude Code를 다시 시작하지 않고 같은 명령을 실행할 수 있습니다. [AWS 자격 증명 구성](/docs/ko/claude-platform-on-aws#1-configure-aws-credentials)을 참조하십시오 +* 갱신 명령이 성공한 후에도 오류가 반복되면, 같은 셸과 프로필에서 `aws sts get-caller-identity`로 Claude Code 외부에서 ID가 유효한지 확인합니다

AWS 인증 실패

-AWS 공급자가 403을 반환했거나, [Amazon Bedrock](/docs/ko/amazon-bedrock)이 401을 반환했습니다. +AWS 공급자가 403을 반환했거나 [Amazon Bedrock](/docs/ko/amazon-bedrock)이 401을 반환했습니다. -Amazon Bedrock은 만료된 보안 토큰을 403으로 보고하지만, 403은 또한 누락된 IAM 권한과 같은 `AccessDeniedException`의 인증 거부를 보고하는 방식입니다. Claude Code는 이 두 원인을 구분할 수 없습니다. +Amazon Bedrock은 만료된 보안 토큰을 403으로 보고하지만, IAM 권한 누락으로 인한 `AccessDeniedException` 같은 권한 부여 거부도 403으로 보고합니다. Claude Code는 이 두 원인을 구분할 수 없습니다. -Amazon Bedrock의 401은 [AWS 자격증명이 만료되었거나 유효하지 않습니다](#aws-credentials-expired-or-invalid) 아래가 아닌 여기에 도달합니다. 해당 엔드포인트의 401은 일반적으로 요청 경로의 다른 것(예: 회사 프록시)에서 옵니다. +Amazon Bedrock의 401도 [AWS 자격 증명이 만료되었거나 유효하지 않음](#aws-credentials-expired-or-invalid)이 아닌 여기에 해당합니다. Amazon Bedrock은 만료된 토큰을 401로 보고하지 않기 때문입니다. 해당 엔드포인트의 401은 일반적으로 회사 프록시처럼 요청 경로상의 다른 요소에서 발생합니다. -자격증명 새로 고침은 만료된 토큰을 수정하고 다른 원인을 수정할 수 없으므로, 메시지는 둘 다 제공합니다: +자격 증명 갱신으로 만료된 토큰은 해결되지만 다른 원인은 해결할 수 없으므로, 메시지는 두 가지를 모두 안내합니다. ```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 ... ``` -중간의 작업 힌트는 설정에 따라 달라집니다. 안정적인 부분은 선행 `AWS authentication failed`입니다. +중간의 작업 안내는 설정에 따라 달라집니다. 고정된 부분은 앞의 `AWS authentication failed`입니다. -403이 지정된 모델 ID로 모델에 액세스할 수 없다는 Amazon Bedrock의 답변일 때, 힌트는 대신 Amazon Bedrock 콘솔에서 계정 및 지역에 대해 모델을 활성화하도록 지시합니다. +403이 지정된 모델 ID의 모델에 액세스할 수 없다는 Amazon Bedrock의 응답인 경우, 안내는 대신 Amazon Bedrock 콘솔에서 계정과 리전에 대해 모델을 활성화하라고 알려줍니다. -v2.1.273 이전에는 `awsAuthRefresh`가 구성되었을 때만 이 메시지가 나타났습니다. +v2.1.273 이전에는 `awsAuthRefresh`가 구성된 경우에만 이 메시지가 나타났습니다. -**수행할 작업:** +**해결 방법:** -* 힌트가 자격증명이 이 환경에서 관리된다고 하면, 이를 실행한 앱이 자격증명을 소유하며 여기의 다른 단계는 적용되지 않습니다: 재시도하거나, 관리자에게 문의합니다. -* 만료된 자격증명이 원인일 수 있으므로 AWS 자격증명을 새로 고칩니다: 설정되면 [`awsAuthRefresh`](/docs/ko/amazon-bedrock#advanced-credential-configuration)에서 이름을 지정한 명령을 실행하거나, SSO 로그인, 액세스 키, API 키 또는 프록시 토큰을 직접 새로 고칩니다. -* 자격증명이 현재이면, [IAM 구성](/docs/ko/amazon-bedrock#iam-configuration)의 IAM 권한이 사용 중인 ID에 연결되어 있고 선택한 모델이 계정 및 지역에 대해 활성화되어 있는지 확인합니다. -* `aws sts get-caller-identity`를 실행하여 요청이 어떤 ID를 사용하는지 확인합니다. +* 안내에 자격 증명이 이 환경에서 관리된다고 표시되면, Claude Code를 실행한 앱이 자격 증명을 소유하므로 여기의 다른 단계는 적용되지 않습니다. 재시도하거나 관리자에게 문의합니다 +* 만료된 자격 증명이 원인일 경우에 대비해 AWS 자격 증명을 갱신합니다. 설정되어 있다면 메시지에 표시된 [`awsAuthRefresh`](/docs/ko/amazon-bedrock#advanced-credential-configuration) 명령을 실행하거나, SSO 로그인, 액세스 키, API 키 또는 프록시 토큰을 직접 갱신합니다 +* 자격 증명이 최신 상태라면 [IAM 구성](/docs/ko/amazon-bedrock#iam-configuration)의 IAM 권한이 사용 중인 ID에 연결되어 있는지, 선택한 모델이 계정과 리전에 대해 활성화되어 있는지 확인합니다 +* `aws sts get-caller-identity`를 실행하여 요청에 사용되는 ID를 확인합니다

- Google Cloud 자격증명이 만료되었거나 유효하지 않습니다 + Google Cloud 자격 증명이 만료되었거나 유효하지 않음

-[Google Cloud의 Agent Platform](/docs/ko/google-vertex-ai)에 대한 Google Cloud 자격증명이 만료되었거나 거부되었습니다: 요청이 401을 반환했으며, 이는 Agent Platform이 자격증명 만료를 보고하는 방식입니다. +[Google Cloud의 Agent Platform](/docs/ko/google-vertex-ai)에 대한 Google Cloud 자격 증명이 만료되었거나 거부되었습니다. 요청이 401을 반환했으며, 이는 Agent Platform이 자격 증명 만료를 보고하는 방식입니다. -중간의 작업 힌트는 설정에 따라 달라집니다. 안정적인 부분은 선행 `Google Cloud credentials expired or invalid`입니다: +중간의 작업 안내는 설정에 따라 달라집니다. 고정된 부분은 앞의 `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 ... ``` -**수행할 작업:** +**해결 방법:** -* 힌트가 자격증명이 이 환경에서 관리된다고 하면, 이를 실행한 앱이 자격증명을 소유하며 여기의 다른 단계는 적용되지 않습니다: 재시도하거나, 관리자에게 문의합니다. -* 애플리케이션 기본 자격증명으로 인증하면, 메시지에서 이름을 지정한 [`gcpAuthRefresh`](/docs/ko/google-vertex-ai#advanced-credential-configuration) 명령을 실행하거나, `gcloud auth application-default login`을 실행하고 로그인을 완료한 후 재시도합니다. -* `CLAUDE_CODE_SKIP_VERTEX_AUTH`가 설정된 [LLM 게이트웨이](/docs/ko/llm-gateway)를 통해 라우팅하면, `ANTHROPIC_AUTH_TOKEN` 또는 `ANTHROPIC_CUSTOM_HEADERS`의 게이트웨이 토큰을 새로 고친 후 재시도합니다. -* 서비스 계정 키 파일로 인증하면, `GOOGLE_APPLICATION_CREDENTIALS`가 유효한 키를 가리키는지 확인합니다. [GCP 자격증명 구성](/docs/ko/google-vertex-ai#3-configure-gcp-credentials)을 참조합니다. -* 새로 고침 후에도 오류가 반복되면, 동일한 셸에서 `gcloud auth application-default print-access-token`으로 Claude Code 외부에서 ID가 작동하는지 확인합니다. +* 안내에 자격 증명이 이 환경에서 관리된다고 표시되면, Claude Code를 실행한 앱이 자격 증명을 소유하므로 여기의 다른 단계는 적용되지 않습니다. 재시도하거나 관리자에게 문의합니다 +* 애플리케이션 기본 자격 증명으로 인증하는 경우, 메시지에 표시된 [`gcpAuthRefresh`](/docs/ko/google-vertex-ai#advanced-credential-configuration) 명령 또는 `gcloud auth application-default login`을 실행하고 로그인을 완료한 다음 재시도합니다 +* `CLAUDE_CODE_SKIP_VERTEX_AUTH`를 설정하고 [LLM 게이트웨이](/docs/ko/llm-gateway)를 통해 라우팅하는 경우, `ANTHROPIC_AUTH_TOKEN` 또는 `ANTHROPIC_CUSTOM_HEADERS`의 게이트웨이 토큰을 갱신한 다음 재시도합니다 +* 서비스 계정 키 파일로 인증하는 경우, `GOOGLE_APPLICATION_CREDENTIALS`가 유효한 키를 가리키는지 확인합니다. [GCP 자격 증명 구성](/docs/ko/google-vertex-ai#3-configure-gcp-credentials)을 참조하십시오 +* 갱신 후에도 오류가 반복되면, 같은 셸에서 `gcloud auth application-default print-access-token`으로 Claude Code 외부에서 ID가 작동하는지 확인합니다 -v2.1.273 이전에는 Agent Platform의 401이 자격증명을 새로 고칠 수 없는 일반적인 `Please run /login` 또는 `Failed to authenticate` 메시지를 표시했습니다. +v2.1.273 이전에는 Agent Platform의 401에 대해 Google Cloud 자격 증명을 갱신할 수 없는 일반적인 `Please run /login` 또는 `Failed to authenticate` 메시지가 대신 표시되었습니다.

- Google Cloud 인증 실패 + Google Cloud authentication failed

-[Google Cloud의 Agent Platform](/docs/ko/google-vertex-ai)이 403을 반환했으며, 이는 만료된 자격증명이 아닌 인증 거부에 사용합니다. 일반적으로 인증하는 ID에 IAM 권한이 부족하거나, 모델이 프로젝트에 대해 활성화되지 않았습니다. +[Google Cloud의 Agent Platform](/docs/ko/google-vertex-ai)이 403을 반환했습니다. Agent Platform은 만료된 자격 증명이 아니라 인가 거부에 403을 사용합니다. 일반적으로 인증에 사용하는 ID에 IAM 권한이 없거나, 프로젝트에서 모델이 활성화되어 있지 않은 경우입니다. -중간의 작업 힌트는 설정에 따라 달라집니다. 안정적인 부분은 선행 `Google Cloud authentication failed`입니다: +중간의 조치 안내는 설정에 따라 달라집니다. 변하지 않는 부분은 맨 앞의 `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 ... ``` -**수행할 작업:** +**조치 방법:** -* 힌트가 자격증명이 이 환경에서 관리된다고 하면, 이를 실행한 앱이 자격증명을 소유하며 여기의 다른 단계는 적용되지 않습니다: 재시도하거나, 관리자에게 문의합니다. -* [IAM 구성](/docs/ko/google-vertex-ai#iam-configuration)의 역할이 인증하는 ID에 부여되어 있는지 확인합니다. -* 모델이 프로젝트에 대해 활성화되어 있는지 확인합니다. [모델 액세스 요청](/docs/ko/google-vertex-ai#2-request-model-access)을 참조합니다. +* 안내에 자격 증명이 이 환경에서 관리된다고 표시되면, Claude Code를 실행한 앱이 자격 증명을 소유하므로 여기의 다른 단계는 적용되지 않습니다. 재시도하거나 관리자에게 문의하십시오 +* [IAM 구성](/docs/ko/google-vertex-ai#iam-configuration)의 역할이 인증에 사용하는 ID에 부여되어 있는지 확인합니다 +* 프로젝트에서 모델이 활성화되어 있는지 확인합니다. [모델 액세스 요청](/docs/ko/google-vertex-ai#2-request-model-access)을 참조하십시오 -v2.1.273 이전에는 Agent Platform의 403이 자격증명을 새로 고칠 수 없는 일반적인 `Please run /login` 또는 `Failed to authenticate` 메시지를 표시했습니다. +v2.1.273 이전에는 Agent Platform의 403이 Google Cloud 자격 증명을 갱신할 수 없는 일반적인 `Please run /login` 또는 `Failed to authenticate` 메시지로 표시되었습니다.

- Microsoft Foundry 인증 실패 + Microsoft Foundry authentication failed

-[Microsoft Foundry](/docs/ko/microsoft-foundry)가 401 또는 403을 반환했습니다: 요청의 Azure 자격증명이 거부되었거나, 뒤에 있는 ID가 Foundry 리소스에 액세스할 수 없습니다. `/login`은 Azure 자격증명을 발급할 수 없습니다. 중간의 작업 힌트는 설정에 따라 달라집니다. 안정적인 부분은 선행 `Microsoft Foundry authentication failed`입니다: +[Microsoft Foundry](/docs/ko/microsoft-foundry)가 401 또는 403을 반환했습니다. 요청에 포함된 Azure 자격 증명이 거부되었거나, 그 자격 증명의 ID에 Foundry 리소스에 대한 액세스 권한이 없습니다. `/login`으로는 Azure 자격 증명을 발급할 수 없습니다. 중간의 조치 안내는 설정에 따라 달라집니다. 변하지 않는 부분은 맨 앞의 `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 ... ``` -**수행할 작업:** +**조치 방법:** -* 힌트가 자격증명이 이 환경에서 관리된다고 하면, 이를 실행한 앱이 자격증명을 소유하며 여기의 다른 단계는 적용되지 않습니다: 재시도하거나, 관리자에게 문의합니다. -* [Azure 자격증명 구성](/docs/ko/microsoft-foundry#2-configure-azure-credentials)에서 구성한 자격증명을 새로 고칩니다: `ANTHROPIC_FOUNDRY_API_KEY`를 회전하거나, 새 `ANTHROPIC_FOUNDRY_AUTH_TOKEN`을 발급하거나, `az login`을 실행하여 기본 Microsoft Entra 자격증명 체인이 다시 로그인할 수 있도록 합니다. -* 자격증명이 현재이면, ID가 Foundry 리소스에 액세스할 수 있는지 확인합니다. [Azure RBAC 구성](/docs/ko/microsoft-foundry#azure-rbac-configuration)을 참조합니다. +* 안내에 자격 증명이 이 환경에서 관리된다고 표시되면, Claude Code를 실행한 앱이 자격 증명을 소유하므로 여기의 다른 단계는 적용되지 않습니다. 재시도하거나 관리자에게 문의하십시오 +* [Azure 자격 증명 구성](/docs/ko/microsoft-foundry#2-configure-azure-credentials)에서 구성한 자격 증명을 갱신합니다. `ANTHROPIC_FOUNDRY_API_KEY`를 교체하거나, 새 `ANTHROPIC_FOUNDRY_AUTH_TOKEN`을 발급하거나, 기본 Microsoft Entra 자격 증명 체인이 다시 로그인할 수 있도록 `az login`을 실행합니다 +* 자격 증명이 최신 상태라면 해당 ID에 Foundry 리소스에 대한 액세스 권한이 있는지 확인합니다. [Azure RBAC 구성](/docs/ko/microsoft-foundry#azure-rbac-configuration)을 참조하십시오 -v2.1.273 이전에는 Microsoft Foundry의 401 또는 403이 자격증명을 새로 고칠 수 없는 일반적인 `Please run /login` 또는 `Failed to authenticate` 메시지를 표시했습니다. +v2.1.273 이전에는 Microsoft Foundry의 401 또는 403이 Azure 자격 증명을 갱신할 수 없는 일반적인 `Please run /login` 또는 `Failed to authenticate` 메시지로 표시되었습니다.

- AWS 또는 Google Cloud 자격증명을 로드할 수 없습니다 + Could not load AWS or Google Cloud credentials

-Claude Code가 AWS 자격증명 공급자 체인 또는 머신의 Google 애플리케이션 기본 자격증명에서 사용 가능한 자격증명을 얻을 수 없어서, 요청이 클라우드 공급자에 도달하지 않았습니다. Claude Code는 캐시된 자격증명을 지우고 표시하기 전에 두 번 재시도합니다. `·` 이후의 세부 정보는 만료된 SSO 세션, `Could not load the default credentials`로 보고된 누락된 애플리케이션 기본 자격증명 또는 `invalid_grant`로 보고된 취소된 로그인과 같은 특정 원인의 이름을 지정합니다: +Claude Code가 실행 중인 머신에서 AWS 자격 증명 공급자 체인이나 Google 애플리케이션 기본 자격 증명으로부터 사용 가능한 자격 증명을 얻지 못했으므로, 요청이 클라우드 공급자에 도달하지 않았습니다. Claude Code는 이 메시지를 표시하기 전에 캐시된 자격 증명을 지우고 두 번 재시도합니다. `·` 뒤의 세부 정보는 구체적인 원인을 나타냅니다. 예를 들어 만료된 SSO 세션, `Could not load the default credentials`로 보고되는 애플리케이션 기본 자격 증명 누락, `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. ``` -[비대화형 모드](/docs/ko/headless)에서 `-p`와 [Agent SDK](/docs/ko/agent-sdk/overview)에서 구조화된 오류 코드는 `cloud_credential_error`입니다. v2.1.267 이전에는 메시지가 `API Error:` 이후의 세부 정보만 표시했으며, 구조화된 코드는 `server_error` 또는 `unknown`이었습니다. +`-p`를 사용하는 [비대화형 모드](/docs/ko/headless)와 [Agent SDK](/docs/ko/agent-sdk/overview)에서 구조화된 오류 코드는 `cloud_credential_error`입니다. v2.1.267 이전에는 메시지에 `API Error:` 뒤의 세부 텍스트만 표시되었고, 구조화된 코드는 `server_error` 또는 `unknown`이었습니다. -**수행할 작업:** +**조치 방법:** -* `aws sso login --profile myprofile` 또는 `gcloud auth application-default login`과 같은 공급자의 로그인 명령을 실행한 후 재시도합니다. [Bedrock, Agent Platform 또는 Foundry 자격증명이 로드되지 않음](/docs/ko/troubleshoot-install#bedrock-agent-platform-or-foundry-credentials-not-loading)은 Claude Code 외부에서 자격증명을 확인하는 방법을 보여줍니다. -* 세부 정보가 `AWS default-chain credential resolve timed out`을 읽으면, 체인이 실패하지 않고 중단되었으므로, 대신 [AWS default-chain credential resolve timed out](#aws-default-chain-credential-resolve-timed-out)을 따릅니다. +* `aws sso login --profile myprofile` 또는 `gcloud auth application-default login`과 같은 공급자의 로그인 명령을 실행한 다음 재시도합니다. [Bedrock, Agent Platform 또는 Foundry 자격 증명이 로드되지 않음](/docs/ko/troubleshoot-install#bedrock-agent-platform-or-foundry-credentials-not-loading)에서 Claude Code 외부에서 자격 증명을 확인하는 방법을 설명합니다 +* 세부 정보가 `AWS default-chain credential resolve timed out`이면 체인이 실패한 것이 아니라 멈춘 것이므로, 대신 [AWS default-chain credential resolve timed out](#aws-default-chain-credential-resolve-timed-out)을 따르십시오

AWS default-chain credential resolve timed out

-AWS 기본 자격증명 공급자 체인이 60초 내에 자격증명을 생성하지 않아서, Claude Code가 확인을 중지하고 요청을 실패했습니다. 이 시간 초과는 [AWS 또는 Google Cloud 자격증명을 로드할 수 없습니다](#could-not-load-aws-or-google-cloud-credentials)의 한 원인입니다. 실패는 로컬 자격증명 확인입니다: 요청이 [Amazon Bedrock](/docs/ko/amazon-bedrock), [Claude Platform on AWS](/docs/ko/claude-platform-on-aws) 또는 [Mantle 엔드포인트](/docs/ko/amazon-bedrock#use-the-mantle-endpoint)에 도달하지 않았습니다. Claude Code는 [자격증명 캐시](/docs/ko/amazon-bedrock#credential-caching-and-resolution-timeout)를 지우고 이 오류가 표시되기 전에 재시도하므로, 이를 볼 때쯤 체인이 반복된 시도에서 중단되었습니다. +AWS 기본 자격 증명 공급자 체인이 60초 이내에 자격 증명을 생성하지 못했으므로, Claude Code가 확인 작업을 중단하고 요청을 실패 처리했습니다. 이 타임아웃은 [Could not load AWS or Google Cloud credentials](#could-not-load-aws-or-google-cloud-credentials)의 원인 중 하나입니다. 이 실패는 로컬 자격 증명 확인 과정에서 발생한 것으로, 요청은 [Amazon Bedrock](/docs/ko/amazon-bedrock), [Claude Platform on AWS](/docs/ko/claude-platform-on-aws) 또는 [Mantle 엔드포인트](/docs/ko/amazon-bedrock#use-the-mantle-endpoint)에 도달하지 않았습니다. Claude Code는 이 오류를 표시하기 전에 [자격 증명 캐시](/docs/ko/amazon-bedrock#credential-caching-and-resolution-timeout)를 지우고 재시도하므로, 이 오류가 표시될 때는 이미 반복된 시도에서 체인이 멈춘 상태입니다. ```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. ``` -일반적인 원인은 AWS 프로필의 `credential_process` 명령이 받을 수 없는 입력을 기다리고 있으며, 컨테이너 또는 VM의 인스턴스 메타데이터 서비스(IMDS)가 체인의 프로브에 응답하지 않습니다. +일반적인 원인은 AWS 프로필의 `credential_process` 명령이 받을 수 없는 입력을 기다리는 경우, 그리고 컨테이너나 VM의 인스턴스 메타데이터 서비스(IMDS)가 체인의 프로브에 응답하지 않는 경우입니다. -v2.1.267 이전에는 메시지가 `API Error: AWS default-chain credential resolve timed out`을 읽었습니다. -v2.1.207 이전에는 중단된 체인이 실패하는 대신 요청을 무한정 기다리게 했습니다. +v2.1.267 이전에는 메시지가 `API Error: AWS default-chain credential resolve timed out`으로 표시되었습니다. +v2.1.207 이전에는 체인이 멈추면 요청이 실패하지 않고 무기한 대기했습니다. -**수행할 작업:** +**조치 방법:** -* 동일한 셸에서 동일한 `AWS_PROFILE`로 `aws sts get-caller-identity`를 실행합니다. 또한 중단되면, 프로필을 수정합니다. 대화형으로 프롬프트하는 `credential_process` 명령이 일반적인 원인입니다. -* Claude Code를 시작하기 전에 로그인 단계를 완료합니다. 예를 들어 `aws sso login --profile myprofile`을 실행하여 체인이 브라우저 흐름을 기다리는 대신 로컬 SSO 캐시에서 확인되도록 합니다. -* 체인이 `aws-vault`와 같은 래퍼를 통해 MFA가 있는 SSO와 같이 60초 이상 필요로 하는 대화형 로그인을 실행하면, [`CLAUDE_CODE_AWS_CHAIN_RESOLVE_TIMEOUT_MS`](/docs/ko/env-vars)에서 밀리초 단위로 제한을 높입니다. +* 같은 셸에서 같은 `AWS_PROFILE`로 `aws sts get-caller-identity`를 실행합니다. 이 명령도 멈춘다면 프로필을 수정하십시오. 대화형으로 입력을 요청하는 `credential_process` 명령이 흔한 원인입니다. +* Claude Code를 시작하기 전에 로그인 단계를 완료합니다. 예: `aws sso login --profile myprofile` +* `aws-vault`와 같은 래퍼를 통한 MFA 포함 SSO처럼 체인이 실제로 60초 이상 필요한 대화형 로그인을 실행한다면, [`CLAUDE_CODE_AWS_CHAIN_RESOLVE_TIMEOUT_MS`](/docs/ko/env-vars)로 제한을 밀리초 단위로 늘리십시오

- Bedrock 설정 확인이 AWS를 기다리다가 시간 초과되었습니다 + Bedrock setup verification timed out waiting for AWS

-[Bedrock 설정 마법사](/docs/ko/amazon-bedrock#sign-in-with-bedrock)의 자격증명 확인 중 AWS에 대한 호출(예: 자격증명 조회 또는 ID 확인)이 60초 제한 내에 완료되지 않았습니다. 마법사가 기다리기를 중지하고 확인 단계를 실패합니다: +[Bedrock 설정 마법사](/docs/ko/amazon-bedrock#sign-in-with-bedrock)의 자격 증명 확인 중 자격 증명 조회나 ID 확인과 같은 AWS 호출이 60초 제한 내에 완료되지 않았습니다. 마법사는 대기를 중단하고 확인 단계를 실패 처리합니다. ```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. ``` -숫자는 제한을 반영합니다: 기본적으로 60초 또는 [`CLAUDE_CODE_AWS_CHAIN_RESOLVE_TIMEOUT_MS`](/docs/ko/env-vars)에서 설정한 값입니다. +표시되는 숫자는 설정된 제한을 반영합니다. 기본값은 60초이며, [`CLAUDE_CODE_AWS_CHAIN_RESOLVE_TIMEOUT_MS`](/docs/ko/env-vars)에 설정한 값이 있으면 그 값이 표시됩니다. -일반적인 원인은 SSO 토큰 새로 고침을 포함하여 AWS에 대한 요청을 중단하는 네트워크 또는 프록시이며, 자격증명 헬퍼가 볼 수 없는 입력을 기다리고 있습니다. 헬퍼가 합법적으로 더 많은 시간이 필요할 때만 제한을 높입니다. +일반적인 원인은 SSO 토큰 갱신을 포함하여 AWS로의 요청을 지연시키는 네트워크나 프록시, 그리고 사용자에게 보이지 않는 입력을 계속 기다리는 자격 증명 도우미입니다. 도우미가 실제로 더 많은 시간이 필요한 경우에만 제한을 늘리십시오. -AWS에 대한 단일 중단된 요청도 자체 요청별 시간 초과로 실패할 수 있으며, 동일한 단계에서 더 짧은 메시지를 표시합니다: +AWS로의 단일 요청이 멈추면 요청별 타임아웃으로 인해 자체적으로 실패할 수도 있으며, 이 경우 같은 단계에서 더 짧은 메시지가 표시됩니다. ```text theme={null} A request to AWS timed out. Check your network and proxy settings, then try again. ``` -동일한 시간 초과가 모델 핀 단계에서 발생하면, 마법사가 메시지를 표시하는 대신 모델을 `unreachable`로 표시합니다. +모델 고정 단계에서 같은 시간 초과가 발생하면, 마법사는 두 메시지를 표시하는 대신 모델을 `unreachable`로 표시합니다. -**수행할 작업:** +**조치 방법:** -* 동일한 셸에서 `aws sts get-caller-identity`를 실행합니다. 또한 중단되면, 중단이 Claude Code 외부에 있습니다. 네트워크, 프록시 또는 AWS 프로필의 자격증명 헬퍼에서 먼저 수정합니다. -* 마법사를 열기 전에 대화형 로그인을 완료합니다. 예를 들어 `aws sso login --profile myprofile`을 실행합니다. -* AWS 프로필의 자격증명 헬퍼가 합법적으로 60초 이상 프롬프트를 기다려야 하면, [`CLAUDE_CODE_AWS_CHAIN_RESOLVE_TIMEOUT_MS`](/docs/ko/env-vars)에서 밀리초 단위로 제한을 높입니다. +* 같은 셸에서 `aws sts get-caller-identity`를 실행합니다. 이 명령도 멈춘다면 지연은 Claude Code 외부, 즉 네트워크, 프록시 또는 AWS 프로필의 자격 증명 도우미에서 발생하는 것이므로 먼저 이를 해결하십시오. +* 마법사를 열기 전에 대화형 로그인을 완료합니다. 예: `aws sso login --profile myprofile` +* AWS 프로필의 자격 증명 도우미가 입력을 요청하는 데 실제로 60초 이상 필요하다면, [`CLAUDE_CODE_AWS_CHAIN_RESOLVE_TIMEOUT_MS`](/docs/ko/env-vars)로 제한을 밀리초 단위로 늘리십시오

- 클라우드 게이트웨이 세션 만료됨 + Cloud gateway session expired

-[Claude apps 게이트웨이](/docs/ko/claude-apps-gateway)를 통해 로그인했으며, 이 머신에 저장된 게이트웨이 세션이 만료되었으며 갱신할 수 없거나, 게이트웨이가 더 이상 수락하지 않습니다. 예를 들어 게이트웨이의 [JWT 비밀이 교체된](/docs/ko/claude-apps-gateway-deploy#jwt-secret-rotation) 후입니다. 대화형으로 `claude`를 시작할 때 이 라인을 보면, 세션이 게이트웨이에서 로그아웃된 상태로 열렸습니다: +[Claude apps 게이트웨이](/docs/ko/claude-apps-gateway)를 통해 로그인했으며, 이 머신에 저장된 게이트웨이 세션이 만료되어 갱신할 수 없거나, 예를 들어 게이트웨이의 [JWT 시크릿이 교체된](/docs/ko/claude-apps-gateway-deploy#jwt-secret-rotation) 후와 같이 게이트웨이가 더 이상 해당 세션을 허용하지 않습니다. `claude`를 대화형으로 시작할 때 이 줄이 표시되면, 세션이 게이트웨이에서 로그아웃된 상태로 열린 것입니다. ```text theme={null} Cloud gateway session expired — run /login to reconnect. ``` -동일한 라인이 게이트웨이 자격증명이 만료되고 Claude Code가 갱신할 수 없을 때 세션 중에 나타날 수 있습니다. +게이트웨이 자격 증명이 만료되고 Claude Code가 이를 갱신할 수 없으면 세션 도중에도 같은 줄이 표시될 수 있습니다. -[비대화형](/docs/ko/headless) 실행, 백그라운드 또는 기타 무인 세션 또는 `claude auth` 이외의 `claude` 하위 명령에서, Claude Code는 게이트웨이가 더 이상 세션을 수락하지 않을 때 대신 이 메시지로 종료됩니다: +[비대화형](/docs/ko/headless) 실행, 백그라운드 또는 기타 무인 세션, 또는 `claude auth` 이외의 `claude` 하위 명령에서는 게이트웨이가 더 이상 세션을 허용하지 않을 때 Claude Code가 대신 다음 메시지와 함께 종료됩니다. ```text theme={null} Cloud gateway no longer accepts this session. Start `claude` and sign in again with /login. ``` -**수행할 작업:** +**조치 방법:** -* 세션에서 `/login`을 실행하고 브라우저 로그인을 완료합니다. -* 비대화형 실행의 경우, 동일한 환경에서 `claude`를 시작하고, `/login`을 실행한 후 명령을 다시 실행합니다. +* 세션에서 `/login`을 실행하고 브라우저 로그인을 완료합니다 +* 비대화형 실행의 경우, 같은 환경에서 `claude`를 시작하고 `/login`을 실행한 다음 명령을 다시 실행합니다

- 로그인이 계속하기를 기다리다가 시간 초과되었습니다 + Sign-in timed out while waiting for you to continue

-[Claude apps 게이트웨이](/docs/ko/claude-apps-gateway) 로그인 중에 게이트웨이가 로그인한 계정의 이름을 지정했으며, Claude Code가 자격증명을 저장하기 전에 확인하도록 요청했습니다. 로그인 자신의 만료를 지나 확인을 열어 두었으며, 게이트웨이가 갱신할 수 있는 새로 고침 토큰을 발급하지 않았으므로, Claude Code가 계속할 때 아무것도 저장하지 않았습니다: +[Claude apps 게이트웨이](/docs/ko/claude-apps-gateway) 로그인 중에 게이트웨이가 로그인한 계정을 알려 주었고, Claude Code가 자격 증명을 저장하기 전에 해당 계정의 확인을 요청했습니다. 확인 화면을 로그인 자체의 만료 시간이 지나도록 열어 두었고, 게이트웨이가 이를 갱신할 수 있는 새로 고침 토큰을 발급하지 않았으므로, 계속 진행했을 때 Claude Code는 아무것도 저장하지 않았습니다. ```text theme={null} Sign-in timed out while waiting for you to continue. Try again. ``` -**수행할 작업:** +**조치 방법:** -* `/login`을 다시 실행하고 로그인이 만료되기 전에 계정을 확인합니다. +* `/login`을 다시 실행하고 로그인이 만료되기 전에 계정을 확인합니다

- 게이트웨이가 요청을 거부했습니다 + Gateway refused the request

-[Claude apps 게이트웨이](/docs/ko/claude-apps-gateway)를 통해 로그인했으며, 요청이 403을 반환했습니다: 게이트웨이 또는 뒤의 업스트림이 거부했습니다. 다시 로그인하면 거부가 변경되지 않으므로, 메시지는 게이트웨이 관리자를 가리킵니다: +[Claude apps 게이트웨이](/docs/ko/claude-apps-gateway)를 통해 로그인한 상태에서 요청이 403을 반환했습니다. 게이트웨이 또는 그 뒤의 업스트림이 요청을 거부한 것입니다. 다시 로그인해도 거부는 바뀌지 않으므로, 메시지는 게이트웨이 관리자에게 문의하도록 안내합니다. ```text theme={null} Gateway refused the request · signing in again won't change this — check with your gateway administrator · API Error: 403 ... ``` -**수행할 작업:** +**조치 방법:** -* 게이트웨이 관리자에게 요청을 조회하도록 요청합니다. `API Error:` 꼬리는 게이트웨이가 반환한 거부를 전달합니다. -* 관리자의 경우: 게이트웨이의 [액세스 제어 규칙](/docs/ko/claude-apps-gateway-config#http-tuning)이 [감사 로그](/docs/ko/claude-apps-gateway-deploy#logs)가 이유와 함께 기록하는 403을 반환하며, 업스트림의 인증 거부는 [업스트림 오류 메시지](/docs/ko/claude-apps-gateway-config#upstream-error-messages)에 따라 통과합니다. +* 게이트웨이 관리자에게 해당 요청을 조회해 달라고 요청합니다. `API Error:` 뒷부분에는 게이트웨이가 반환한 거부 내용이 포함되어 있습니다 +* 관리자의 경우: 게이트웨이의 [액세스 제어 규칙](/docs/ko/claude-apps-gateway-config#http-tuning)은 403을 반환하며 [감사 로그](/docs/ko/claude-apps-gateway-deploy#logs)에 그 사유가 기록됩니다. 업스트림의 인가 거부는 [업스트림 오류 메시지](/docs/ko/claude-apps-gateway-config#upstream-error-messages)에 따라 그대로 전달됩니다 -v2.1.273 이전에는 게이트웨이 세션의 403이 일반적인 `Please run /login` 또는 `Failed to authenticate` 메시지를 표시했으며, 다시 로그인해도 거부가 지워지지 않았습니다. +v2.1.273 이전에는 게이트웨이 세션에서 발생한 403이 일반적인 `Please run /login` 또는 `Failed to authenticate` 메시지로 표시되었으며, 다시 로그인해도 거부가 해소되지 않았습니다.

네트워크 및 연결 오류 @@ -1848,7 +1880,7 @@ A proxy is configured via HTTPS_PROXY. Check that it allows connections to the h Claude Code는 API 요청과 동일한 [프록시 구성](/docs/ko/network-config)을 통해 확인을 보내고 각 프로브에 10초를 제공합니다. 실패한 프로브가 프록시를 통과한 경우, 메시지는 `HTTPS_PROXY`와 같이 이를 구성한 환경 변수의 이름을 지정합니다. v2.1.222 이전에는 확인이 타임아웃이 없는 다른 프록시 전송을 사용했습니다. `https://` 스키마가 있는 프록시 URL 뒤에서 `Checking connectivity...`에서 무한정 정지될 수 있었고, 동일한 프록시를 통한 API 요청이 성공하더라도 실패할 수 있었습니다. -Claude Code는 [관리되는 설정 파일, MDM 정책 또는 정책 도우미](/docs/ko/managed-settings)가 [`forceLoginMethod`](/docs/ko/settings-reference#forceloginmethod)를 `"gateway"`로 설정하거나 `forceLoginMethod` 없이 [`forceLoginGatewayUrl`](/docs/ko/settings-reference#forcelogingatewayurl)을 설정할 때 이 확인을 건너뜁니다. 두 구성 중 하나를 사용하면 Claude Code는 Anthropic 로그인 방법이 아닌 **클라우드 게이트웨이** 화면에서 로그인 단계를 엽니다. Claude Code는 또한 머신에 관리되는 설정 소스가 존재하지만 읽을 수 없을 때 확인을 건너뜁니다. 해당 소스가 게이트웨이 구성을 보유할 수 있기 때문입니다. v2.1.247 이전에는 Claude Code가 이 구성에서도 확인을 실행했고, Anthropic의 엔드포인트에 도달할 수 없을 때 이 오류로 종료했습니다. +Claude Code는 [관리형 설정 파일, MDM 정책 또는 정책 도우미](/docs/ko/managed-settings)가 [`forceLoginMethod`](/docs/ko/settings-reference#forceloginmethod)를 `"gateway"`로 설정하거나 `forceLoginMethod` 없이 [`forceLoginGatewayUrl`](/docs/ko/settings-reference#forcelogingatewayurl)을 설정할 때 이 확인을 건너뜁니다. 두 구성 중 하나를 사용하면 Claude Code는 Anthropic 로그인 방법이 아닌 **클라우드 게이트웨이** 화면에서 로그인 단계를 엽니다. Claude Code는 또한 머신에 관리형 설정 소스가 존재하지만 읽을 수 없을 때 확인을 건너뜁니다. 해당 소스가 게이트웨이 구성을 보유할 수 있기 때문입니다. v2.1.247 이전에는 Claude Code가 이 구성에서도 확인을 실행했고, Anthropic의 엔드포인트에 도달할 수 없을 때 이 오류로 종료했습니다. **수행할 작업:** @@ -1884,7 +1916,7 @@ API returned an empty or malformed response (HTTP 200) — check for a proxy or 그 시작 후, 메시지는 반환된 내용과 실패한 요청을 보고합니다: * 콘텐츠 유형, `body is an HTML page` 또는 `empty body`와 같은 본문의 종류, 바이트 단위의 크기, 응답이 Anthropic 요청 ID를 전달했는지 여부를 포함하는 `Response:` 절. 응답이 `nginx` 또는 `cloudflare`와 같은 인식 가능한 서버의 이름을 지정하거나 `cf-ray` 또는 `via`와 같은 중간 헤더를 전달하는 경우, 절은 이들도 나열합니다. -* 실패한 스트리밍 요청의 ID와 재시도를 트리거한 실패의 이름을 지정하는 문장. 스트림이 실패 전에 열린 경우, 도착한 스트림 이벤트의 수와 도움이 된 경우 시도가 실패했을 때 스트림이 얼마나 오래 침묵했는지도 보고합니다. +* 실패한 스트리밍 요청의 ID와 재시도를 트리거한 실패의 이름을 지정하는 문장. 스트림이 실패 전에 열린 경우, 도착한 스트림 이벤트의 수와, 이벤트가 하나라도 도착했다면 시도가 실패했을 때 스트림이 얼마나 오래 침묵했는지도 보고합니다. v2.1.234 이전에는 메시지가 `intercepting the request` 후에 종료되었습니다. @@ -1977,10 +2009,10 @@ x-deny-reason: host_not_allowed **수행할 작업:** -이러한 단계는 자신의 환경 중 하나를 변경합니다. [조직 공유 환경](/docs/ko/cloud-environments#organization-shared-environments)은 선택기에서 읽기 전용으로 열리므로, [관리 설정](https://claude.ai/admin-settings)의 **클라우드 환경** 페이지에서 소유자에게 네트워크 액세스를 변경하도록 요청합니다. +이러한 단계는 자신의 환경 중 하나를 변경합니다. [조직 공유 환경](/docs/ko/cloud-environments#organization-shared-environments)은 선택기에서 읽기 전용으로 열리므로, [관리자 설정](https://claude.ai/admin-settings)의 **클라우드 환경** 페이지에서 Owner에게 네트워크 액세스를 변경하도록 요청합니다. -* 루틴을 편집하기 위해 열거나 클라우드 세션을 시작합니다. 환경의 이름(예: **기본**)을 표시하는 클라우드 아이콘을 선택하여 선택기를 엽니다. 환경 위에 마우스를 올리고 설정 아이콘을 클릭합니다. -* **클라우드 환경 업데이트** 대화 상자에서 **네트워크 액세스**를 **신뢰할 수 있는**에서 **사용자 정의**로 변경한 다음 차단된 도메인을 **허용된 도메인**에 추가합니다. 한 줄에 하나의 도메인을 입력합니다. **또한 일반적인 패키지 관리자의 기본 목록 포함**을 확인하여 사용자 정의 도메인과 함께 [기본 허용 목록](/docs/ko/cloud-environments#default-allowed-domains)을 유지합니다. 제한 없는 액세스를 원하는 경우 대신 **전체**를 선택합니다. +* [루틴의 양식](/docs/ko/routines#environments-and-network-access) 또는 클라우드 세션을 시작하는 [환경 선택기](/docs/ko/cloud-environments#configure-your-environment)에서 환경을 편집용으로 엽니다. +* **클라우드 환경 편집** 대화 상자에서 **네트워크 액세스**를 **신뢰할 수 있는**에서 **사용자 정의**로 변경한 다음 차단된 도메인을 **허용된 도메인**에 추가합니다. 한 줄에 하나의 도메인을 입력합니다. **또한 일반적인 패키지 관리자의 기본 목록 포함**을 확인하여 사용자 정의 도메인과 함께 [기본 허용 목록](/docs/ko/cloud-environments#default-allowed-domains)을 유지합니다. 제한 없는 액세스를 원하는 경우 대신 **전체**를 선택합니다. * **변경 사항 저장**을 클릭합니다. 다음 실행은 업데이트된 허용 목록을 사용합니다. 이미 열려 있는 클라우드 세션의 경우, [네트워크 액세스 변경이 기존 세션에 도달할 때](/docs/ko/cloud-environments#network-access)를 참조합니다. 액세스 수준 및 기본 허용 목록은 [네트워크 액세스](/docs/ko/cloud-environments#network-access)를 참조합니다. 로컬 CLI 세션은 이 정책의 영향을 받지 않습니다. @@ -2023,7 +2055,7 @@ The cloud environments service returned a response in an unexpected format (HTTP 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. ``` -서버는 요청을 수락했지만 환경 목록이 아닌 본문으로 응답했습니다: 비어 있음, JSON이 아님, 또는 목록이 없는 JSON. 이는 일반적으로 서비스 측 중단을 동반하며 자체적으로 해결됩니다. 목록을 요청한 표면에 따라 Claude Code는 `/remote-env` 대화 상자에서 `couldn't list environments:`와 같은 접두사를 추가할 수 있습니다. +서버는 요청을 수락했지만 환경 목록이 아닌 본문으로 응답했습니다: 비어 있음, JSON이 아님, 또는 목록이 없는 JSON. 이는 일반적으로 서비스 측 중단을 동반하며 자체적으로 해결됩니다. 목록을 요청한 사용 환경에 따라 Claude Code는 `/remote-env` 대화 상자에서 `couldn't list environments:`와 같은 접두사를 추가할 수 있습니다. **수행할 작업:** @@ -2062,7 +2094,7 @@ Claude Code는 머신이 오프라인 상태인 동안 서버가 머신이 제 **수행할 작업:** -* Claude Code가 이 메시지 아래에 유지된 worktree를 나열할 때 이들에서 커밋되지 않은 작업을 선택합니다. +* Claude Code가 이 메시지 아래에 유지된 worktree를 나열할 때 이들에서 커밋되지 않은 작업을 가져옵니다. * `claude remote-control`을 실행하여 새로운 환경을 시작합니다.

@@ -2075,7 +2107,7 @@ Claude Code는 머신이 오프라인 상태인 동안 서버가 머신이 제 Couldn't share the transcript. ``` -업로드는 8 MiB 제한에 맞아야 합니다. 긴 세션에서 Claude Code는 점진적으로 공유의 일부를 삭제합니다. 마지막 요청의 모델 설정이 먼저, 그 다음 구조화된 대화 및 서브에이전트 트랜스크립트이며, 축소된 버전을 보낼 수 없거나 네트워크 또는 서버 오류가 업로드를 중지할 때만 이 메시지를 표시합니다. Claude Code가 로컬 아카이브를 대신 저장할 때, 메시지는 아카이브를 쓸 수 없었음을 의미합니다. +업로드는 8 MiB 제한에 맞아야 합니다. 긴 세션에서 Claude Code는 점진적으로 공유의 일부를 삭제합니다. 마지막 요청의 모델 설정이 먼저, 그 다음 구조화된 대화 및 서브에이전트 트랜스크립트이며, 축소된 버전을 보낼 수 없거나 네트워크 또는 서버 오류가 업로드를 중지할 때 이 메시지를 표시합니다. Claude Code가 로컬 아카이브를 대신 저장할 때, 메시지는 아카이브를 쓸 수 없었음을 의미합니다. **수행할 작업:** @@ -2101,7 +2133,7 @@ Couldn't send feedback (couldn't reach the service). If it keeps failing, you ca **수행할 작업:** -* 서명되지 않은 표현의 경우, `/login`을 실행하고 다시 보냅니다. +* 로그인되지 않았다는 문구의 경우, `/login`을 실행하고 다시 보냅니다. * 그 외의 경우, 다시 보냅니다. 다른 요청도 실패하는 경우, 네트워크 연결을 확인하고 [API에 연결할 수 없음](#unable-to-connect-to-api)을 참조합니다. * 계속 실패하면 메시지가 말하는 대로 [github.com/anthropics/claude-code/issues](https://github.com/anthropics/claude-code/issues)에서 보고서를 제출합니다. @@ -2129,19 +2161,19 @@ Prompt is too long Context limit reached · /compact or /clear to continue ``` -[`DISABLE_COMPACT`](/docs/ko/env-vars)가 설정된 경우에만 `/clear`를 표시합니다. 아래의 압축 실패 형식과 같은 더 긴 오류 형식은 `Prompt is too long ·` 표현을 유지합니다. `-p` 출력 및 기록에서 텍스트는 `Prompt is too long`으로 유지됩니다. +[`DISABLE_COMPACT`](/docs/ko/env-vars)가 설정된 경우에는 이 줄에 `/clear`만 표시됩니다. 아래의 압축 실패 형식과 같은 더 긴 오류 형식은 `Prompt is too long ·` 표현을 유지합니다. `-p` 출력 및 트랜스크립트에서 텍스트는 `Prompt is too long`으로 유지됩니다. -[사용자 설정](/docs/ko/settings-reference#autocompactenabled)에서 자동 압축을 끈 경우, 이 줄은 다음과 같이 표시됩니다: +[사용자 설정](/docs/ko/settings-reference#autocompactenabled)에서 자동 압축을 끈 경우, 이 줄에 그 사실도 함께 표시됩니다: ```text theme={null} Context limit reached · /compact or /clear to continue · auto-compact is off · /config to turn it on ``` -`/config`의 **자동 압축** 토글은 사용자 설정에 `autoCompactEnabled`를 씁니다. 이 힌트는 `/config` 변경이 적용될 때만 나타납니다. 예를 들어, [`DISABLE_AUTO_COMPACT`](/docs/ko/env-vars) 또는 [`DISABLE_COMPACT`](/docs/ko/env-vars)가 자동 압축을 끈 경우에는 나타나지 않습니다. 또한 프로젝트 또는 관리 설정과 같은 더 높은 우선순위 범위가 `autoCompactEnabled`를 `false`로 설정한 경우에도 나타나지 않습니다. v2.1.235 이전에는 이 줄에 자동 압축 힌트가 없었습니다. +`/config`의 **자동 압축** 토글은 사용자 설정에 `autoCompactEnabled`를 씁니다. 이 힌트는 `/config` 변경이 적용될 때만 나타납니다. 예를 들어, [`DISABLE_AUTO_COMPACT`](/docs/ko/env-vars) 또는 [`DISABLE_COMPACT`](/docs/ko/env-vars)가 자동 압축을 끈 경우에는 나타나지 않습니다. 또한 프로젝트 또는 관리형 설정과 같은 더 높은 우선순위 범위가 `autoCompactEnabled`를 `false`로 설정한 경우에도 나타나지 않습니다. v2.1.235 이전에는 이 줄에 자동 압축 힌트가 없었습니다. -Amazon Bedrock은 이 조건을 `Input is too long for requested model.`로 보고하며, Claude Code는 동일한 방식으로 처리합니다. v2.1.217 이전에는 Claude Code가 Bedrock 표현을 인식하지 못했으므로 자동 압축이 트리거되지 않았고 `/compact`는 동일한 오류로 실패했습니다. +Amazon Bedrock은 이 조건을 `Input is too long for requested model.`로 보고하며, Claude Code는 이를 동일한 방식으로 처리합니다. v2.1.217 이전에는 Claude Code가 Bedrock 표현을 인식하지 못했으므로 자동 압축이 트리거되지 않았고 `/compact`는 동일한 오류로 실패했습니다. -[Claude 앱 게이트웨이](/docs/ko/claude-apps-gateway-config#upstream-error-messages)는 클라우드 업스트림이 제공자의 자체 오류 형식으로 요청을 거부할 때 이 조건을 `capability_rejected: prompt_too_long`으로 보고합니다. Claude Code는 토큰을 `Prompt is too long`과 동일하게 처리합니다. v2.1.228 이전에는 Claude Code가 토큰을 인식하지 못했으므로 자동 압축이 트리거되지 않았습니다. +[Claude 앱 게이트웨이](/docs/ko/claude-apps-gateway-config#upstream-error-messages)는 클라우드 업스트림이 제공자의 자체 오류 형식으로 요청을 거부할 때 이 조건을 `capability_rejected: prompt_too_long`으로 보고합니다. Claude Code는 이 토큰을 `Prompt is too long`과 동일하게 처리합니다. v2.1.228 이전에는 Claude Code가 이 토큰을 인식하지 못했으므로 자동 압축이 트리거되지 않았습니다. 자동 압축이 이 턴에서 실행되었지만 사용할 수 없는 모델 또는 인증 실패와 같은 기본 오류로 실패한 경우, 메시지는 구분자 뒤에 해당 오류를 표시합니다: @@ -2156,27 +2188,27 @@ Prompt is too long · automatic compaction failed: * 전체 교환을 요약할 수 없는 경우, Claude Code는 가장 최신 프롬프트를 그대로 유지하고 그 이전의 모든 것을 요약합니다. * 이 경우, 대화가 프롬프트로 끝나지 않으면 Claude Code는 전체 대화를 대신 요약합니다. -Claude Code는 전달할 내용이 모델 응답을 포함하지 않고 짧은 재시도와 같은 약 1,000개 토큰 미만의 자신의 텍스트를 포함하는 경우 이 복구를 건너뜁니다. `/clear`를 실행하여 새로 시작하십시오. v2.1.269 이전에는 전체 교환을 요약할 수 없을 때마다 압축이 실패했으므로 이 상태의 세션은 매 턴마다 이 오류를 다시 만났습니다. +이어서 전달할 내용에 모델 응답이 없고 사용자 자신의 텍스트가 약 1,000토큰 미만인 경우(예: 크기가 큰 붙여넣기 후에 보낸 짧은 재시도) Claude Code는 이 복구를 건너뜁니다. `/clear`를 실행하여 새로 시작하십시오. v2.1.269 이전에는 전체 교환을 요약할 수 없을 때마다 압축이 실패했으므로 이 상태의 세션은 매 턴마다 이 오류를 다시 만났습니다. -단일 교환 대화에는 요약할 이전 턴이 없습니다. 자동 압축이 하나에서 실행되었을 때, Claude Code는 시도를 건너뛰고 요청을 채우는 것을 설명합니다. API가 오류에서 토큰 수를 보고하지 않으면 메시지는 다음과 같이 읽습니다: +단일 교환 대화에는 요약할 이전 턴이 없습니다. 이러한 대화에서 자동 압축이 실행되려 할 때, Claude Code는 시도를 건너뛰고 무엇이 요청을 채우고 있는지 설명합니다. API가 오류에서 토큰 수를 보고하지 않으면 메시지는 다음과 같습니다: ```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. ``` -API가 오류에서 토큰 수를 보고하면 Claude Code는 이를 자신의 대화 크기 추정치와 비교하여 요청의 대부분이 무엇인지 알려줍니다: 대화 자체의 내용, 또는 Claude Code가 함께 보내는 시스템 프롬프트, 도구 정의 및 첨부 내용. 대화 자체의 내용이 요청의 대부분인 경우 메시지는 다음과 같이 읽습니다: +API가 오류에서 토큰 수를 보고하면 Claude Code는 이를 자체적으로 추정한 대화 크기와 비교하여 요청의 대부분이 무엇인지 알려줍니다: 대화 자체의 내용인지, 아니면 Claude Code가 함께 보내는 시스템 프롬프트, 도구 정의 및 첨부 내용인지입니다. 대화 자체의 내용이 요청의 대부분인 경우 메시지는 다음과 같습니다: ```text theme={null} Prompt is too long · the request is ~ tokens (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). ``` -요청의 대부분이 대화 외부에 있으면 메시지는 다음과 같이 읽습니다: +요청의 대부분이 대화 외부에 있으면 메시지는 다음과 같습니다: ```text theme={null} Prompt is too long · the request is ~ tokens (limit ) but this conversation is only ~ 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. ``` -v2.1.162 이전에는 Claude Code가 압축을 시도했고 실패했을 때 기본 `Prompt is too long`을 표시했습니다. +v2.1.162 이전에는 Claude Code가 그래도 압축을 시도했고 실패했을 때 `Prompt is too long`만 표시했습니다. **할 일:** @@ -2192,13 +2224,13 @@ v2.1.162 이전에는 Claude Code가 압축을 시도했고 실패했을 때 기 컨텍스트가 토큰 제한을 초과합니다

-`/context`는 대화가 모델의 컨텍스트 윈도우를 초과했을 때 출력 상단에 이 경고를 표시합니다. 공간을 확보할 때까지 요청이 실패합니다. 대화형 세션은 해당 오류를 `Context limit reached` 줄로 표시합니다. +`/context`는 대화가 모델의 컨텍스트 윈도우를 초과했을 때 출력 상단에 이 경고를 표시합니다. 공간을 확보할 때까지 요청이 [`Prompt is too long`](#prompt-is-too-long)으로 실패합니다. 대화형 세션은 해당 오류를 `Context limit reached` 줄로 표시합니다. ```text theme={null} Context exceeds the 200k-token limit by 94k tokens — run /compact or /clear to continue. ``` -초과한 제한이 1M 컨텍스트 모델의 200K 경계와 같은 압축 윈도우인 경우 경고는 다르게 읽힙니다. 압축 윈도우는 모델의 컨텍스트 윈도우 아래에 있을 수 있으므로 그 이후의 요청은 여전히 성공할 수 있습니다. +초과한 제한이 1M 컨텍스트 모델의 200K 경계와 같은 압축 윈도우인 경우 경고는 다르게 표시됩니다. 압축 윈도우는 모델의 컨텍스트 윈도우보다 작을 수 있으므로 이를 넘는 요청도 여전히 성공할 수 있습니다. ```text theme={null} Context is 94k tokens past the 200k-token compaction window — run /compact to reduce usage. @@ -2223,16 +2255,16 @@ v2.1.216 이전에는 `/context`가 100% 이상의 사용량을 표시했으며 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. ``` -요청이 Claude API로 직접 이동했고 API 자체가 거부한 경우, Claude Code는 대화를 측정하고 복구가 작동할 수 있는지 여부에 따라 메시지를 표현합니다. 프록시, 게이트웨이 또는 클라우드 제공자를 통해 일반 메시지를 받습니다. 측정된 형식: +요청이 Claude API로 직접 전송되었고 API 자체가 이를 거부한 경우, Claude Code는 대화를 측정하고 복구가 가능한지 여부에 따라 메시지를 표현합니다. 프록시, 게이트웨이 또는 클라우드 제공자를 통하는 경우에는 일반 메시지를 받습니다. 측정된 형식: -* `Request too large (max 32MB; 20.1MB of about 33.4MB is images or documents).`: 이미지 또는 문서가 요청을 제한 이상으로 밀어냈습니다. Claude Code는 이들을 제거하고 다시 시도합니다. -* `Request too large for the API's 32MB request limit`: 메시지만 제한을 초과하므로 메시지는 `compacting cannot make it fit`이라고 말하고 Claude Code는 다시 시도하지 않습니다. [비대화형 모드](/docs/ko/headless)에서 메시지는 입력을 줄이거나 대신 새 세션을 시작하도록 알려줍니다. +* `Request too large (max 32MB; 20.1MB of about 33.4MB is images or documents).`: 이미지 또는 문서가 요청을 제한 이상으로 밀어냈습니다. Claude Code는 이들을 제거하고 재시도합니다. +* `Request too large for the API's 32MB request limit`: 메시지만으로도 제한을 초과하므로 메시지는 `compacting cannot make it fit`이라고 말하고 Claude Code는 재시도하지 않습니다. [비대화형 모드](/docs/ko/headless)에서 메시지는 대신 입력을 줄이거나 새 세션을 시작하도록 안내합니다. -v2.1.212 이전에는 충분한 누적 이미지가 있는 대화가 `Request too large (max 32MB). Double press esc to go back and try with a smaller file.`로 매 턴마다 실패했습니다. v2.1.229 이전에는 Claude Code가 압축이 도움이 될 수 없을 때도 모든 거부에 대해 첨부 파일 조언을 표시했습니다. +v2.1.212 이전에는 이미지가 충분히 누적된 대화가 `Request too large (max 32MB). Double press esc to go back and try with a smaller file.`로 매 턴마다 실패했습니다. v2.1.229 이전에는 Claude Code가 압축이 도움이 될 수 없을 때도 모든 거부에 대해 첨부 파일 조언을 표시했습니다. **할 일:** -* 메시지가 `compacting cannot make it fit`이라고 말하면 Esc를 두 번 눌러 큰 내용을 추가한 턴을 지나 뒤로 이동하거나 `/clear`를 실행하여 새로 시작합니다. +* 메시지가 `compacting cannot make it fit`이라고 말하면 Esc를 두 번 눌러 큰 내용을 추가한 턴 이전으로 되돌아가거나 `/clear`를 실행하여 새로 시작합니다. * 그렇지 않으면 `/compact`를 실행합니다. 이는 누적된 이미지 및 첨부 파일을 제거합니다. * 내용을 붙여넣는 대신 경로로 큰 파일을 참조하여 Claude가 청크 단위로 읽을 수 있도록 합니다. * 이미지의 경우 아래의 [이미지가 너무 컸습니다](#image-was-too-large)를 참조하십시오. @@ -2248,12 +2280,12 @@ Image was too large. Double press esc to go back and try again with a smaller im API Error: 400 ... image dimensions exceed max allowed size ``` -Claude Code는 처리할 수 없는 이미지를 텍스트 자리 표시자로 바꾸고 다시 시도하므로 후속 메시지는 성공합니다. v2.1.142 이전 버전에서는 붙여넣은 이미지가 대화에 남아 있을 수 있으며 후속 모든 메시지에서 동일한 오류를 반복했습니다. 이러한 버전에서 복구하려면 Esc를 두 번 누르고 이미지가 추가된 턴을 지나 뒤로 이동합니다. +Claude Code는 처리할 수 없는 이미지를 텍스트 자리 표시자로 바꾸고 재시도하므로 후속 메시지는 성공합니다. v2.1.142 이전 버전에서는 붙여넣은 이미지가 대화에 남아 후속 모든 메시지에서 동일한 오류를 반복할 수 있었습니다. 이러한 버전에서 복구하려면 Esc를 두 번 누르고 이미지가 추가된 턴 이전으로 되돌아갑니다. **할 일:** -* 붙여넣기 전에 이미지 크기를 조정합니다. API는 단일 이미지의 경우 가장 긴 가장자리에서 최대 8000픽셀, 또는 많은 이미지가 컨텍스트에 있을 때 2000픽셀까지의 이미지를 허용합니다. -* 전체 화면 대신 관련 영역의 더 타이트한 스크린샷을 찍습니다. +* 붙여넣기 전에 이미지 크기를 조정합니다. API는 단일 이미지의 경우 가장 긴 변 기준 최대 8000픽셀, 많은 이미지가 컨텍스트에 있을 때는 2000픽셀까지의 이미지를 허용합니다. +* 전체 화면 대신 관련 영역만 더 좁게 스크린샷을 찍습니다.

이미지 크기를 조정할 수 없습니다 @@ -2283,7 +2315,7 @@ Claude Code는 일반적으로 큰 이미지를 자동으로 크기 조정합니 PDF 오류

-첨부한 PDF를 처리할 수 없었습니다. 메시지는 여기에 비대화형 형식으로 표시됩니다. 대화형 세션에서는 대신 Esc를 두 번 누르고 다시 시도하도록 요청합니다. +첨부한 PDF를 처리할 수 없었습니다. 메시지는 여기에 비대화형 형식으로 표시됩니다. 대화형 세션에서는 대신 Esc를 두 번 누르고 다시 시도하도록 안내합니다. ```text theme={null} PDF too large (max 100 pages, 20MB). Try reading the file a different way (e.g., extract text with pdftotext). @@ -2296,36 +2328,36 @@ The PDF file was not valid. Try converting it to text first (e.g., pdftotext). * 크기가 큰 PDF의 경우 전체 파일을 첨부하는 대신 Read 도구로 페이지 범위를 읽도록 Claude에 요청하거나 `pdftotext`와 같은 도구로 텍스트를 추출하고 출력 파일을 경로로 참조합니다. * 보호되거나 유효하지 않은 PDF의 경우 암호를 제거하거나 소스 애플리케이션에서 파일을 다시 내보낸 후 다시 시도합니다. -Claude가 Read 도구로 PDF에서 페이지 범위를 읽을 때, 읽기는 다른 메시지로 실패할 수 있습니다: +Claude가 Read 도구로 PDF에서 페이지 범위를 읽을 때, 읽기가 다른 메시지로 실패할 수 있습니다: ```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. ``` -페이지 범위 읽기는 `pdftoppm`으로 페이지를 렌더링합니다. 메시지가 제공하는 명령으로 poppler-utils를 설치하거나 다른 플랫폼에서 `pdftoppm`을 `PATH`에 배치하는 poppler 빌드를 설치합니다. [Read 도구 동작](/docs/ko/tools-reference#read-tool-behavior)에서 어떤 PDF가 페이지 범위로 읽히는지 참조하십시오. +페이지 범위 읽기는 `pdftoppm`으로 페이지를 렌더링합니다. 메시지가 제공하는 명령으로 poppler-utils를 설치하거나, 다른 플랫폼에서는 `pdftoppm`을 `PATH`에 배치하는 poppler 빌드를 설치합니다. 어떤 PDF가 페이지 범위로 읽히는지는 [Read 도구 동작](/docs/ko/tools-reference#read-tool-behavior)을 참조하십시오.

추가 입력은 허용되지 않습니다

-Claude Code와 API 사이의 프록시 또는 LLM 게이트웨이가 `anthropic-beta` 요청 헤더를 제거했으므로 API가 이에 따라 달라지는 필드를 거부했습니다. +Claude Code와 API 사이의 프록시 또는 LLM 게이트웨이가 `anthropic-beta` 요청 헤더를 제거했으므로 API가 이 헤더에 의존하는 필드를 거부했습니다. ```text theme={null} API Error: 400 ... Extra inputs are not permitted ... context_management ``` -Claude Code는 `context_management` 및 `effort`와 같은 베타 전용 필드를 이를 활성화하는 `anthropic-beta` 헤더와 함께 보냅니다. 게이트웨이가 본문을 전달하지만 헤더를 제거하면 API는 인식하지 못하는 필드를 봅니다. +Claude Code는 `context_management`와 같은 베타 전용 필드를 이를 활성화하는 `anthropic-beta` 헤더와 함께 보냅니다. 게이트웨이가 본문은 전달하지만 헤더를 제거하면 API는 인식하지 못하는 필드를 보게 됩니다. **할 일:** * `anthropic-beta` 헤더를 전달하도록 게이트웨이를 구성합니다. 게이트웨이가 전달해야 하는 것에 대해서는 [기능 통과](/docs/ko/llm-gateway-protocol#feature-pass-through)를 참조하십시오. -* 대체로 시작하기 전에 [`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1`](/docs/ko/env-vars)을 설정합니다. [사전 릴리스 기능 비활성화](/docs/ko/llm-gateway-protocol#disable-pre-release-capabilities)는 정확한 범위를 다룹니다. +* 폴백으로, 시작하기 전에 [`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1`](/docs/ko/env-vars)을 설정합니다. [사전 릴리스 기능 비활성화](/docs/ko/llm-gateway-protocol#disable-pre-release-capabilities)에서 정확한 범위를 다룹니다.

도구 입력 스키마가 유효하지 않습니다

-요청의 도구가 API의 JSON Schema 검증에 실패하는 `input_schema`를 선언했으므로 API가 전체 요청을 거부했습니다. `tools.` 뒤의 숫자는 실패한 도구의 위치이며 조회할 수 있는 이름이 아닙니다. +요청의 도구가 API의 JSON Schema 검증에 실패하는 `input_schema`를 선언했으므로 API가 전체 요청을 거부했습니다. `tools.` 뒤의 숫자는 요청의 도구 목록에서 실패한 도구의 위치이며 조회할 수 있는 이름이 아닙니다. ```text theme={null} API Error: 400 ... tools.N.custom.input_schema: JSON schema is invalid @@ -2334,19 +2366,19 @@ API Error: 400 ... tools.N.custom.input_schema.properties: Property keys should 첫 번째 형식은 스키마가 유효한 JSON Schema draft 2020-12가 아님을 의미합니다. 두 번째는 최상위 속성 이름이 메시지가 인용하는 패턴과 일치하지 않음을 의미합니다. -Claude Code는 [이 검증에 실패할 입력 스키마를 가진 MCP 도구를 제외합니다](/docs/ko/mcp#tools-with-invalid-input-schemas). 서버의 도구를 로드할 때 요청은 일반적으로 하나를 포함하지 않습니다. +Claude Code는 서버의 도구를 로드할 때 [이 검증에 실패할 입력 스키마를 가진 MCP 도구를 제외](/docs/ko/mcp#tools-with-invalid-input-schemas)하므로, 요청에는 일반적으로 그러한 도구가 포함되지 않습니다. -[플래그 가져오기가 꺼진 배포](/docs/ko/env-vars#features-that-need-feature-flag-fetching)에서 또는 플래그가 도착한 적이 없는 머신에서 Claude Code는 서버의 로그에 거부될 도구를 기록하지만 어쨌든 보내므로 이 오류가 여전히 발생할 수 있습니다. +[플래그 가져오기가 꺼진 배포](/docs/ko/env-vars#features-that-need-feature-flag-fetching)에서 또는 플래그가 한 번도 도착하지 않은 머신에서는 Claude Code가 거부될 도구를 서버의 로그에 기록하지만 그대로 보내므로 이 오류가 여전히 발생할 수 있습니다. -오류는 `$schema`에서 draft 2020-12 이외의 JSON Schema 방언을 선언하는 도구의 스키마에서도 발생할 수 있습니다. Claude Code는 이러한 스키마를 JSON Schema 메타 스키마에 대해 확인하지 않지만 최상위 속성 이름 확인은 여전히 적용됩니다. +이 오류는 `$schema`에서 draft 2020-12 이외의 JSON Schema 방언을 선언하는 스키마를 가진 도구에서도 발생할 수 있습니다. Claude Code는 이러한 스키마를 JSON Schema 메타 스키마에 대해 확인하지 않지만 최상위 속성 이름 확인은 여전히 적용됩니다. -v2.1.216 이전에는 배포가 제외 확인을 실행하지 않았습니다. +v2.1.216 이전에는 어떤 배포에서도 제외 확인을 실행하지 않았습니다. **할 일:** * Claude Code 버전이 v2.1.216보다 이전이면 `claude update`를 실행합니다. -* 유효하지 않은 스키마를 선언하는 MCP 서버를 제거하거나 [비활성화](/docs/ko/mcp#disable-a-server-without-removing-it)합니다. 오류는 도구를 위치로만 표시합니다. v2.1.216 이상에서는 각 서버의 로그에서 입력 스키마가 거부될 도구를 표시하는 줄을 확인합니다. 로그가 하나를 표시하지 않으면 서버를 하나씩 비활성화합니다. -* 서버를 유지 관리하면 도구의 `input_schema`를 수정합니다. 스키마는 유효한 JSON Schema여야 하며 최상위 속성 이름은 1\~64자 길이여야 하고 ASCII 문자와 숫자, `_`, `.` 및 `-`만 사용해야 합니다. [유효하지 않은 입력 스키마를 가진 도구](/docs/ko/mcp#tools-with-invalid-input-schemas)를 참조하십시오. +* 유효하지 않은 스키마를 선언하는 MCP 서버를 제거하거나 [비활성화](/docs/ko/mcp#disable-a-server-without-removing-it)합니다. 오류는 도구를 위치로만 표시합니다. v2.1.216 이상에서는 각 서버의 로그에서 입력 스키마가 거부될 도구를 표시하는 줄을 확인합니다. 그러한 도구를 표시하는 로그가 없으면 서버를 하나씩 비활성화합니다. +* 서버를 유지 관리하는 경우 도구의 `input_schema`를 수정합니다. 스키마는 유효한 JSON Schema여야 하며 최상위 속성 이름은 1\~64자 길이여야 하고 ASCII 문자와 숫자, `_`, `.` 및 `-`만 사용해야 합니다. [유효하지 않은 입력 스키마를 가진 도구](/docs/ko/mcp#tools-with-invalid-input-schemas)를 참조하십시오.

tool\_use.name이 200자를 초과합니다 @@ -2362,7 +2394,7 @@ Claude Code는 응답이 도착할 때와 저장된 대화를 로드할 때 이 **할 일:** -* `claude update`를 실행한 다음 대화를 재개합니다. 업데이트된 버전은 기록을 로드할 때 과도하게 긴 이름을 복구하므로 막힌 대화가 다시 작동합니다. +* `claude update`를 실행한 다음 대화를 재개합니다. 업데이트된 버전은 트랜스크립트를 로드할 때 과도하게 긴 이름을 복구하므로 막혔던 대화가 다시 작동합니다. v2.1.281 이전에는 과도하게 긴 이름이 기록에 남아 있었고 API는 `/compact` 및 `--resume`을 포함하여 대화를 다시 보내는 모든 요청을 거부했으므로 이 오류가 반복되고 대화가 막혔습니다. @@ -2370,7 +2402,7 @@ v2.1.281 이전에는 과도하게 긴 이름이 기록에 남아 있었고 API 선택한 모델에 문제가 있습니다

-구성된 모델 이름을 인식하지 못했거나 계정이 이에 대한 액세스 권한이 없습니다. v2.1.160부터 뒤따르는 힌트는 표시 표면에 따라 다릅니다. +구성된 모델 이름을 인식하지 못했거나 계정에 해당 모델에 대한 액세스 권한이 없습니다. v2.1.160부터 뒤따르는 힌트(여기서는 대화형 형식으로 표시)는 사용 환경에 따라 다릅니다. ```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. @@ -2379,86 +2411,88 @@ There's an issue with the selected model (claude-...). It may not exist or you m **할 일:** * **대화형 CLI**: `/model`을 실행하여 계정에서 사용 가능한 모델 중에서 선택합니다. -* **비대화형 모드(`-p`)**: 유효한 별칭 또는 ID로 `--model`을 전달하거나 [`ANTHROPIC_MODEL`](/docs/ko/env-vars)을 설정합니다. 오류 텍스트는 이 표면에서 `Run --model`을 표시합니다. -* **Agent SDK**: 모델이 프로그래밍 방식으로 설정되므로 오류 텍스트는 힌트를 생략합니다. TypeScript에서 [`Options`의 `model`](/docs/ko/agent-sdk/typescript#options)을 설정하거나 Python에서 [`ClaudeAgentOptions(model=...)`](/docs/ko/agent-sdk/python#claudeagentoptions)을 설정하고 구조화된 `model_not_found` 오류를 처리하여 자신의 재시도 또는 모델 선택기를 표시합니다. -* `sonnet` 또는 `opus`와 같은 별칭을 전체 버전 ID 대신 사용합니다. 별칭은 유지 관리되는 기본값으로 확인되므로 오래되지 않습니다. [모델 구성](/docs/ko/model-config)을 참조하십시오. -* 잘못된 모델이 CLI에서 계속 돌아오면 어딘가에 오래된 ID가 설정되어 있습니다. [우선순위 순서](/docs/ko/model-config#setting-your-model)로 모델을 설정할 수 있는 위치를 확인하고 오래된 값을 제거합니다. -* Claude Code는 만료된 claude.ai 로그인을 [로그인 만료됨](#login-expired)으로 보고하며, 이 오류로는 보고하지 않습니다. v2.1.206 이전에는 더 이상 새로 고칠 수 없는 만료된 로그인이 모든 모델에서 실패했습니다. 이전 버전에서 이를 보면 `/login`을 실행합니다. +* **비대화형 모드(`-p`)**: 유효한 별칭 또는 ID로 `--model`을 전달하거나 [`ANTHROPIC_MODEL`](/docs/ko/env-vars)을 설정합니다. 이 사용 환경에서는 오류 텍스트에 `Run --model`이 표시됩니다. +* **Agent SDK**: 모델이 프로그래밍 방식으로 설정되므로 오류 텍스트는 힌트를 생략합니다. TypeScript에서 [`Options`의 `model`](/docs/ko/agent-sdk/typescript#options)을 설정하거나 Python에서 [`ClaudeAgentOptions(model=...)`](/docs/ko/agent-sdk/python#claudeagentoptions)을 설정하고, 구조화된 `model_not_found` 오류를 처리하여 자체 재시도 또는 모델 선택기를 표시합니다. +* 전체 버전 ID 대신 `sonnet` 또는 `opus`와 같은 별칭을 사용합니다. 별칭은 유지 관리되는 기본값으로 확인되므로 오래된 값이 되지 않습니다. [모델 구성](/docs/ko/model-config)을 참조하십시오. +* 잘못된 모델이 CLI에서 계속 다시 나타나면 어딘가에 오래된 ID가 설정되어 있습니다. [우선순위 순서](/docs/ko/model-config#setting-your-model)대로 모델을 설정할 수 있는 위치를 확인하고 오래된 값을 제거합니다. +* Claude Code는 만료된 claude.ai 로그인을 이 오류가 아닌 [로그인 만료됨](#login-expired)으로 보고합니다. v2.1.206 이전에는 더 이상 새로 고칠 수 없는 만료된 로그인으로 인해 모든 모델이 이 오류로 실패했습니다. 이전 버전에서 이를 보면 `/login`을 실행합니다. * Google Cloud의 Agent Platform 배포의 경우 [Google Cloud의 Agent Platform 문제 해결](/docs/ko/google-vertex-ai#troubleshooting)을 참조하십시오.

모델이 인식된 모델 ID가 아닙니다

-모델 전환에 전달한 문자열이 Claude Code가 모델로 사용할 수 있는 것이 아니므로 전환을 거부했고 세션은 현재 모델을 유지합니다. 모델이 최신 Claude Code 버전만 지원하는 별칭이거나 ID의 오타일 때 이 오류를 받을 수 있습니다. v2.1.200 이전에는 Claude Code가 문자열을 저장했고 [선택한 모델에 문제가 있습니다](#theres-an-issue-with-the-selected-model)로 다음 요청에서 실패했습니다. +모델 전환에 전달한 문자열이 Claude Code가 모델로 사용할 수 있는 것이 아니므로 요청을 보내지 않고 전환을 거부했으며 세션은 현재 모델을 유지합니다. 이 오류는 [Agent SDK](/docs/ko/agent-sdk/typescript) `setModel()` 메서드를 통해 모델을 설정할 때, [Desktop 앱](/docs/ko/desktop)처럼 Claude Code CLI를 대신 실행하는 앱이 모델을 설정할 때, 또는 [Remote Control](/docs/ko/remote-control)로 연결된 장치에서 모델을 선택할 때 발생할 수 있습니다. v2.1.200 이전에는 Claude Code가 문자열을 저장했고 다음 요청에서 [선택한 모델에 문제가 있습니다](#theres-an-issue-with-the-selected-model)로 실패했습니다. ```text theme={null} Model "Sonnet5" is not a recognized model id. Did you mean 'claude-sonnet-5'? ``` -이 예에서 앱이 표시 이름 `Sonnet 5`를 보냈으며, 메시지는 공백 없이 반복합니다. 뒤따르는 힌트는 가장 가까운 일치하는 별칭 또는 모델 ID를 표시합니다. 충분히 가까운 것이 없으면 `Run /model to see available models.`로 읽습니다. [Desktop 앱](/docs/ko/desktop)이 시작하는 세션에서 일치하지 않는 힌트는 `Switch to a different model.`로 읽습니다. +이 예에서는 앱이 표시 이름 `Sonnet 5`를 보냈으며, 메시지는 이를 공백 없이 반복합니다. 뒤따르는 힌트는 가장 가깝게 일치하는 별칭 또는 모델 ID를 표시합니다. 충분히 가까운 것이 없으면 대신 `Run /model to see available models.`로 표시됩니다. [Desktop 앱](/docs/ko/desktop)이 시작하는 세션에서는 일치하는 항목이 없을 때의 힌트가 `Switch to a different model.`로 표시됩니다. + +Anthropic API에서 Agent SDK 또는 앱을 통해 전환하는 경우, 표시 이름이나 빈 문자열처럼 모델 ID가 될 수 없는 문자열만 이 오류를 받습니다. -Claude Code는 전환이 요청되는 순간 로컬에서 이 오류를 생성하며, API 요청이 이루어지기 전입니다. [Agent SDK](/docs/ko/agent-sdk/typescript) `setModel()` 메서드를 통해 또는 [Desktop 앱](/docs/ko/desktop)과 같이 Claude Code CLI를 실행하는 앱을 통해 모델이 설정되거나 [Remote Control](/docs/ko/remote-control)을 통해 연결된 장치에서 모델을 선택할 때 적용됩니다. v2.1.260 이전에는 확인이 Remote Control 선택을 다루지 않았으므로 Claude Code가 선택을 적용했고 다음 요청이 [선택한 모델에 문제가 있습니다](#theres-an-issue-with-the-selected-model)로 실패했습니다. +Remote Control 장치에서 모델을 선택하면 Claude Code가 문자열을 로컬에서 확인합니다. 모델 별칭, Claude Code가 나열하거나 사용자가 구성한 모델, 또는 `claude-`로 시작하는 ID가 아닌 모든 문자열은 이 오류를 받으며, `claud-sonnet-5`와 같이 오타가 있는 ID도 포함됩니다. v2.1.260 이전에는 이 확인이 Remote Control 선택을 다루지 않았으므로 인식되지 않은 문자열이 적용되어 다음 요청에서 실패했습니다. **할 일:** * 인수 없이 `/model`을 실행하여 선택기를 열고 계정에서 사용 가능한 모델 중에서 선택한 다음 거기에 표시된 별칭 또는 ID를 전달합니다. -* 최신 Claude Code 버전이 지원하는 별칭을 사용한 경우 `claude update`를 실행합니다. `claude-`로 시작하는 전체 ID는 모델이 Claude Code 버전보다 최신이어도 이 로컬 확인을 통과합니다. 서버는 여전히 해당 모델에 대한 최소 버전을 요구할 수 있습니다. [Claude Code가 이 모델을 지원하지 않습니다](#claude-code-does-not-support-this-model)를 참조하십시오. -* v2.1.200 이전에 저장된 모델은 이 확인으로 복구되지 않습니다. 오래된 값이 계속 돌아오면 [모델 설정](/docs/ko/model-config#setting-your-model)에 나열된 위치에서 제거합니다. -* 확인은 Anthropic API에서만 실행됩니다. 사용자 정의 `ANTHROPIC_BASE_URL`을 포함한 다른 제공자 또는 게이트웨이에서 제공자는 모델 이름을 정의하므로 Claude Code는 모든 문자열을 허용하고 통과합니다. Claude Code는 여전히 요청 시간에 [인식되지 않은 모델 진단 줄](#unrecognized-model-id-on-a-request)을 모든 제공자에서 쓸 수 있습니다. +* 최신 Claude Code 버전에서만 지원하는 별칭을 사용한 경우 `claude update`를 실행하거나 대신 모델의 전체 ID를 전달합니다. 서버는 여전히 해당 모델에 대해 최소 Claude Code 버전을 요구할 수 있습니다. [Claude Code가 이 모델을 지원하지 않습니다](#claude-code-does-not-support-this-model)를 참조하십시오. +* v2.1.200 이전에 저장된 모델은 이 확인으로 복구되지 않습니다. 오래된 값이 계속 다시 나타나면 [모델 설정](/docs/ko/model-config#setting-your-model)에 나열된 위치에서 제거합니다. +* Anthropic API 이외의 제공자나 게이트웨이 또는 사용자 지정 `ANTHROPIC_BASE_URL` 뒤에서는 빈 문자열만 이 오류를 받습니다. Claude Code는 여전히 모든 제공자에서 요청 시점에 [인식되지 않은 모델 진단 줄](#unrecognized-model-id-on-a-request)을 기록할 수 있습니다.

모델을 찾을 수 없습니다

-`/model `으로 모델을 선택했고 Claude Code가 해당 이름의 모델이 존재하는지 확인할 수 없었습니다. 이름이 [모델 별칭](/docs/ko/model-config#model-aliases) 또는 Claude Code가 로컬로 허용하는 다른 철자가 아닌 경우 `/model`은 최소 API 요청으로 이를 확인하고 이 오류는 일반적으로 API 엔드포인트의 응답입니다. 공백을 포함하는 것과 같이 모델 ID가 될 수 없는 이름은 동일한 메시지를 받습니다. +이름으로 모델을 전환했고 Claude Code가 해당 이름의 모델이 존재하는지 확인할 수 없었습니다. 이름이 [모델 별칭](/docs/ko/model-config#model-aliases) 또는 Claude Code가 로컬에서 허용하는 다른 표기가 아닌 경우 Claude Code는 최소 API 요청으로 이를 확인하며, 이 오류는 일반적으로 API 엔드포인트의 응답입니다. `/model `에서는 공백을 포함하는 이름처럼 애초에 모델 ID가 될 수 없는 이름도 동일한 메시지를 받습니다. ```text theme={null} Model 'claude-opus-9' not found ``` -제공자별 모델 ID를 가진 제공자에서 메시지는 대체 모델에 대한 제공자의 ID를 표시하는 `Try '...' instead` 제안을 추가할 수 있습니다. +제공자별 모델 ID를 사용하는 제공자에서는 메시지에 대체 모델의 제공자 ID를 표시하는 `Try '...' instead` 제안이 추가될 수 있습니다. **할 일:** -* 인수 없이 `/model`을 실행하고 계정에서 사용 가능한 모델 중에서 선택하거나 `sonnet`과 같은 [모델 별칭](/docs/ko/model-config#model-aliases)을 사용합니다. 이는 유지 관리되는 기본값으로 확인됩니다. -* 전체 ID를 입력한 경우 제공자의 모델 카탈로그에 대해 확인합니다. 새로 출시된 모델은 제공자 또는 지역이 제공하기 전에 Anthropic API에서 사용 가능할 수 있습니다. -* Agent SDK에서 `setModel()`은 이 메시지로 실패하고 세션은 이전 모델에서 계속 실행됩니다. TypeScript SDK에서 [`supportedModels()`](/docs/ko/agent-sdk/typescript#query-object)를 호출하여 전환할 수 있는 모델을 나열합니다. -* v2.1.265 이전에는 `/model`도 `opusplan[1m]` 별칭 철자를 이 오류로 거부했습니다. 이러한 버전에서는 Claude Code를 업데이트하거나 [설정](/docs/ko/model-config#setting-your-model)에서 또는 `--model` 대신 모델을 설정합니다. +* 인수 없이 `/model`을 실행하고 계정에서 사용 가능한 모델 중에서 선택하거나, 유지 관리되는 기본값으로 확인되는 `sonnet`과 같은 [모델 별칭](/docs/ko/model-config#model-aliases)을 사용합니다. +* 전체 ID를 입력한 경우 제공자의 모델 카탈로그와 대조해 확인합니다. 새로 출시된 모델은 제공자나 리전에서 제공되기 전에 Anthropic API에서 먼저 사용 가능할 수 있습니다. +* Agent SDK에서 `setModel()`은 이 메시지로 실패하고 세션은 이전 모델에서 계속 실행됩니다. TypeScript SDK에서는 [`supportedModels()`](/docs/ko/agent-sdk/typescript#query-object)를 호출하여 전환할 수 있는 모델을 나열합니다. +* v2.1.265 이전에는 `/model`이 `opusplan[1m]` 별칭 표기도 이 오류로 거부했습니다. 이러한 버전에서는 Claude Code를 업데이트하거나, 대신 [설정](/docs/ko/model-config#setting-your-model)에서 또는 `--model`로 모델을 설정합니다.

선택한 모델을 API로 확인할 수 없습니다

-[Agent SDK](/docs/ko/agent-sdk/typescript) `setModel()` 메서드를 통해 또는 [Desktop 앱](/docs/ko/desktop)과 같이 Claude Code CLI를 실행하는 앱을 통해 모델을 전환했고, 모델 ID를 API 엔드포인트로 확인하는 요청이 5초 이내에 응답을 받지 못했습니다. 세션은 현재 모델을 유지합니다. +[Agent SDK](/docs/ko/agent-sdk/typescript) `setModel()` 메서드를 통해 또는 [Desktop 앱](/docs/ko/desktop)과 같이 Claude Code CLI를 대신 실행하는 앱을 통해 모델을 전환했고, 모델 ID를 API 엔드포인트로 확인하는 요청이 5초 이내에 응답을 받지 못했습니다. 세션은 현재 모델을 유지합니다. ```text theme={null} Couldn't confirm model "claude-sonnet-5" with the API. Try again, or run /model to see available models. ``` -[Desktop 앱](/docs/ko/desktop)이 시작하는 세션에서 메시지는 `Try again.`에서 끝납니다. +[Desktop 앱](/docs/ko/desktop)이 시작하는 세션에서는 메시지가 `Try again.`에서 끝납니다. **할 일:** * 모델로 다시 전환합니다. -* 전환이 계속 실패하면 Claude Code가 API 엔드포인트에 도달할 수 있는지 확인합니다. [네트워크 및 연결 오류](#network-and-connection-errors)를 참조하십시오. +* 전환이 계속 실패하면 Claude Code가 API 엔드포인트에 연결할 수 있는지 확인합니다. [네트워크 및 연결 오류](#network-and-connection-errors)를 참조하십시오.

선택한 모델을 확인할 때 API 오류

-`/model `으로 모델을 선택했거나 앱이 세션에 연결되어 전환을 요청했습니다. API가 Claude Code가 모델을 확인하기 위해 보내는 최소 요청을 거부했습니다. 이유가 없는 이유(예: 속도 제한 또는 서버 오류)로 인해. 세션은 현재 모델을 유지하고 메시지는 그렇게 말하면서 끝납니다: +`/model `으로 모델을 선택했거나 세션에 연결된 앱이 전환을 요청했습니다. Claude Code가 모델을 확인하기 위해 보내는 최소 요청을 API가 별도 항목이 없는 이유(예: 속도 제한 또는 서버 오류)로 거부했습니다. 세션은 현재 모델을 유지하며, 메시지 끝에 그 사실이 표시됩니다: ```text theme={null} API error: 429 · model not changed ``` -메시지의 중간은 HTTP 상태 및 서버의 자체 설명입니다. +메시지의 중간 부분은 HTTP 상태와 서버 자체의 설명입니다. **할 일:** -* 서버의 설명에 따라 행동합니다. 속도 제한 또는 5xx 상태의 경우 기다렸다가 모델을 다시 선택합니다. -* 자신의 표현이 있는 거부는 [모델을 찾을 수 없습니다](#model-not-found) 및 [모델이 조직의 설정으로 제한됩니다](#model-is-restricted-by-your-organizations-settings)와 같은 주변 항목으로 다룹니다. +* 서버의 설명에 따라 조치합니다. 속도 제한 또는 5xx 상태의 경우 기다렸다가 모델을 다시 선택합니다. +* 고유한 문구가 있는 거부는 [모델을 찾을 수 없습니다](#model-not-found) 및 [모델이 조직의 설정으로 제한됩니다](#model-is-restricted-by-your-organizations-settings)와 같은 주변 항목에서 다룹니다.

Claude Opus는 Claude Pro 플랜에서 사용할 수 없습니다 @@ -2470,136 +2504,136 @@ API error: 429 · model not changed 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. ``` -Claude Desktop 앱이 실행하는 세션에서 메시지는 명령을 표시하는 대신 `sign out and sign in again`이라고 말합니다. +Claude Desktop 앱이 실행하는 세션에서는 메시지가 명령을 표시하는 대신 `sign out and sign in again`이라고 안내합니다. **할 일:** * `/model`을 실행하고 플랜에 포함된 모델을 선택합니다. -* 최근에 플랜을 업그레이드했는데도 여전히 이를 보면 `/logout`을 실행한 다음 `/login`을 실행합니다. 저장된 토큰은 로그인 시점의 플랜을 반영하므로 claude.ai에서 업그레이드하면 다시 인증할 때까지 기존 세션에서 적용되지 않습니다. +* 최근에 플랜을 업그레이드했는데도 여전히 이 메시지가 표시되면 `/logout`을 실행한 다음 `/login`을 실행합니다. 저장된 토큰은 로그인 시점의 플랜을 반영하므로 claude.ai에서 업그레이드해도 다시 인증할 때까지 기존 세션에는 적용되지 않습니다. * 각 플랜에 포함된 모델에 대해서는 [claude.com/pricing](https://claude.com/pricing)을 참조하십시오.

Claude Code가 이 모델을 지원하지 않습니다

-API가 Claude Code 버전이 필요한 최소값 아래에 있기 때문에 400으로 요청을 거부했습니다. 선택한 모델이 최신 버전을 요구하거나(서버가 모델별로 확인) 조직의 정책이 하나를 요구합니다. 400은 오류 코드 `claude_code_version_too_old`를 포함하고 메시지는 어떤 최소값이 적용되는지 말합니다. +Claude Code 버전이 필요한 최소 버전보다 낮기 때문에 API가 400으로 요청을 거부했습니다. 선택한 모델이 더 최신 버전을 요구하거나(서버가 모델별로 확인), 조직의 정책이 이를 요구합니다. 400에는 오류 코드 `claude_code_version_too_old`가 포함되며, 메시지에 어떤 최소 버전이 적용되는지 표시됩니다. ```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. ``` -조직 정책 표현은 다음과 같이 읽습니다: +조직 정책 문구는 다음과 같습니다: ```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. ``` -요청을 만든 Claude Code 바이너리가 보고하는 버전이 API가 확인하는 버전입니다. +API가 확인하는 버전은 요청을 보낸 Claude Code 바이너리가 보고하는 버전입니다. **할 일:** -해당 바이너리를 업데이트한 다음 새 세션을 시작합니다. 바이너리가 어디에서 왔는지에 따라 방법이 결정되며, [자체 호스팅 환경](/docs/ko/self-hosted-environments-deploy#pin-the-version) 제외: +해당 바이너리를 업데이트한 다음 새 세션을 시작합니다. [자체 호스팅 환경](/docs/ko/self-hosted-environments-deploy#pin-the-version)을 제외하면 업데이트 방법은 바이너리의 출처에 따라 결정됩니다: -| 요청을 만든 바이너리 | 업데이트 방법 | +| 요청을 보낸 바이너리 | 업데이트 방법 | | :- | :- | | 설치한 Claude Code | `claude update` 실행 | | Claude Desktop 앱 | 앱 업데이트 | -| [VS Code 확장](/docs/ko/vs-code)이 번들로 제공하는 바이너리 | 확장 업데이트 | -| Agent SDK 패키지가 번들로 제공하는 바이너리 | [SDK 패키지 업그레이드](/docs/ko/agent-sdk/hosting#runtime-dependencies), 그 다음 애플리케이션 다시 시작. [컴파일된 단일 파일 실행 파일](/docs/ko/agent-sdk/typescript#compile-to-a-single-executable)에서 다시 빌드 | +| [VS Code 확장](/docs/ko/vs-code)에 번들로 포함된 바이너리 | 확장 업데이트 | +| Agent SDK 패키지에 번들로 포함된 바이너리 | [SDK 패키지 업그레이드](/docs/ko/agent-sdk/hosting#runtime-dependencies) 후 애플리케이션 다시 시작. [컴파일된 단일 파일 실행 파일](/docs/ko/agent-sdk/typescript#compile-to-a-single-executable)에서는 다시 빌드 | -* 모델별 표현의 경우 현재 세션에서 다른 모델로 전환하여 계속 작업할 수 있습니다: CLI에서 `/model`을 실행하거나, 스트리밍 입력 모드에서 TypeScript SDK의 `Query` 객체에서 [`setModel()`](/docs/ko/agent-sdk/typescript#query-object)을 호출하거나, Python SDK의 `ClaudeSDKClient`에서 [`set_model()`](/docs/ko/agent-sdk/python#claudesdkclient)을 호출합니다. -* 조직 정책 표현의 경우 계속하기 전에 업데이트합니다. +* 모델별 문구의 경우 다른 모델로 전환하여 현재 세션에서 계속 작업할 수 있습니다: CLI에서 `/model`을 실행하거나, 스트리밍 입력 모드에서 TypeScript SDK의 `Query` 객체에서 [`setModel()`](/docs/ko/agent-sdk/typescript#query-object)을 호출하거나, Python SDK의 `ClaudeSDKClient`에서 [`set_model()`](/docs/ko/agent-sdk/python#claudesdkclient)을 호출합니다. +* 조직 정책 문구의 경우 계속하기 전에 업데이트합니다.

모델이 조직의 설정으로 제한됩니다

-조직 관리자가 claude.ai 관리 콘솔에서 이 모델을 비활성화했거나 관리 설정이 [`availableModels`](/docs/ko/model-config#restrict-model-selection) 허용 목록 또는 [`deniedModels`](/docs/ko/model-config#block-specific-models-or-versions) 목록을 통해 제외합니다. 알림은 `--model`, `ANTHROPIC_MODEL` 또는 `model` 설정이 제한된 모델을 표시할 때 시작 시 나타나며 세션이 대신 사용하는 모델을 표시합니다. 관리 설정이 세션이 사용할 수 있는 허용된 모델을 남기지 않으면 [관리 설정이 기본 모델을 차단합니다](#managed-settings-block-the-default-model)를 참조하십시오. 대체 알림은 관리자가 claude.ai 관리 콘솔에서 세션이 실행 중인 모델을 비활성화한 후 세션 중간에도 나타날 수 있습니다. +조직 관리자가 claude.ai 관리자 콘솔에서 이 모델을 비활성화했거나, 관리형 설정이 [`availableModels`](/docs/ko/model-config#restrict-model-selection) 허용 목록 또는 [`deniedModels`](/docs/ko/model-config#block-specific-models-or-versions) 목록을 통해 이 모델을 제외합니다. 이 알림은 `--model`, `ANTHROPIC_MODEL` 또는 `model` 설정이 제한된 모델을 지정했을 때 시작 시 나타나며, 세션이 대신 사용하는 모델을 표시합니다. 관리형 설정이 세션에서 사용할 수 있는 허용된 모델을 남기지 않는 경우 [관리형 설정이 기본 모델을 차단합니다](#managed-settings-block-the-default-model)를 참조하십시오. 대체 알림은 관리자가 claude.ai 관리자 콘솔에서 세션이 실행 중인 모델을 비활성화한 후 세션 도중에도 나타날 수 있습니다. ```text theme={null} Model "claude-opus-4-8" is restricted by your organization's settings. Using claude-sonnet-4-6 instead. ``` -제한된 모델에 대해 `/model `을 입력하면 거부되고 세션은 현재 모델을 유지합니다. 관리 콘솔에서 비활성화된 모델의 경우 거부는 `Model '' is restricted by your organization's settings. Run /model to choose a different model.`로 읽습니다. 관리 설정이 제외하는 모델의 경우 `Model '' is not available. Your organization restricts model selection.`로 읽습니다. +제한된 모델에 대해 `/model `을 입력하면 거부되고 세션은 현재 모델을 유지합니다. 관리자 콘솔에서 비활성화된 모델의 경우 거부 메시지는 `Model '' is restricted by your organization's settings. Run /model to choose a different model.`입니다. 관리형 설정이 제외하는 모델의 경우 `Model '' is not available. Your organization restricts model selection.`입니다. -에이전트, 스킬 또는 명령 이름이 앞에 붙은 알림은 제한이 해당 [하위 에이전트의 요청된 모델](/docs/ko/sub-agents#choose-a-model)에 적용되었음을 의미합니다: 하위 에이전트는 대체 모델에서 실행되고 세션의 모델은 변경되지 않습니다. v2.1.223 이전에는 Claude Code가 Agent 도구로 시작된 하위 에이전트에 대해서만 알림을 표시했습니다. +알림 앞에 에이전트, 스킬 또는 명령 이름이 붙어 있으면 제한이 해당 [서브에이전트의 요청된 모델](/docs/ko/sub-agents#choose-a-model)에 적용되었음을 의미합니다: 서브에이전트는 대체 모델에서 실행되고 세션의 모델은 변경되지 않습니다. v2.1.223 이전에는 Claude Code가 Agent 도구로 시작된 서브에이전트에 대해서만 알림을 표시했습니다. -Claude Code는 모델 패밀리 별칭(하나의 `opus`, `sonnet`, `haiku` 또는 `fable`)을 최신 버전이 아닌 해당 패밀리에 대한 요청으로 취급합니다. Anthropic API 및 [Claude Platform on AWS](/docs/ko/claude-platform-on-aws)에서 제한된 패밀리 별칭은 조직의 설정이 허용하는 패밀리의 최신 버전으로 확인되고 대체 알림은 해당 버전을 표시합니다. Claude Code는 패밀리의 모든 버전이 제한된 경우에만 `/model `를 거부합니다. v2.1.205 이전에는 패밀리 별칭이 최신 버전만을 기반으로 대체되거나 거부되었으며, 같은 패밀리의 이전 버전이 허용되었을 때도 마찬가지였습니다. +Claude Code는 모델 패밀리 별칭(`opus`, `sonnet`, `haiku`, `fable` 중 하나)을 최신 버전이 아닌 해당 패밀리에 대한 요청으로 취급합니다. Anthropic API 및 [Claude Platform on AWS](/docs/ko/claude-platform-on-aws)에서 제한된 패밀리 별칭은 조직의 설정이 허용하는 해당 패밀리의 최신 버전으로 확인되며, 대체 알림은 해당 버전을 표시합니다. Claude Code는 패밀리의 모든 버전이 제한된 경우에만 `/model `를 거부합니다. v2.1.205 이전에는 같은 패밀리의 이전 버전이 허용되더라도 패밀리 별칭이 최신 버전만을 기준으로 대체되거나 거부되었습니다. **할 일:** * `/model`을 실행하여 조직이 허용하는 모델 중에서 선택합니다. 제한된 모델은 선택기에서 숨겨집니다. -* 제한된 모델이 `--model`, `ANTHROPIC_MODEL`, 설정 파일의 `model` 필드 또는 [하위 에이전트](/docs/ko/sub-agents#choose-a-model), 스킬 또는 명령의 `model` frontmatter에 설정된 경우 해당 값을 제거하거나 업데이트하여 알림이 반복되지 않도록 합니다. -* 제한된 모델에 액세스해야 하면 조직 관리자에게 활성화를 요청합니다. [조직 모델 제한](/docs/ko/model-config#organization-model-restrictions)을 참조하십시오. +* 제한된 모델이 `--model`, `ANTHROPIC_MODEL`, 설정 파일의 `model` 필드 또는 [서브에이전트](/docs/ko/sub-agents#choose-a-model), 스킬 또는 명령의 `model` frontmatter에 설정된 경우 해당 값을 제거하거나 업데이트하여 알림이 반복되지 않도록 합니다. +* 제한된 모델에 액세스해야 하는 경우 조직 관리자에게 활성화를 요청합니다. [조직 모델 제한](/docs/ko/model-config#organization-model-restrictions)을 참조하십시오.

기본값으로 전환할 수 없습니다

-기본 모델을 선택했습니다. 예를 들어 `/model` 선택기에서 기본값 행을 선택하거나 `/model default`를 입력했습니다. Claude Code가 전환을 거부했으므로 세션은 현재 모델을 유지합니다. +기본 모델을 선택했습니다. 예를 들어 `/model` 선택기에서 Default 행을 선택하거나 `/model default`를 입력했습니다. Claude Code가 전환을 거부했으므로 세션은 현재 모델을 유지합니다. ```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". ``` -콜론 뒤의 표현은 전환을 차단한 것을 표시합니다: +콜론 뒤의 문구는 무엇이 전환을 차단했는지 나타냅니다: -* **`your organization's managed settings block it ... in "deniedModels"`**: 관리 거부 목록이 기본 옵션이 확인되는 모델을 차단합니다. -* **`your organization allows only the models listed in "availableModels"`**: 관리 [`availableModels`](/docs/ko/model-config#restrict-model-selection) 허용 목록이 [`availableModelsMatch`](/docs/ko/settings-reference#availablemodelsmatch)를 `"exact"`로 설정하여 기본 옵션이 확인되는 모델을 제외합니다. -* **`Claude Code couldn't read your organization's managed settings to check which models they allow`**: [관리 설정](/docs/ko/managed-settings)을 읽을 수 없었고 Claude Code는 확인되지 않은 전환을 적용하는 대신 거부합니다. +* **`your organization's managed settings block it ... in "deniedModels"`**: 관리형 거부 목록이 Default 옵션이 확인되는 모델을 차단합니다. +* **`your organization allows only the models listed in "availableModels"`**: [`availableModelsMatch`](/docs/ko/settings-reference#availablemodelsmatch)가 `"exact"`로 설정된 관리형 [`availableModels`](/docs/ko/model-config#restrict-model-selection) 허용 목록이 Default 옵션이 확인되는 모델을 제외합니다. +* **`Claude Code couldn't read your organization's managed settings to check which models they allow`**: [관리형 설정](/docs/ko/managed-settings)을 읽을 수 없었고, Claude Code는 확인되지 않은 전환을 적용하는 대신 거부합니다. **할 일:** -* [`deniedModels`](/docs/ko/settings-reference#deniedmodels) 및 `availableModels` 표현의 경우 `/model`을 실행하고 조직이 허용하는 모델을 이름으로 선택합니다. -* 관리자에게 메시지가 표시하는 관리 설정을 업데이트하도록 요청합니다. -* `couldn't read` 표현의 경우 Claude Code를 다시 시작합니다. 계속 발생하면 관리자에게 관리 설정을 확인하도록 요청합니다. +* [`deniedModels`](/docs/ko/settings-reference#deniedmodels) 및 `availableModels` 문구의 경우 `/model`을 실행하고 조직이 허용하는 모델을 이름으로 선택합니다. +* 관리자에게 메시지가 지정하는 관리형 설정을 업데이트하도록 요청합니다. +* `couldn't read` 문구의 경우 Claude Code를 다시 시작합니다. 계속 발생하면 관리자에게 관리형 설정을 확인하도록 요청합니다. -세션이 대신 이러한 관리 설정 아래에서 `Claude Code can't start` 메시지로 시작하지 못하면 [관리 설정이 기본 모델을 차단합니다](#managed-settings-block-the-default-model)를 참조하십시오. +이러한 관리형 설정에서 세션이 대신 `Claude Code can't start` 메시지와 함께 시작되지 않는 경우 [관리형 설정이 기본 모델을 차단합니다](#managed-settings-block-the-default-model)를 참조하십시오.

모델 전환이 PreModelSwitch 훅에 의해 차단되었습니다

-[PreModelSwitch 훅](/docs/ko/hooks#premodelswitch)이 사용자 또는 클라이언트가 요청한 모델 전환을 승인하지 않았으므로 세션은 현재 모델을 유지합니다. 전환이 명령을 입력한 것이 아닌 [Agent SDK](/docs/ko/agent-sdk/overview) 호스트 또는 [Remote Control](/docs/ko/remote-control)에서 온 경우 메시지는 대상 모델을 표시하지 않고 `Model switch blocked by a PreModelSwitch hook`으로 읽습니다. +[PreModelSwitch 훅](/docs/ko/hooks#premodelswitch)이 사용자 또는 클라이언트가 요청한 모델 전환을 승인하지 않았으므로 세션은 현재 모델을 유지합니다. 전환이 사용자가 입력한 명령이 아니라 [Agent SDK](/docs/ko/agent-sdk/overview) 호스트 또는 [Remote Control](/docs/ko/remote-control)에서 온 경우 메시지는 대상 모델을 표시하지 않고 `Model switch blocked by a PreModelSwitch hook`으로 표시됩니다. ```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. ``` -콜론 뒤의 이유는 전환을 거부한 것을 말합니다: +콜론 뒤의 이유는 무엇이 전환을 거부했는지 나타냅니다: -* **훅이 작성한 이유**: PreModelSwitch 훅이 [전환을 거부하거나 확인을 요청](/docs/ko/hooks#premodelswitch-decision-control)할 때 해당 이유를 제공했습니다. 요청하는 것을 해결하거나 훅이 허용하는 모델을 선택합니다. -* **`PreModelSwitch hook did not respond before its timeout`**: 훅이 [timeout](/docs/ko/hooks#timeouts) 전에 응답하지 않으면 전환을 차단합니다. 행이 걸린 명령을 수정하거나 해당 훅의 `timeout`을 높인 다음 다시 전환합니다. -* **`confirmation required, and this session cannot ask`**: 훅이 이유 없이 `ask`로 응답했고 제어 요청이 확인 프롬프트를 표시할 방법이 없습니다. [`-p` 실행](/docs/ko/headless)의 제어 요청은 이유 뒤에 `(run /model interactively to confirm)`으로 동일한 조건을 보고합니다. 대화형 세션에서 전환을 만들거나 이 모델에 대한 훅의 결정을 변경합니다. -* **`so organization-managed PreModelSwitch hooks could not be checked`**: Claude Code가 조직의 [관리 플러그인](/docs/ko/settings-reference#enabledplugins)이 제공하는 PreModelSwitch 훅을 알 수 없습니다. 예를 들어 관리 플러그인이 로드되지 않았기 때문입니다. 이러한 훅 중 하나가 전환을 차단할 수 있으므로 Claude Code는 확인되지 않은 전환을 적용하는 대신 거부합니다. 이유의 시작은 실패한 것을 표시합니다. Claude Code는 모든 전환 시도에서 다시 확인하므로 이후 지워진 실패는 차단을 중지합니다. 계속 실패하면 `claude --debug`를 실행하고 다시 전환하여 세부 정보를 캡처한 다음 플러그인을 수정하거나 관리자에게 수정을 요청합니다. -* **`a PreModelSwitch hook failed before answering`** 또는 **`PreModelSwitch hooks were cancelled (the control stream closed) before answering`**: 훅 실행이 판정 없이 끝났고 Claude Code는 이를 승인으로 취급하지 않습니다. `claude --debug`를 실행하여 실패한 것을 확인한 다음 다시 전환합니다. +* **훅이 작성한 이유**: PreModelSwitch 훅이 [전환을 거부하거나 확인을 요청](/docs/ko/hooks#premodelswitch-decision-control)할 때 해당 이유를 제공했습니다. 요청 내용을 해결하거나 훅이 허용하는 모델을 선택합니다. +* **`PreModelSwitch hook did not respond before its timeout`**: [타임아웃](/docs/ko/hooks#timeouts) 전에 응답하지 않는 훅은 전환을 차단합니다. 멈춘 명령을 수정하거나 해당 훅의 `timeout`을 높인 다음 다시 전환합니다. +* **`confirmation required, and this session cannot ask`**: 훅이 이유 없이 `ask`로 응답했으며, 제어 요청에는 확인 프롬프트를 표시할 방법이 없습니다. [`-p` 실행](/docs/ko/headless)의 `/model` 명령은 이유 뒤에 `(run /model interactively to confirm)`을 붙여 동일한 조건을 보고합니다. 대화형 세션에서 전환하거나 이 모델에 대한 훅의 결정을 변경합니다. +* **`so organization-managed PreModelSwitch hooks could not be checked`**: Claude Code가 조직의 [관리형 플러그인](/docs/ko/settings-reference#enabledplugins)이 제공하는 PreModelSwitch 훅을 파악할 수 없었습니다. 예를 들어 관리형 플러그인이 로드되지 않은 경우입니다. 이러한 훅 중 하나가 전환을 차단할 수 있으므로 Claude Code는 확인되지 않은 전환을 적용하는 대신 거부합니다. 이유의 앞부분은 무엇이 실패했는지 나타냅니다. Claude Code는 모든 전환 시도마다 다시 확인하므로 이후 해소된 실패는 더 이상 차단하지 않습니다. 계속 실패하면 `claude --debug`를 실행하고 다시 전환하여 세부 정보를 캡처한 다음 플러그인을 수정하거나 관리자에게 수정을 요청합니다. +* **`a PreModelSwitch hook failed before answering`** 또는 **`PreModelSwitch hooks were cancelled (the control stream closed) before answering`**: 훅 실행이 판정 없이 끝났으며, Claude Code는 이를 승인으로 취급하지 않습니다. `claude --debug`를 실행하여 무엇이 실패했는지 확인한 다음 다시 전환합니다. -v2.1.260 이전에는 관리 플러그인 거부가 `plugin hooks could not be loaded, so PreModelSwitch hooks could not be checked; see the debug log`로 읽었습니다. Claude Code는 플러그인 로드를 한 번 재시도한 다음 세션의 이후 전환을 거부했습니다. 조직이 플러그인을 관리하지 않은 경우에도 마찬가지였습니다. 이러한 버전에서 세션을 다시 시작하여 플러그인 로드를 다시 실행합니다. +v2.1.260 이전에는 관리형 플러그인 거부 메시지가 `plugin hooks could not be loaded, so PreModelSwitch hooks could not be checked; see the debug log`였습니다. Claude Code는 플러그인 로드를 한 번 재시도한 다음, 조직이 관리하는 플러그인이 없는 경우에도 세션의 이후 전환을 거부했습니다. 이러한 버전에서는 세션을 다시 시작하여 플러그인 로드를 다시 실행합니다.

기본값으로 저장할 수 없었습니다

-모델을 기본값으로 저장하도록 선택했습니다. 예를 들어 `/model ` 또는 `/model` 선택기에서 `Enter`를 사용하고 Claude Code가 사용자 설정 파일 `~/.claude/settings.json`에 선택을 쓸 수 없었습니다. 전환 자체가 적용되었으므로 현재 세션은 선택한 모델에서 실행되지만 기본값은 변경되지 않으며 다음 세션은 이전 값에서 시작됩니다. +모델을 기본값으로 저장하도록 선택했지만(예: `/model ` 또는 `/model` 선택기에서 `Enter`), Claude Code가 사용자 설정 파일 `~/.claude/settings.json`에 선택을 쓸 수 없었습니다. 전환 자체는 적용되었으므로 현재 세션은 선택한 모델에서 실행되지만 기본값은 변경되지 않으며 다음 세션은 이전 값으로 시작됩니다. ```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) ``` -파일 경로 뒤의 이유는 실패한 것을 말합니다: +파일 경로 뒤의 이유는 무엇이 실패했는지 나타냅니다: -* **`can't be written ()`**: 쓰기가 운영 체제 오류 코드(예: 파일 또는 링크하는 파일이 쓰기를 거부하는 파일 시스템에 있을 때 `EROFS`)로 실패했습니다. 파일을 쓰기 가능하게 만들고 다시 전환합니다. 다른 도구가 파일을 생성하면 대신 해당 도구에서 `model` 키를 설정합니다. [Claude Code에서 만든 변경 사항이 새 세션에서 손실됩니다](/docs/ko/settings#a-change-you-made-in-claude-code-is-lost-in-new-sessions)를 참조하십시오. -* **`isn't valid JSON`**: 디스크의 파일이 구문 분석되지 않으며 Claude Code는 읽을 수 없는 내용을 덮어쓰지 않고 그대로 둡니다. 구문 오류를 수정한 다음 다시 전환합니다. [손상된 설정 파일 수정](/docs/ko/settings#fix-a-broken-settings-file)을 참조하십시오. +* **`can't be written ()`**: 쓰기가 괄호 안의 운영 체제 오류 코드로 실패했습니다. 예를 들어 파일 또는 파일이 링크하는 대상이 쓰기를 거부하는 파일 시스템에 있을 때 `EROFS`가 표시됩니다. 파일을 쓰기 가능하게 만들고 다시 전환합니다. 다른 도구가 파일을 생성하는 경우 대신 해당 도구에서 `model` 키를 설정합니다. [Claude Code에서 만든 변경 사항이 새 세션에서 사라집니다](/docs/ko/settings#a-change-you-made-in-claude-code-is-lost-in-new-sessions)를 참조하십시오. +* **`isn't valid JSON`**: 디스크의 파일이 구문 분석되지 않으며, Claude Code는 다시 읽을 수 없는 내용을 덮어쓰지 않도록 파일을 그대로 둡니다. 구문 오류를 수정한 다음 다시 전환합니다. [손상된 설정 파일 수정](/docs/ko/settings#fix-a-broken-settings-file)을 참조하십시오. -`couldn't confirm it was saved as your default (~/.claude/settings.json is still being written)` 끝나는 알림은 쓰기가 3초 후에 완료되지 않았음을 의미합니다. 백그라운드에서 계속되므로 기본값이 여전히 저장될 수 있습니다. 다음 세션이 어떤 모델에서 시작되는지 확인하거나 `/model `을 다시 실행합니다. +`couldn't confirm it was saved as your default (~/.claude/settings.json is still being written)`로 끝나는 알림은 3초가 지나도 쓰기가 완료되지 않았음을 의미합니다. 쓰기는 백그라운드에서 계속되므로 기본값이 여전히 저장될 수 있습니다. 다음 세션이 어떤 모델로 시작되는지 확인하거나 `/model `을 다시 실행합니다. -v2.1.265 이전에는 알림이 쓰기가 실패했을 때도 모델이 `saved as your default for new sessions`이라고 말했습니다. +v2.1.265 이전에는 쓰기가 실패한 경우에도 알림이 모델이 `saved as your default for new sessions`되었다고 표시했습니다.

- thinking.type.enabled은 이 모델에서 지원되지 않습니다 + thinking.type.enabled는 이 모델에서 지원되지 않습니다

-Claude Code 버전이 선택한 모델의 최소값보다 오래되었습니다. CLI가 모델이 더 이상 허용하지 않는 생각 구성을 보냈습니다. +Claude Code 버전이 선택한 모델의 최소 버전보다 오래되었습니다. CLI가 모델이 더 이상 허용하지 않는 사고 구성을 보냈습니다. ```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. @@ -2609,32 +2643,32 @@ API Error: 400 ... "thinking.type.enabled" is not supported for this model. Use * `claude update`를 실행하고 Claude Code를 다시 시작합니다. Opus 4.7은 v2.1.111 이상이 필요합니다. Opus 4.8은 v2.1.154 이상이 필요합니다. Sonnet 5는 v2.1.197 이상이 필요합니다. Opus 5는 v2.1.219 이상이 필요합니다. Opus 5.5는 v2.1.280 이상이 필요합니다. Sonnet 5.5는 v2.1.284 이상이 필요합니다. * 업그레이드할 수 없으면 `/model`을 실행하고 대신 Opus 4.6 또는 Sonnet 4.6을 선택합니다. -* [Agent SDK](/docs/ko/agent-sdk/overview)에서 이를 만나면 SDK 패키지를 대신 업그레이드합니다. Opus 4.8은 TypeScript SDK v0.3.154 이상 및 Python SDK v0.2.88 이상이 필요합니다. Sonnet 5는 TypeScript SDK v0.3.197 이상이 필요합니다. Opus 5는 TypeScript SDK v0.3.219 이상이 필요합니다. Opus 5.5는 TypeScript SDK v0.3.280 이상이 필요합니다. Sonnet 5.5는 TypeScript SDK v0.3.284 이상이 필요합니다. +* [Agent SDK](/docs/ko/agent-sdk/overview)에서 이 오류가 발생하면 대신 SDK 패키지를 업그레이드합니다. Opus 4.8은 TypeScript SDK v0.3.154 이상 및 Python SDK v0.2.88 이상이 필요합니다. Sonnet 5는 TypeScript SDK v0.3.197 이상이 필요합니다. Opus 5는 TypeScript SDK v0.3.219 이상이 필요합니다. Opus 5.5는 TypeScript SDK v0.3.280 이상이 필요합니다. Sonnet 5.5는 TypeScript SDK v0.3.284 이상이 필요합니다.

- 생각이 꺼져 있으면 노력을 사용할 수 없습니다 + 사고가 꺼져 있으면 effort를 사용할 수 없습니다

-[확장 생각](/docs/ko/model-config#extended-thinking)을 끄고 `high` 이상의 [노력 수준](/docs/ko/model-config#adjust-effort-level)에서 실행했습니다. 모델이 해당 조합을 허용하지 않으므로 API가 요청을 거부했습니다. +[확장 사고](/docs/ko/model-config#extended-thinking)를 끄고 `high`보다 높은 [effort 수준](/docs/ko/model-config#adjust-effort-level)으로 실행했습니다. 모델이 해당 조합을 허용하지 않으므로 API가 요청을 거부했습니다. ```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) ``` -`·` 뒤의 힌트는 세션에 따라 다릅니다: 비대화형 세션에서는 `use --effort high (or the effortLevel setting)`로 읽고 Claude Desktop 앱이 실행하는 세션에서는 `you can lower effort to High`로 읽습니다. +`·` 뒤의 힌트는 세션에 따라 다릅니다: 비대화형 세션에서는 `use --effort high (or the effortLevel setting)`로, Claude Desktop 앱이 실행하는 세션에서는 `you can lower effort to High`로 표시됩니다. **할 일:** -* [노력 수준](/docs/ko/model-config#set-the-effort-level)을 `high` 이하로 낮춥니다. -* 생각을 다시 켭니다. 예를 들어 [`MAX_THINKING_TOKENS`](/docs/ko/env-vars)을 설정 해제하거나 설정에서 [`"alwaysThinkingEnabled": false`](/docs/ko/settings-reference#alwaysthinkingenabled)를 제거합니다. +* [effort 수준을 낮춰](/docs/ko/model-config#set-the-effort-level) `high` 이하로 설정합니다. +* 사고를 다시 켭니다. 예를 들어 [`MAX_THINKING_TOKENS`](/docs/ko/env-vars) 설정을 해제하거나 설정에서 [`"alwaysThinkingEnabled": false`](/docs/ko/settings-reference#alwaysthinkingenabled)를 제거합니다. -v2.1.242 이전에는 Claude Code가 API의 자체 메시지를 표시했습니다: `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.` v2.1.251 이전에는 Claude Code가 설정한 노력 수준에서 요청을 보냈으므로 Opus 5는 생각이 꺼져 있을 때 `high` 이상의 모든 요청을 거부했습니다. Claude Code는 이제 Opus 5와 같이 조합을 거부하는 것으로 알려진 모델에 노력 `high`를 대신 보냅니다. +v2.1.242 이전에는 Claude Code가 API 자체의 메시지를 표시했습니다: `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.` v2.1.251 이전에는 Claude Code가 설정한 effort 수준으로 요청을 보냈으므로, 사고가 꺼져 있을 때 Opus 5는 `high`보다 높은 모든 요청을 거부했습니다. 이제 Claude Code는 Opus 5처럼 이 조합을 거부하는 것으로 알려진 모델에는 대신 effort `high`를 보냅니다.

- 생각 예산이 출력 제한을 초과합니다 + 사고 예산이 출력 제한을 초과합니다

-구성된 확장 생각 예산이 최대 응답 길이를 초과하므로 실제 답변을 위한 공간이 남지 않습니다. +구성된 확장 사고 예산이 최대 응답 길이를 초과하므로 실제 답변을 위한 공간이 남지 않습니다. ```text theme={null} API Error: 400 ... max_tokens must be greater than thinking.budget_tokens @@ -2642,11 +2676,11 @@ API Error: 400 ... max_tokens must be greater than thinking.budget_tokens **할 일:** -* [`CLAUDE_CODE_MAX_OUTPUT_TOKENS`](/docs/ko/env-vars)를 생각 예산 이상으로 높입니다. -* [확장 생각](/docs/ko/model-config#extended-thinking)에서 예산이 출력 길이와 상호 작용하는 방식을 참조하십시오. +* [`CLAUDE_CODE_MAX_OUTPUT_TOKENS`](/docs/ko/env-vars)를 사고 예산보다 높게 올립니다. +* 예산이 출력 길이와 상호 작용하는 방식은 [확장 사고](/docs/ko/model-config#extended-thinking)를 참조하십시오.

- 도구 사용 또는 생각 블록 불일치 + 도구 사용 또는 thinking 블록 불일치

대화 기록이 일관성 없는 상태로 API에 도달했습니다. @@ -2663,69 +2697,69 @@ API Error: 400 ... thinking blocks ... cannot be modified **할 일:** -* Opus 4.7 또는 Opus 4.8을 사용하는 경우 먼저 `claude update`를 실행합니다. v2.1.156 이전 버전은 정상적인 도구 사용 중에 이 오류를 트리거할 수 있으며 `/rewind`는 이를 지우지 않습니다. -* `/rewind`를 실행하거나 Esc를 두 번 눌러 손상된 턴 전의 체크포인트로 뒤로 이동하고 거기서 계속합니다. [체크포인팅](/docs/ko/checkpointing)에서 체크포인트가 생성되고 복원되는 방식을 참조하십시오. +* Opus 4.7 또는 Opus 4.8을 사용하는 경우 먼저 `claude update`를 실행합니다. v2.1.156 이전 버전은 정상적인 도구 사용 중에 이 오류를 트리거할 수 있으며 `/rewind`로는 해결되지 않습니다. +* `/rewind`를 실행하거나 Esc를 두 번 눌러 손상된 턴 이전의 체크포인트로 되돌아가 거기서 계속합니다. 체크포인트가 생성되고 복원되는 방식은 [체크포인트](/docs/ko/checkpointing)를 참조하십시오.

redacted\_thinking 블록의 유효하지 않은 데이터

-API가 대화 기록의 이전 턴이 포함하는 `redacted_thinking` 블록을 허용할 수 없기 때문에 400으로 요청을 거부했습니다. +대화 기록의 이전 턴에 포함된 `redacted_thinking` 블록을 API가 허용할 수 없기 때문에 400으로 요청을 거부했습니다. ```text theme={null} API Error: 400 ... Invalid `data` in `redacted_thinking` block ``` -Claude Code는 대화의 이전 생각을 요청에서 제외하고 한 번 다시 시도하므로 세션은 오류를 표시하지 않고 계속됩니다. v2.1.282 이전에는 Claude Code가 거부된 블록을 유지했고 모든 이후 턴이 동일한 오류로 실패했습니다. +Claude Code는 대화의 이전 사고를 요청에서 제외하고 한 번 재시도하므로 세션은 오류를 표시하지 않고 계속됩니다. v2.1.282 이전에는 Claude Code가 거부된 블록을 유지했고 이후의 모든 턴이 동일한 오류로 실패했습니다. **할 일:** -* v2.1.281 이상에 있고 모든 턴이 이 오류로 실패하면 `claude update`를 실행하고 세션을 재개합니다. -* 오류가 지속되면 `/clear`를 실행하여 블록을 포함하지 않는 대화를 시작합니다. +* v2.1.281 이하 버전을 사용 중이고 모든 턴이 이 오류로 실패하면 `claude update`를 실행하고 세션을 재개합니다. +* 오류가 지속되면 `/clear`를 실행하여 해당 블록이 포함되지 않은 대화를 시작합니다.

지원되지 않는 도구 내용이 제거되었습니다

-Claude Code가 Anthropic API에 직접 연결되고 저장된 세션을 로드하거나 미리 볼 때, Anthropic API가 허용하지 않는 도구 내용을 제거하고 제거된 내용이 두 생각 블록 사이에 있던 위치에 이 줄을 남깁니다: +Claude Code가 Anthropic API에 직접 연결된 상태에서 저장된 세션을 로드하거나 미리 볼 때, Anthropic API가 허용하지 않는 도구 내용을 제거하고 제거된 내용이 두 thinking 블록 사이에 있던 위치에 이 줄을 남깁니다: ```text theme={null} [Unsupported tool content removed] ``` -이러한 내용은 일반적으로 다른 제공자의 도구 호출을 변환하는 [`ANTHROPIC_BASE_URL`](/docs/ko/env-vars)을 통해 설정된 타사 프록시인 API 형식으로 응답할 때 세션 파일에 도달합니다. Claude Code는 세션이 Anthropic API에 직접 연결될 때만 제거하고 세션이 프록시를 통해 또는 다른 제공자에서 실행될 때 저장된 기록을 그대로 로드합니다. v2.1.246 이전에는 Claude Code가 도구 사용 및 결과를 API로 다시 보냈고 재개된 세션의 모든 턴이 `messages.1.content.0.server_tool_use.name: Input should be 'web_search', 'web_fetch', ...`와 같은 400 오류로 실패했습니다. +이러한 내용은 Anthropic API가 아닌 다른 무언가가 API 형식으로 응답했을 때 세션 파일에 들어갑니다. 일반적으로 다른 제공자의 도구 호출을 변환하는, [`ANTHROPIC_BASE_URL`](/docs/ko/env-vars)로 설정된 타사 프록시입니다. Claude Code는 세션이 Anthropic API에 직접 연결된 경우에만 이를 제거하며, 세션이 프록시를 통하거나 다른 제공자에서 실행되는 경우에는 저장된 기록을 그대로 로드합니다. v2.1.246 이전에는 Claude Code가 도구 사용과 그 결과를 API로 다시 보냈고, 재개된 세션의 모든 턴이 `messages.1.content.0.server_tool_use.name: Input should be 'web_search', 'web_fetch', ...`와 같은 400 오류로 실패했습니다. **할 일:** -* 자리 표시자 줄을 볼 때 아무것도 필요하지 않습니다. 세션은 제거된 내용 없이 계속됩니다. -* 재개된 세션의 모든 턴이 대신 400 오류로 실패하면 `claude update`를 실행하고 세션을 다시 재개합니다. v2.1.246 이전 버전은 내용을 제거하지 않습니다. +* 자리 표시자 줄이 표시될 때는 아무 조치도 필요하지 않습니다. 세션은 제거된 내용 없이 계속됩니다. +* 재개된 세션의 모든 턴이 대신 400 오류로 실패하면 `claude update`를 실행하고 세션을 다시 재개합니다. v2.1.246 이전 버전은 해당 내용을 제거하지 않습니다.

역할 'system'은 'assistant' 메시지 앞에 와야 합니다

-API가 대화에서 허용하지 않는 위치에 시스템 메시지가 있기 때문에 400으로 요청을 거부했습니다: +대화에서 API가 허용하지 않는 위치에 시스템 메시지가 있기 때문에 API가 400으로 요청을 거부했습니다: ```text theme={null} API Error: 400 messages.6: role 'system' must precede an 'assistant' message or end the array; ... ``` -Claude Code는 일부 미리 알림 및 첨부 텍스트를 대화 내 시스템 메시지로 보냅니다. API가 하나의 위치를 거부하면 Claude Code는 해당 텍스트를 대신 일반 사용자 메시지로 보내는 요청을 한 번 다시 시도합니다. API의 형제 배치 표현(예: `use the top-level 'system' parameter for the initial system prompt`)은 동일한 복구를 받습니다. +Claude Code는 일부 리마인더 및 첨부 텍스트를 대화 내부의 시스템 메시지로 보냅니다. API가 그중 하나의 위치를 거부하면 Claude Code는 해당 텍스트를 일반 사용자 메시지로 대신 보내 요청을 한 번 재시도합니다. `use the top-level 'system' parameter for the initial system prompt`와 같은 API의 유사한 배치 관련 문구도 동일한 복구가 적용됩니다. -오류가 나타나면 거부된 시스템 메시지는 Claude Code가 제거할 수 있는 것이 아닙니다. 이는 일반적으로 Claude Code와 API 사이의 프록시 또는 [LLM 게이트웨이](/docs/ko/llm-gateway)가 자체 시스템 메시지를 추가했거나 대화를 재정렬했음을 의미합니다. +오류가 표시된다면 거부된 시스템 메시지는 Claude Code가 제거할 수 있는 것이 아닙니다. 이는 일반적으로 Claude Code와 API 사이의 프록시 또는 [LLM 게이트웨이](/docs/ko/llm-gateway)가 자체 시스템 메시지를 추가했음을 의미합니다. **할 일:** -* `/clear`를 실행하여 새 대화를 시작합니다. 오류가 거기서도 반환되면 원인은 저장된 대화가 아닌 요청 경로에 있습니다. -* [`ANTHROPIC_BASE_URL`](/docs/ko/env-vars)을 통해 구성된 프록시 또는 게이트웨이 뒤에서 오류가 모든 턴에서 반복되면 프록시 없이 연결하여 소스를 확인하고 오류를 운영하는 사람에게 보고합니다. +* [`ANTHROPIC_BASE_URL`](/docs/ko/env-vars)로 구성된 프록시 또는 게이트웨이 뒤에서 오류가 매 턴마다 반복되면 프록시 없이 연결하여 원인을 확인하고, 해당 프록시를 운영하는 담당자에게 오류를 보고합니다. +* `/clear`를 실행하여 새 대화를 시작합니다. 거기서도 오류가 다시 발생하면 원인은 저장된 대화가 아닌 요청 경로에 있습니다. -v2.1.280 이전에는 Claude Code가 이 표현을 인식하지 못했으므로 거부된 시스템 메시지가 Claude Code 자체가 보낸 것일 때도 오류가 나타났고 대화의 모든 이후 턴이 동일한 방식으로 실패했습니다. +v2.1.280 이전에는 Claude Code가 이 문구를 인식하지 못했으므로 거부된 시스템 메시지가 Claude Code 자체가 보낸 것일 때도 오류가 표시되었고, 대화의 이후 모든 턴이 동일한 방식으로 실패했습니다.

search\_result 블록의 유효하지 않은 encrypted\_content

-API가 대화 기록이 보유한 호스팅된 웹 검색 내용을 해독할 수 없기 때문에 400으로 요청을 거부했습니다. 표현은 읽을 수 없는 필드를 표시합니다: +대화 기록에 API가 해독할 수 없는 호스팅 웹 검색 내용이 포함되어 있기 때문에 API가 400으로 요청을 거부했습니다. 문구는 읽을 수 없는 필드를 나타냅니다: ```text theme={null} API Error: 400 ... Invalid `encrypted_content` in `search_result` block @@ -2734,25 +2768,25 @@ API Error: 400 ... Failed to decrypt web search result content API Error: 400 ... Invalid `encrypted_stdout` in `encrypted_code_execution_result` block ``` -API의 호스팅된 [웹 검색 도구](https://platform.claude.com/docs/en/agents-and-tools/tool-use/web-search-tool)의 결과는 API만 읽을 수 있는 암호화된 필드를 포함합니다. `encrypted_stdout` 표현은 이러한 결과를 읽은 호스팅된 코드 실행 프로그램의 출력을 표시하며, API는 이를 암호화합니다. API는 해독할 수 없는 내용(예: 다른 조직을 위해 생성된 내용)을 재생하는 요청을 거부합니다. +API의 호스팅 [웹 검색 도구](https://platform.claude.com/docs/en/agents-and-tools/tool-use/web-search-tool) 결과에는 API만 읽을 수 있는 암호화된 필드가 포함됩니다. `encrypted_stdout` 문구는 이러한 결과를 읽은 호스팅 코드 실행 프로그램의 출력을 가리키며, API는 이 출력도 암호화합니다. API는 다른 조직을 위해 생성된 내용처럼 해독할 수 없는 내용을 다시 보내는 요청을 거부합니다. -Claude Code의 자체 [WebSearch 도구](/docs/ko/tools-reference#websearch-tool-behavior)는 검색 결과를 일반 텍스트로 기록하므로 이러한 블록은 일반적으로 호스팅된 웹 검색을 자체적으로 실행한 프록시 또는 [LLM 게이트웨이](/docs/ko/llm-gateway)를 통해 대화에 도달합니다. +Claude Code 자체의 [WebSearch 도구](/docs/ko/tools-reference#websearch-tool-behavior)는 검색 결과를 일반 텍스트로 기록하므로, 이러한 블록은 일반적으로 호스팅 웹 검색을 자체적으로 실행한 프록시 또는 [LLM 게이트웨이](/docs/ko/llm-gateway)를 통해 대화에 들어옵니다. -세 가지 웹 검색 표현의 경우 Claude Code는 검색 호출, 결과 및 인용을 보내는 것에서 제외하고 요청을 한 번 다시 시도하므로 세션은 오류를 표시하지 않고 계속됩니다. `encrypted_stdout` 표현에는 그러한 복구가 없으므로 해당 메시지는 여전히 도달합니다. v2.1.282 이전에는 Claude Code가 거부된 웹 검색 블록도 유지했고 모든 이후 턴 및 `/compact`가 동일한 방식으로 실패했습니다. +세 가지 웹 검색 문구의 경우 Claude Code는 검색 호출, 결과 및 인용을 보내는 내용에서 제외하고 요청을 한 번 재시도하므로 세션은 오류를 표시하지 않고 계속됩니다. `encrypted_stdout` 문구에는 이러한 복구가 없으므로 해당 메시지는 여전히 표시됩니다. v2.1.282 이전에는 Claude Code가 거부된 웹 검색 블록도 유지했고, 이후의 모든 턴과 `/compact`가 동일한 방식으로 실패했습니다. **할 일:** -* v2.1.281 이상에 있고 모든 턴이 웹 검색 표현 중 하나로 실패하면 `claude update`를 실행하고 세션을 재개합니다. -* 오류가 지속되거나 메시지가 `encrypted_stdout`을 표시하면 `/rewind`를 실행하여 내용을 추가한 턴 전의 체크포인트로 뒤로 이동하거나 `/clear`를 실행하여 이를 포함하지 않는 대화를 시작합니다. -* Claude Code를 프록시 또는 게이트웨이 뒤에서 실행하면 오류를 운영하는 사람에게 보고합니다. +* v2.1.281 이하 버전을 사용 중이고 모든 턴이 웹 검색 문구 중 하나로 실패하면 `claude update`를 실행하고 세션을 재개합니다. +* 오류가 지속되거나 메시지가 `encrypted_stdout`을 나타내면 `/rewind`를 실행하여 해당 내용을 추가한 턴 이전의 체크포인트로 되돌아가거나, `/clear`를 실행하여 해당 내용이 포함되지 않은 대화를 시작합니다. +* 프록시 또는 게이트웨이 뒤에서 Claude Code를 실행하는 경우 해당 프록시나 게이트웨이를 운영하는 담당자에게 오류를 보고합니다.

사용 정책 거부

-API가 [사용 정책](https://www.anthropic.com/legal/aup) 확인을 트리거한 대화의 내용 때문에 응답을 거부했습니다. +대화의 내용이 [사용 정책](https://www.anthropic.com/legal/aup) 확인을 트리거했기 때문에 API가 응답을 거부했습니다. -메시지에는 정책 거부가 잘못되었다고 생각하는 경우 지원팀에 인용할 수 있는 요청 ID 및 메시지 ID가 포함됩니다. +메시지에는 거부가 잘못되었다고 생각되는 경우 지원팀에 제시할 수 있는 요청 ID 및 메시지 ID가 포함됩니다. ```text theme={null} API Error: Opus 4.6 can't help with this. Start a new session to continue. @@ -2760,17 +2794,17 @@ 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 ``` -메시지는 거부한 모델을 표시하거나 모델이 기록되지 않은 경우 `Claude`를 표시합니다. +메시지는 거부한 모델을 표시하며, 기록된 모델이 없으면 `Claude`를 표시합니다. -확인은 전체 대화를 평가하므로 같은 세션에서 새 메시지를 보내면 일반적으로 동일한 거부를 다시 트리거합니다. 동일한 내용이 디스크의 기록에 여전히 포함되어 있으므로 `--continue` 또는 `--resume`으로 종료하고 세션을 다시 열 때도 마찬가지입니다. [Amazon Bedrock](/docs/ko/amazon-bedrock), [Google Cloud의 Agent Platform](/docs/ko/google-vertex-ai) 및 [Microsoft Foundry](/docs/ko/microsoft-foundry)에서 이 메시지는 모델의 안전 조치가 사이버 보안 주제로 플래그한 요청도 다룹니다. [안전 조치가 사이버 보안 주제를 플래그했습니다](#safety-measures-flagged-a-cybersecurity-topic)를 참조하십시오. +확인은 최신 프롬프트뿐 아니라 전체 대화를 평가하므로 같은 세션에서 새 메시지를 보내면 일반적으로 동일한 거부가 다시 트리거됩니다. 디스크의 트랜스크립트에 트리거한 내용이 여전히 포함되어 있으므로 종료한 후 `--continue` 또는 `--resume`으로 세션을 다시 열어도 마찬가지입니다. [Amazon Bedrock](/docs/ko/amazon-bedrock), [Google Cloud의 Agent Platform](/docs/ko/google-vertex-ai) 및 [Microsoft Foundry](/docs/ko/microsoft-foundry)에서는 이 메시지가 모델의 안전 조치가 사이버 보안 주제로 플래그한 요청도 다룹니다. [안전 조치가 사이버 보안 주제를 플래그했습니다](#safety-measures-flagged-a-cybersecurity-topic)를 참조하십시오. -v2.1.219 이전에는 메시지가 `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.`로 읽었습니다. +v2.1.219 이전에는 메시지가 `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.`였습니다. **할 일:** -* Esc를 두 번 누르거나 `/rewind`를 실행하여 거부를 트리거한 턴 전의 체크포인트로 뒤로 이동한 다음 다시 표현하거나 다른 접근 방식을 취합니다. [체크포인팅](/docs/ko/checkpointing)을 참조하십시오. -* 어떤 턴이 원인인지 식별할 수 없으면 `/clear`를 실행하여 같은 프로젝트에서 새 대화를 시작합니다. 이전 대화는 디스크에 보존되며 `/resume`에서 사용 가능합니다. -* [비대화형 모드](/docs/ko/headless)(`-p`)에서 되감기를 사용할 수 없으므로 새 세션에서 `--continue` 없이 다시 표현된 프롬프트로 다시 시도합니다. 정책 확인은 모델에 따라 다르므로 `/model`로 다른 모델로 전환하면 일부 경우에 거부를 해결할 수도 있습니다. +* Esc를 두 번 누르거나 `/rewind`를 실행하여 거부를 트리거한 턴 이전의 체크포인트로 되돌아간 다음, 다르게 표현하거나 다른 접근 방식을 취합니다. [체크포인트](/docs/ko/checkpointing)를 참조하십시오. +* 어떤 턴이 원인인지 식별할 수 없으면 `/clear`를 실행하여 같은 프로젝트에서 새 대화를 시작합니다. 이전 대화는 디스크에 보존되며 `/resume`에서 계속 사용할 수 있습니다. +* 되감기를 사용할 수 없는 [비대화형 모드](/docs/ko/headless)(`-p`)에서는 `--continue` 없이 새 세션에서 다르게 표현한 프롬프트로 재시도합니다. 정책 확인은 모델에 따라 다르므로 `--model`로 다른 모델로 전환하면 경우에 따라 거부가 해결될 수도 있습니다.

안전 조치가 사이버 보안 주제를 플래그했습니다 @@ -2782,19 +2816,19 @@ v2.1.219 이전에는 메시지가 `Claude Code is unable to respond to this req 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. Apply to the Cyber Verification Program to reduce these interruptions. Send feedback with /feedback or learn more: https://support.claude.com/en/articles/14604842-real-time-cyber-safeguards-on-claude ``` -메시지는 정당한 사이버 보안 작업에 대한 액세스를 부여하는 [사이버 검증 프로그램](https://support.claude.com/en/articles/14604842-real-time-cyber-safeguards-on-claude)에 연결됩니다. Opus 5.5 및 Sonnet 5.5에서 메시지는 `'s safeguards flagged this session`으로 시작합니다. 플래그된 범주에 대체 모델을 사용할 수 있으면 Claude Code는 이 오류를 표시하는 대신 [모델을 전환합니다](/docs/ko/model-config#automatic-model-fallback). +메시지는 정당한 사이버 보안 작업에 대한 액세스를 부여하는 [사이버 검증 프로그램](https://support.claude.com/en/articles/14604842-real-time-cyber-safeguards-on-claude)으로 연결됩니다. Opus 5.5 및 Sonnet 5.5에서는 메시지가 대신 `'s safeguards flagged this session`으로 시작합니다. 플래그된 범주에 사용 가능한 대체 모델이 있으면 Claude Code는 이 오류를 표시하는 대신 [모델을 전환합니다](/docs/ko/model-config#automatic-model-fallback). -[Amazon Bedrock](/docs/ko/amazon-bedrock), [Google Cloud의 Agent Platform](/docs/ko/google-vertex-ai) 및 [Microsoft Foundry](/docs/ko/microsoft-foundry)에서 사이버 보안 플래그는 대신 [사용 정책 거부](#usage-policy-refusal) 메시지를 생성합니다. +[Amazon Bedrock](/docs/ko/amazon-bedrock), [Google Cloud의 Agent Platform](/docs/ko/google-vertex-ai) 및 [Microsoft Foundry](/docs/ko/microsoft-foundry)에서는 사이버 보안 플래그가 대신 [사용 정책 거부](#usage-policy-refusal) 메시지를 생성합니다. -안전 조치 자체는 서버 측이며 v2.1.203보다 앞서 있습니다. 그 이후의 클라이언트 릴리스는 메시지의 표현만 변경했습니다. -v2.1.203부터 v2.1.218까지 메시지는 ` 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:`로 읽었고 동일한 도움말 센터 링크가 뒤따랐으며 대화형 세션은 `If you were not engaging in a cybersecurity topic, please send feedback via /feedback.`를 추가했습니다. -v2.1.203 이전에는 `'s safeguards flagged this message for a cybersecurity topic. If your work requires this access, you can apply for an exemption:`로 읽었고 면제 양식 링크가 뒤따랐습니다. +안전 조치 자체는 서버 측에서 동작하며 v2.1.203 이전부터 존재했습니다. 그 이후의 클라이언트 릴리스는 메시지의 문구만 변경했습니다. +v2.1.203부터 v2.1.218까지는 메시지가 ` 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:` 뒤에 동일한 도움말 센터 링크가 붙는 형태였으며, 대화형 세션에서는 `If you were not engaging in a cybersecurity topic, please send feedback via /feedback.`가 추가되었습니다. +v2.1.203 이전에는 `'s safeguards flagged this message for a cybersecurity topic. If your work requires this access, you can apply for an exemption:` 뒤에 면제 양식 링크가 붙는 형태였습니다. **할 일:** * 작업에 이 내용이 필요하면 [사이버 검증 프로그램](https://support.claude.com/en/articles/14604842-real-time-cyber-safeguards-on-claude)을 통해 액세스를 신청합니다. -* 요청이 사이버 보안 주제가 아니었으면 `/feedback`을 실행하여 거짓 양성을 보고합니다. -* 같은 세션에서 계속 작업하려면 Esc를 두 번 누르거나 `/rewind`를 실행하여 플래그를 트리거한 턴 전의 체크포인트로 뒤로 이동한 다음 다른 접근 방식을 취합니다. [체크포인팅](/docs/ko/checkpointing)을 참조하십시오. +* 요청이 사이버 보안 주제와 관련이 없었다면 `/feedback`을 실행하여 오탐을 보고합니다. +* 같은 세션에서 계속 작업하려면 Esc를 두 번 누르거나 `/rewind`를 실행하여 플래그를 트리거한 턴 이전의 체크포인트로 되돌아간 다음 다른 접근 방식을 취합니다. [체크포인트](/docs/ko/checkpointing)를 참조하십시오.

설치 오류 @@ -2847,152 +2881,168 @@ The connection dropped while downloading the update (attempt 3/3: aborted). Chec 명령줄 오류

-이러한 오류는 `claude` 명령줄과 그 하위 명령어, 프롬프트에서 제출하는 명령어 이름, 그리고 셸 명령어를 실행하여 컨텍스트를 수집한 후 프롬프트를 실행하는 `/security-review` 같은 명령어에서 발생합니다. 또한 CLI를 다시 시작하는 `/tui`에서도 발생합니다. +이 오류들은 `claude` 명령줄과 그 하위 명령, 프롬프트에서 제출한 명령 이름, 그리고 `/security-review`처럼 프롬프트가 실행되기 전에 셸 명령을 실행해 컨텍스트를 수집하는 명령에서 발생합니다. CLI를 다시 실행하는 `/tui`에서도 발생합니다.

- \--bg와 --print 간의 충돌 + `--bg`와 `--print` 간 충돌

-이 메시지는 Claude Code v2.1.198 이상이 필요합니다. 동일한 `claude` 호출에서 `--bg`를 `-p` 또는 `--print`와 결합했습니다. `--bg`는 나중에 `claude agents`로 연결할 수 있는 [백그라운드 세션](/docs/ko/agent-view#from-your-shell)을 시작하는 반면, `--print`는 [비대화형](/docs/ko/headless)으로 실행되며 `claude agents`가 연결할 수 있는 대화형 세션을 시작하지 않습니다. v2.1.198 이전에는 이 조합이 연결할 수 없는 백그라운드 작업을 자동으로 생성했습니다. +이 메시지는 Claude Code v2.1.198 이상이 필요합니다. 동일한 `claude` 호출에서 `--bg`를 `-p` 또는 `--print`와 함께 사용했습니다. `--bg`는 나중에 `claude agents`로 연결하는 [백그라운드 세션](/docs/ko/agent-view#from-your-shell)을 시작하지만, `--print`는 [비대화형으로](/docs/ko/headless) 실행되며 `claude agents`가 연결하는 대화형 세션을 시작하지 않습니다. v2.1.198 이전에는 이 조합이 연결할 수 없는 백그라운드 작업을 아무런 알림 없이 생성했습니다. ```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 ''`. ``` -**해야 할 일:** +**해결 방법:** + +* `-p` 또는 `--print`를 제거합니다. `--bg`는 프롬프트를 위치 인수로 받으므로 `claude --bg ""`가 완전한 명령입니다. [셸에서 새 에이전트 디스패치하기](/docs/ko/agent-view#from-your-shell)를 참조하세요. +* 백그라운드 세션을 만드는 대신 프롬프트를 비대화형으로 실행하고 결과를 출력하려면 `--bg`를 제거하고 `claude -p ""`를 실행합니다 -* `-p` 또는 `--print`를 제거합니다. `--bg`는 프롬프트를 위치 인수로 사용하므로 `claude --bg ""`가 완전한 명령어입니다. [셸에서 새 에이전트 디스패치](/docs/ko/agent-view#from-your-shell)를 참조하세요. -* 프롬프트를 비대화형으로 실행하고 백그라운드 세션을 만드는 대신 결과를 출력하려면 `--bg`를 제거하고 `claude -p ""`를 실행합니다. +

+ 시스템 프롬프트 플래그와 해당 파일 형식 간 충돌 +

+ +하나의 `claude` 호출에서 [`--append-subagent-system-prompt`](/docs/ko/cli-reference#cli-flags)를 `--append-subagent-system-prompt-file`과 함께 전달했으므로, `claude`는 세션을 시작하지 않고 종료 코드 1로 종료됩니다: + +```text theme={null} +Error: Cannot use both --append-subagent-system-prompt and --append-subagent-system-prompt-file. Please use only one. +``` + +v2.1.283 이전에는 `--system-prompt`를 `--system-prompt-file`과 함께, 또는 `--append-system-prompt`를 `--append-system-prompt-file`과 함께 전달한 경우에도 `claude`가 같은 방식으로 종료되었습니다. 이 쌍들이 [결합](/docs/ko/cli-reference#system-prompt-flags)되지 않고 충돌했기 때문입니다. 해당 버전에서는 메시지에 함께 사용한 쌍의 이름이 표시됩니다. + +**해결 방법:** + +* 플래그의 한 가지 형식만 유지하고 다른 형식은 제거합니다. 고정된 프롬프트 파일과 실행별 텍스트를 결합하려면 두 플래그를 모두 전달하는 대신 실행 전에 텍스트를 파일에 병합합니다

- 잘못된 --agents 구성 + 잘못된 `--agents` 구성

-`--agents`에 전달한 값이 유효하지 않아서 `claude`가 세션을 시작하는 대신 코드 1로 종료됩니다. `--safe-mode`를 전달하거나 [`CLAUDE_CODE_SAFE_MODE`](/docs/ko/env-vars#variables)를 설정하면 Claude Code는 `--agents`를 완전히 무시합니다. `--resume` 또는 `--continue`를 사용하면 인라인 JSON 값은 확인되지 않고 세션이 시작됩니다. 파일에서 읽은 값은 매번 시작할 때 확인됩니다. v2.1.242 이전에는 Claude Code가 어쨌든 세션을 시작했습니다. +`--agents`에 전달한 값이 유효하지 않으므로 `claude`는 세션을 시작하지 않고 종료 코드 1로 종료됩니다. `--safe-mode`를 전달하거나 [`CLAUDE_CODE_SAFE_MODE`](/docs/ko/env-vars#variables)를 설정하면 Claude Code는 `--agents`를 완전히 무시합니다. `--resume` 또는 `--continue`를 사용하면 인라인 JSON 값은 검사되지 않고 세션이 시작되지만, 파일에서 읽은 값은 실행할 때마다 검사됩니다. v2.1.242 이전에는 Claude Code가 그대로 세션을 시작했습니다. ```text theme={null} Error: Invalid --agents configuration: ``` -첫 번째 줄 다음에 오는 내용은 값이 어떻게 실패했는지에 따라 달라집니다. Claude Code는 이러한 확인을 순서대로 실행하고 실패하는 첫 번째 확인에서 중지합니다. 값에 두 가지 문제가 있으면 첫 번째를 수정한 후에만 두 번째를 볼 수 있습니다: +첫 번째 줄 다음에 오는 내용은 값이 어떻게 실패했는지에 따라 달라집니다. Claude Code는 다음 검사를 순서대로 실행하고 처음 실패한 검사에서 멈춥니다. 값에 두 종류의 문제가 있는 경우, 첫 번째 문제를 수정한 후에야 두 번째 문제가 표시됩니다: -1. 값이 `{`로 시작하지만 JSON으로 파싱되지 않거나 `--agents` 파일의 내용이 파싱되지 않으면 Claude Code는 JSON 파서의 메시지를 포함하는 `invalid JSON:` 줄 하나를 출력합니다. -2. 파싱되지만 에이전트 정의가 [CLI 정의 하위 에이전트](/docs/ko/sub-agents#choose-the-subagent-scope)의 스키마와 일치하지 않으면 Claude Code는 문제당 한 줄을 출력합니다. -3. 에이전트 이름이 `-`로 시작하면 Claude Code는 `: agent names must not start with '-'`를 출력합니다. +1. 값이 `{`로 시작하지만 JSON으로 파싱되지 않거나 `--agents` 파일의 내용이 파싱되지 않으면, Claude Code는 JSON 파서 자체의 메시지를 담은 `invalid JSON:` 줄 하나를 출력합니다 +2. 파싱은 되지만 에이전트 정의가 [CLI로 정의된 서브에이전트](/docs/ko/sub-agents#choose-the-subagent-scope)의 스키마와 일치하지 않으면, Claude Code는 문제마다 한 줄씩 출력합니다 +3. 에이전트 이름이 `-`로 시작하면 Claude Code는 `: agent names must not start with '-'`를 출력합니다 -문제 줄이 20개를 초과하면 Claude Code는 처음 20개를 출력하고 나머지를 `…and N more`로 바꿉니다. +문제 줄이 20개를 넘으면 Claude Code는 처음 20개를 출력하고 나머지는 `…and N more`로 대체합니다. -`--print`를 사용하면 `--agents`는 인라인 객체 대신 [JSON 파일의 경로](/docs/ko/sub-agents#choose-the-subagent-scope)도 허용합니다. v2.1.281 이전에는 `--agents`가 인라인 JSON만 허용했고 파일 경로를 유효하지 않은 JSON으로 취급했습니다. 파일 형식에는 이 메시지 대신 출력되는 자체 거부가 있습니다: +`--print`를 사용하면 `--agents`는 인라인 객체 대신 [JSON 파일 경로](/docs/ko/sub-agents#choose-the-subagent-scope)도 받습니다. v2.1.281 이전에는 `--agents`가 인라인 JSON만 받았으며 파일 경로를 잘못된 JSON으로 처리했습니다. 파일 형식에는 이 메시지 대신 출력되는 고유한 거부 메시지가 있으며, 다음이 포함됩니다: -* **`Error: --agents takes a JSON object, or a file path only with --print (-p)`**: Claude Code가 대화형 세션에서 값을 파일 경로로 읽었습니다. 정의를 인라인 JSON으로 전달하거나 `-p`를 추가하여 파일에서 읽습니다. -* **`Error: --agents file not found: `**: 해당 경로에 파일이 없습니다. `{`로 시작하지 않고 유효한 JSON이 아닌 값은 경로로 읽혀지므로 셸이 손상시킨 인라인 JSON도 이런 식으로 실패할 수 있습니다. 경로 또는 인용을 확인하고 명령어를 다시 실행합니다. +* **`Error: --agents takes a JSON object, or a file path only with --print (-p)`**: Claude Code가 대화형 세션에서 값을 파일 경로로 읽었습니다. 정의를 인라인 JSON으로 전달하거나, 파일에서 읽으려면 `-p`를 추가합니다. +* **`Error: --agents file not found: `**: 해당 경로에 파일이 없습니다. `{`로 시작하지 않고 유효한 JSON이 아닌 값은 경로로 읽히므로, 셸이 손상시킨 인라인 JSON도 이런 방식으로 실패할 수 있습니다. 경로나 따옴표 처리를 확인하고 명령을 다시 실행합니다. -**해야 할 일:** +**해결 방법:** -* 메시지가 나열한 각 문제를 수정한 후 명령어를 다시 실행합니다. [CLI 정의 하위 에이전트가 사용하는 필드](/docs/ko/sub-agents#choose-the-subagent-scope)를 참조하세요. +* 메시지에 나열된 각 문제를 수정한 다음 명령을 다시 실행합니다. [CLI로 정의된 서브에이전트가 받는 필드](/docs/ko/sub-agents#choose-the-subagent-scope)를 참조하세요.

- 클라우드 세션을 --restricted 세션에서 만들 수 없음 + `--restricted` 세션에서는 클라우드 세션을 만들 수 없음

-[`--restricted`](/docs/ko/cli-reference#cli-flags)로 세션을 시작하면 Claude Code는 이 세션에서 [클라우드 세션](/docs/ko/claude-code-on-the-web#from-terminal-to-cloud)을 만드는 것을 거부합니다. 새 세션이 제한된 프로세스 외부에서 실행되고 제한된 모드를 적용하지 않기 때문입니다. Claude Code는 서버에 연결하기 전에 클라이언트에서 거부하므로 클라우드 세션이 생성되지 않습니다: +[`--restricted`](/docs/ko/cli-reference#cli-flags)로 세션을 시작하면 Claude Code는 해당 세션에서 [클라우드 세션](/docs/ko/claude-code-on-the-web#from-terminal-to-cloud)을 만드는 것을 거부합니다. 새 세션은 제한된 프로세스 외부에서 실행되어 제한 모드를 적용하지 않기 때문입니다. Claude Code는 서버에 연결하기 전에 클라이언트에서 거부하므로 클라우드 세션이 생성되지 않습니다: ```text theme={null} Cloud sessions cannot be created from a --restricted session: they would not enforce it. ``` -**해야 할 일:** +**해결 방법:** -* 제한된 세션에서 로컬로 작업을 실행합니다. -* 세션이 어떻게 시작되었는지 제어할 수 있으면 `--restricted` 없이 새 `claude` 세션을 시작하고 거기서 클라우드 세션을 만듭니다. +* 제한된 세션에서 작업을 로컬로 실행합니다 +* 세션 실행 방식을 제어할 수 있다면 `--restricted` 없이 새 `claude` 세션을 시작하고 그곳에서 클라우드 세션을 만듭니다 -v2.1.248 이전에는 Claude Code에 `--restricted` 플래그가 없었고 이전 버전은 알 수 없는 옵션 오류로 플래그 자체를 거부했습니다. +v2.1.248 이전에는 Claude Code에 `--restricted` 플래그가 없었으며, 이전 버전은 알 수 없는 옵션 오류로 플래그 자체를 거부합니다.

- 조직의 정책에 의해 클라우드 세션이 비활성화됨 + 조직 정책에 의해 클라우드 세션이 비활성화됨

-조직의 `allow_remote_sessions` 정책이 꺼져 있어서 [클라우드 세션](/docs/ko/claude-code-on-the-web)과 이를 사용하는 명령어를 사용할 수 없습니다: +조직의 `allow_remote_sessions` 정책이 꺼져 있으므로 [클라우드 세션](/docs/ko/claude-code-on-the-web)과 이를 사용하는 명령을 사용할 수 없습니다: ```text theme={null} Cloud sessions are disabled by your organization's policy. Contact your organization admin to enable them. ``` -메시지는 [터미널에서 클라우드 세션을 만들](/docs/ko/claude-code-on-the-web#from-terminal-to-cloud) 때 나타나고 `/teleport`, `/remote-env`, 또는 `/web-setup` 같은 클라우드 세션이 필요한 명령어를 제출할 때 나타납니다. v2.1.268 이전에는 이러한 명령어 중 하나를 제출하면 대신 [`Unknown command`](#unknown-command)를 반환했습니다. +이 메시지는 [터미널에서 클라우드 세션을 만들 때](/docs/ko/claude-code-on-the-web#from-terminal-to-cloud)와 `/teleport`, `/remote-env`, `/web-setup`처럼 클라우드 세션이 필요한 명령을 제출할 때 표시됩니다. v2.1.268 이전에는 이러한 명령 중 하나를 제출하면 대신 [`Unknown command`](#unknown-command)가 반환되었습니다. -이것은 서버 측 조직 정책이므로 로컬 설정, 환경 변수 또는 CLI 플래그에서 재정의할 수 없습니다. +이는 서버 측 조직 정책이므로 로컬 설정, 환경 변수 또는 CLI 플래그로 재정의할 수 없습니다. -Claude Code가 조직의 정책을 아직 로드하지 않았거나 가져올 수 없으면 이러한 명령어는 대신 `Couldn't verify your organization's policy for cloud sessions. Check your network connection, then restart Claude Code and try again.`으로 응답합니다. +Claude Code가 아직 조직 정책을 로드하지 않았거나 가져올 수 없는 경우, 해당 명령은 대신 `Couldn't verify your organization's policy for cloud sessions. Check your network connection, then restart Claude Code and try again.`로 응답합니다. -**해야 할 일:** +**해결 방법:** -* 조직의 [Owner](/docs/ko/server-managed-settings#access-control)에게 [claude.ai/admin-settings/claude-code](https://claude.ai/admin-settings/claude-code)의 Claude Code 관리자 설정에서 클라우드 세션을 활성화하도록 요청합니다. -* 메시지에서 정책을 확인할 수 없다고 하면 네트워크 연결을 확인한 후 Claude Code를 다시 시작하고 다시 시도합니다. +* 조직의 [Owner](/docs/ko/server-managed-settings#access-control)에게 [claude.ai/admin-settings/claude-code](https://claude.ai/admin-settings/claude-code)의 Claude Code 관리자 설정에서 클라우드 세션을 활성화하도록 요청합니다 +* 메시지에 정책을 확인할 수 없다고 표시되면 네트워크 연결을 확인한 다음 Claude Code를 다시 시작하고 재시도합니다

- \--json-schema 값이 유효한 JSON Schema가 아님 + `--json-schema` 값이 유효한 JSON Schema가 아님

-[비대화형 모드](/docs/ko/headless#get-structured-output)에서 [`--json-schema`](/docs/ko/cli-reference#cli-flags)에 전달한 스키마가 JSON Schema 컴파일에 실패했으므로 `claude`가 프롬프트를 실행하는 대신 코드 1로 종료됩니다. v2.1.205 이전에는 유효하지 않은 스키마가 오류 없이 구조화되지 않은 출력을 생성했고 `format` 키워드를 사용하는 모든 스키마는 유효하지 않은 것으로 처리되었습니다. +[비대화형 모드](/docs/ko/headless#get-structured-output)에서 [`--json-schema`](/docs/ko/cli-reference#cli-flags)에 전달한 스키마가 JSON Schema 컴파일에 실패했으므로, `claude`는 프롬프트를 실행하지 않고 종료 코드 1로 종료됩니다. v2.1.205 이전에는 잘못된 스키마가 오류 없이 구조화되지 않은 출력을 생성했으며, `format` 키워드를 사용하는 모든 스키마가 잘못된 것으로 처리되었습니다. ```text theme={null} Error: --json-schema is not a valid JSON Schema: data/type must be equal to one of the allowed values ``` -두 번째 콜론 뒤의 텍스트는 검증자의 진단이며 실패한 키워드 또는 위치를 이름 지정합니다. `"format": "email"` 같은 `format` 키워드를 사용하는 스키마는 유효합니다: Claude Code는 `format`을 주석으로 허용하고 적용하지 않습니다. +두 번째 콜론 뒤의 텍스트는 검증기의 진단 내용이며 실패한 키워드나 위치를 알려 줍니다. `"format": "email"`처럼 `format` 키워드를 사용하는 스키마는 유효합니다. Claude Code는 `format`을 주석으로 받아들이며 이를 강제하지 않습니다. -Claude Code는 스키마 컴파일 전에 두 가지 확인을 실행합니다: 파싱할 수 없는 JSON 값을 `Error: --json-schema is not valid JSON`으로 거부하고 유효한 JSON이지만 객체가 아닌 것을 `Error: --json-schema must be a JSON object`로 거부합니다. +Claude Code는 스키마 컴파일 전에 두 가지 검사를 실행합니다. 파싱할 수 없는 JSON 값은 `Error: --json-schema is not valid JSON`으로 거부하고, 객체가 아닌 유효한 JSON은 `Error: --json-schema must be a JSON object`로 거부합니다. -**해야 할 일:** +**해결 방법:** -* 진단이 이름 지정한 스키마 부분을 수정한 후 명령어를 다시 실행합니다. -* [구조화된 출력 가져오기](/docs/ko/headless#get-structured-output)에서 작동하는 스키마와 명령어를 참조하세요. +* 진단 내용이 가리키는 스키마 부분을 수정한 다음 명령을 다시 실행합니다 +* 동작하는 스키마와 명령은 [구조화된 출력 받기](/docs/ko/headless#get-structured-output)를 참조하세요

설정 파일이 2MiB 제한을 초과함

-[`--settings`](/docs/ko/cli-reference#cli-flags)에 전달한 파일이 2MiB보다 크므로 `claude`가 시작 시 코드 1로 종료되고 로드하지 않습니다. v2.1.214 이전에는 Claude Code가 크기 확인 없이 파일을 읽었고 수 기가바이트 파일이나 `/dev/zero` 같은 장치 파일이 메모리를 무한정 증가시켰습니다. +[`--settings`](/docs/ko/cli-reference#cli-flags)에 전달한 파일이 2 MiB보다 크므로, `claude`는 파일을 로드하지 않고 시작 시 종료 코드 1로 종료됩니다. v2.1.214 이전에는 Claude Code가 크기 검사 없이 파일을 읽었으며, 수 기가바이트 크기의 파일이나 `/dev/zero` 같은 장치 파일로 인해 메모리가 무한정 증가했습니다. ```text theme={null} Error: Settings file exceeds the 2MiB limit: /path/to/settings.json ``` -Claude Code는 일반 파일이 아닌 `--settings` 경로를 같은 방식으로 거부합니다: 장치, FIFO 또는 소켓은 `Error: Cannot use settings file (Not a regular file (device, FIFO, or socket))`을 보고하고 경로를 따르며 디렉토리는 `EISDIR` 이유를 보고합니다. +Claude Code는 일반 파일이 아닌 `--settings` 경로도 같은 방식으로 거부합니다. 장치, FIFO 또는 소켓은 `Error: Cannot use settings file (Not a regular file (device, FIFO, or socket))` 뒤에 경로를 표시하고, 디렉터리는 `EISDIR` 사유를 표시합니다. -**해야 할 일:** +**해결 방법:** -* `--settings`를 2MiB 미만의 일반 JSON 설정 파일로 지정합니다. 형식은 [설정](/docs/ko/settings)을 참조하세요. +* `--settings`가 2 MiB 미만의 일반 JSON 설정 파일을 가리키도록 합니다. 형식은 [설정](/docs/ko/settings)을 참조하세요.

- 현재 디렉토리가 더 이상 존재하지 않음 + 현재 디렉터리가 더 이상 존재하지 않음

-셸이 디렉토리에 들어간 후 삭제되거나 이동된 디렉토리에서 `claude`를 시작했습니다. 예를 들어 다른 셸이 제거한 worktree 또는 임시 디렉토리입니다. Claude Code가 작업 디렉토리를 읽을 수 없으므로 대화형 및 [비대화형](/docs/ko/headless) 모드 모두에서 세션을 시작하기 전에 코드 1로 종료됩니다. v2.1.239 이전에는 Claude Code가 축소된 번들 소스와 stderr의 원시 `ENOENT ... uv_cwd` 스택으로 충돌했습니다. +셸이 진입한 후 삭제되거나 이동된 디렉터리에서 `claude`를 시작했습니다. 예를 들어 다른 셸이 제거한 worktree나 임시 디렉터리가 이에 해당합니다. Claude Code는 작업 디렉터리를 읽을 수 없으므로, 대화형 모드와 [비대화형](/docs/ko/headless) 모드 모두에서 세션을 시작하기 전에 종료 코드 1로 종료됩니다. v2.1.239 이전에는 Claude Code가 이 메시지 대신 stderr에 축소된 번들 소스와 원시 `ENOENT ... uv_cwd` 스택을 출력하며 비정상 종료되었습니다. ```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. ``` -원인과 해결책은 두 형식 모두 동일합니다. +두 형식 모두 원인과 해결 방법은 같습니다. -Claude Code가 권한 변경 같은 다른 이유로 작업 디렉토리를 읽을 수 없으면 메시지는 오류 코드를 이름 지정합니다: `Can't read the current directory (EACCES). Start Claude Code from a different directory.` +권한 변경처럼 다른 이유로 Claude Code가 작업 디렉터리를 읽을 수 없는 경우, 메시지에는 대신 오류 코드가 표시됩니다: `Can't read the current directory (EACCES). Start Claude Code from a different directory.` -macOS에서 `~/Desktop`, `~/Documents`, `~/Downloads` 또는 iCloud Drive의 디렉토리에 대한 `EPERM`은 보통 macOS가 터미널 앱을 해당 폴더에서 차단하고 있다는 의미입니다. 해당 폴더를 읽는 다른 명령어도 같은 방식으로 실패합니다: `ls`는 `sudo`를 사용해도 `Operation not permitted`를 보고합니다. +macOS에서 `~/Desktop`, `~/Documents`, `~/Downloads` 또는 iCloud Drive의 디렉터리에 대해 `EPERM`이 발생하면 일반적으로 macOS가 터미널 앱의 해당 폴더 접근을 차단하고 있다는 뜻입니다. 해당 폴더를 읽는 다른 명령도 같은 방식으로 실패합니다. 그곳에서 `ls`를 실행하면 `sudo`를 사용해도 `Operation not permitted`가 표시됩니다. -**해야 할 일:** +**해결 방법:** -* 홈 또는 프로젝트 디렉토리 같은 존재하는 디렉토리로 변경한 후 `claude`를 다시 실행합니다. -* 디렉토리가 같은 경로에서 다시 생성되었으면 셸이 여전히 삭제된 것을 보유합니다. `cd "$PWD"`를 실행하거나 디렉토리를 나갔다가 다시 들어간 후 `claude`를 다시 실행합니다. -* macOS의 `EPERM`의 경우 Cmd+Q로 터미널 앱을 종료하고 다시 열고 해당 폴더로 돌아가 `claude`를 실행합니다. 해당 폴더의 `ls`가 여전히 실패하면 **System Settings > Privacy & Security > Files and Folders**를 열고 터미널 앱에 대한 폴더를 켠 후 터미널을 다시 엽니다. +* 홈 디렉터리나 프로젝트 디렉터리처럼 존재하는 디렉터리로 이동한 다음 `claude`를 다시 실행합니다 +* 디렉터리가 같은 경로에 다시 생성된 경우에도 셸은 여전히 삭제된 디렉터리를 가리키고 있습니다. `cd "$PWD"`를 실행하거나 디렉터리에서 나갔다가 다시 들어간 다음 `claude`를 다시 실행합니다 +* macOS에서 `EPERM`이 발생하면 Cmd+Q로 터미널 앱을 종료하고 다시 연 다음, 해당 폴더로 돌아가 `claude`를 실행합니다. 해당 폴더에서 `ls`가 여전히 실패하면 **시스템 설정 > 개인정보 보호 및 보안 > 파일 및 폴더**를 열고 터미널 앱에 대해 해당 폴더를 켠 다음 터미널을 다시 엽니다

- 임시 디렉토리가 거부되었거나 만들 수 없음 + 임시 디렉터리가 거부되거나 생성할 수 없음

-macOS 및 Linux에서 Claude Code는 시작 시 시스템 임시 디렉토리 또는 [`CLAUDE_CODE_TMPDIR`](/docs/ko/env-vars) 재정의 아래에 `claude-` 개인 임시 디렉토리를 만듭니다. 디렉토리를 만들 수 없거나 해당 경로의 항목이 안전 확인에 실패하면 Claude Code는 세션을 시작하는 대신 실패를 stderr에 출력하고 코드 1로 종료됩니다: +macOS와 Linux에서 Claude Code는 시작 시 시스템 임시 디렉터리 또는 [`CLAUDE_CODE_TMPDIR`](/docs/ko/env-vars) 재정의 경로 아래에 비공개 임시 디렉터리 `claude-`를 만듭니다. 디렉터리를 만들 수 없거나 해당 경로에 이미 있는 항목이 안전 검사를 통과하지 못하면, Claude Code는 실패 내용을 stderr에 출력하고 세션을 시작하지 않고 종료 코드 1로 종료됩니다: ```text wrap theme={null} ENOSPC: no space left on device, mkdir '/tmp/claude-501' @@ -3004,295 +3054,312 @@ Temp directory /tmp/claude-501 is owned by uid 502, expected 501. Refusing to us 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. ``` -**해야 할 일:** +**해결 방법:** -* `ENOSPC`의 경우 임시 디렉토리를 보유하는 볼륨의 디스크 공간을 확보합니다. -* `Refusing to use it` 형식의 경우 링크가 가리키는 것이 아니라 이름 지정된 항목 자체를 제거하고 Claude Code를 다시 시작합니다. `owned by uid` 형식의 경우 관리자 또는 해당 사용자만 제거할 수 있습니다. -* `is not readable`의 경우 이름 지정된 디렉토리에서 `chmod 0700`을 실행하거나 제거하고 다시 시작합니다. -* 이러한 경우 중 하나에서 [`CLAUDE_CODE_TMPDIR`](/docs/ko/env-vars)을 제어하는 디렉토리로 설정하고 Claude Code를 시작하여 거부된 경로를 그대로 둡니다. +* `ENOSPC`의 경우 임시 디렉터리가 있는 볼륨의 디스크 공간을 확보합니다 +* `Refusing to use it` 형식의 경우 링크가 가리키는 대상이 아니라 메시지에 표시된 항목 자체를 제거하고 Claude Code를 다시 시작합니다. `owned by uid` 형식의 경우 관리자 또는 해당 사용자만 제거할 수 있습니다 +* `is not readable`의 경우 표시된 디렉터리에 `chmod 0700`을 실행하거나, 디렉터리를 제거하고 다시 시작합니다 +* 어떤 경우든 거부된 경로는 그대로 두고 [`CLAUDE_CODE_TMPDIR`](/docs/ko/env-vars)를 직접 제어하는 디렉터리로 설정한 다음 Claude Code를 다시 시작할 수 있습니다

- 디렉토리를 실제 위치로 확인할 수 없음 + 디렉터리를 실제 위치로 확인할 수 없음

-작업 디렉토리의 하위 디렉토리에 대해 `/add-dir`을 실행했고 Claude Code가 디렉토리를 실제 위치로 확인할 수 없습니다. +작업 디렉터리의 하위 디렉터리에 대해 `/add-dir`를 실행했지만, Claude Code가 해당 디렉터리의 실제 위치를 확인할 수 없었습니다. -작업 디렉토리의 하위 디렉토리에 이미 파일 액세스 권한이 있으므로 `/add-dir`은 해당 스킬, 명령어 및 에이전트만 로드합니다. 로드하기 전에 Claude Code는 심볼릭 링크가 확인된 디렉토리의 실제 위치가 작업 디렉토리 내부에 있는지 확인합니다. Claude Code가 해당 위치를 확인할 수 없으면 아무것도 로드하지 않고 이 메시지를 표시합니다: +작업 디렉터리의 하위 디렉터리에는 이미 파일 접근 권한이 있으므로, `/add-dir`는 해당 디렉터리의 스킬, 명령, 에이전트만 로드합니다. 이를 로드하기 전에 Claude Code는 심볼릭 링크를 모두 확인한 디렉터리의 실제 위치가 작업 디렉터리 안에 있는지 검사합니다. Claude Code가 해당 위치를 확인할 수 없으면 아무것도 로드하지 않고 다음 메시지를 표시합니다: ```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. ``` -**해야 할 일:** +**해결 방법:** -* 경로가 작업 디렉토리 내부의 실제 디렉토리를 이름 지정하는지 확인한 후 `/add-dir`을 다시 실행합니다. -* 메시지는 파일 액세스를 변경하지 않습니다. 디렉토리의 `.claude/` 콘텐츠가 로드되지 않았음을 보고할 뿐입니다. +* 경로가 작업 디렉터리 안의 실제 디렉터리를 가리키는지 확인한 다음 `/add-dir`를 다시 실행합니다 +* 이 메시지는 파일 접근 권한을 변경하지 않으며, 해당 디렉터리의 `.claude/` 콘텐츠가 로드되지 않았다는 사실만 알립니다 -v2.1.261 이전에는 작업 디렉토리가 `/net/` 자동 마운트에 있을 때 모든 `/add-dir `에 대해 이 메시지가 나타났습니다. Claude Code는 설계상 경로를 확인하기를 거부합니다. 디렉토리는 정상이었고 재시도할 수 없었습니다. +v2.1.261 이전에는 작업 디렉터리가 `/net/` 자동 마운트에 있을 때 모든 `/add-dir `에 대해서도 이 메시지가 표시되었습니다. 이 경우 Claude Code는 설계상 경로 확인을 하지 않으므로, 디렉터리에는 문제가 없었고 재시도해도 도움이 되지 않았습니다.

- Remote Control 시작 시 작업 영역을 신뢰하지 않음 + Remote Control 시작 시 워크스페이스를 신뢰하지 않음

-신뢰하지 않은 디렉토리에서 `claude remote-control` 또는 그 `claude rc` 별칭으로 [Remote Control](/docs/ko/remote-control) 서버 모드를 시작했습니다. 명령어의 표준 입력 또는 표준 출력이 터미널이 아닐 때 이 메시지가 나타납니다. 예를 들어 하나가 리디렉션되거나 파이프되었을 때입니다. 명령어는 코드 1로 종료됩니다: +신뢰하지 않은 디렉터리에서 `claude remote-control` 또는 그 별칭인 `claude rc`로 [Remote Control](/docs/ko/remote-control) 서버 모드를 시작했으며, 명령이 해당 디렉터리를 신뢰할지 물어볼 수 없었습니다. 예를 들어 표준 입력이나 표준 출력 중 하나가 리디렉션되거나 파이프로 연결되어 터미널이 아닌 경우입니다. 명령은 종료 코드 1로 종료됩니다: ```text theme={null} Error: Workspace not trusted. Please run `claude` in /Users/you/project first to review and accept the workspace trust dialog. ``` -터미널에 나타나는 두 가지 변형도 신뢰 디렉토리를 켜는 것을 표시하기에 너무 작은 터미널이나 크기를 보고하지 않은 터미널에서 시작됩니다. 창을 확대하거나 일반 터미널 창으로 전환한 후 `claude rc`를 다시 실행합니다. +마찬가지로 `Error: Workspace not trusted.`로 시작하는 두 가지 변형은 디렉터리를 신뢰할 때 켜지는 항목을 표시하기에 너무 작은 터미널이나 크기를 보고하지 않는 터미널에서 표시됩니다. 창을 키우거나 일반 터미널 창으로 전환한 다음 `claude rc`를 다시 실행합니다. -홈 디렉토리에서 메시지는 다릅니다. 작업 영역 신뢰 대화가 홈 디렉토리에 대한 신뢰를 저장하지 않기 때문입니다. v2.1.214 이전에는 홈 디렉토리가 위의 메시지를 표시했고 그 조언은 거기서 성공할 수 없었습니다. +홈 디렉터리에서는 메시지가 다릅니다. 워크스페이스 신뢰 대화 상자는 홈 디렉터리에 대한 신뢰를 저장하지 않으므로, 그곳에서 수락해도 이 검사를 통과할 수 없기 때문입니다. v2.1.214 이전에는 홈 디렉터리에서 위의 메시지가 표시되었으며, 그 안내는 홈 디렉터리에서 성공할 수 없었습니다. ```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). ``` -[`Trust ?` 질문](/docs/ko/remote-control#requirements)에서 `n`을 답하거나 Enter를 누르면 명령어는 디렉토리를 이름 지정하는 `Remote Control did not start` 메시지를 출력하고 코드 1로 종료됩니다. `claude rc`를 다시 실행하여 `y`를 답합니다. +[`Trust ?` 질문](/docs/ko/remote-control#requirements)에 `n`으로 답하거나 Enter를 누르면, 명령은 디렉터리 이름이 포함된 `Remote Control did not start` 메시지를 출력하고 종료 코드 1로 종료됩니다. `claude rc`를 다시 실행하여 `y`로 답합니다. -**해야 할 일:** +**해결 방법:** -* 먼저 터미널에서 디렉토리를 신뢰합니다: 거기서 `claude rc`를 실행하고 `y`를 답하거나 거기서 `claude`를 실행하고 [작업 영역 신뢰 대화](/docs/ko/permissions#project-allow-rules-and-workspace-trust)를 수락한 후 원래 명령어를 다시 실행합니다. -* 홈 디렉토리에서 프로젝트 디렉토리로 변경하고 거기서 Remote Control을 시작합니다. +* 먼저 터미널에서 디렉터리를 신뢰합니다. 그곳에서 `claude rc`를 실행하고 `y`로 답하거나, `claude`를 실행하고 [워크스페이스 신뢰 대화 상자](/docs/ko/permissions#project-allow-rules-and-workspace-trust)를 수락한 다음 원래 명령을 다시 실행합니다 +* 홈 디렉터리에 있다면 프로젝트 디렉터리로 이동하여 그곳에서 Remote Control을 시작합니다 -v2.1.284 이전에는 명령어가 터미널에서도 묻지 않았습니다. +v2.1.284 이전에는 터미널에서도 명령이 묻지 않았습니다.

- Remote Control이 시작하는 세션으로 이월되지 않음 + Remote Control이 시작하는 세션으로 전달되지 않음

-[Remote Control](/docs/ko/remote-control)을 `remote-control` 동사 앞의 전역 `claude` 플래그로 시작했습니다. Remote Control이 시작하는 세션을 제한하거나 구성하는 플래그입니다. 예를 들어 `--settings`, `--setting-sources`, `--permission-mode`, `--disallowed-tools` 또는 `--mcp-config`입니다. 동사 앞에 배치된 플래그는 절대 이러한 세션에 도달하지 않습니다. Claude Code는 대신 시작을 거부하고 플래그를 이름 지정합니다: +`remote-control` 동사 앞에 전역 `claude` 플래그를 두고 [Remote Control](/docs/ko/remote-control)을 시작했으며, 그 플래그는 `--settings`, `--setting-sources`, `--permission-mode`, `--disallowed-tools`, `--mcp-config`처럼 Remote Control이 시작하는 세션을 제한하거나 구성하는 플래그입니다. 동사 앞에 놓인 플래그는 해당 세션에 전달되지 않습니다. Claude Code는 대신 플래그 이름을 표시하며 시작을 거부합니다: ```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는 `--verbose`, `--model` 또는 래퍼 주입 `--session-id` 또는 `--plugin-dir` 같은 드롭하기에 무해한 전역 플래그를 거부하지 않습니다: 무시하고 Remote Control이 시작됩니다. +Claude Code는 `--verbose`, `--model`, 또는 래퍼가 주입한 `--session-id`나 `--plugin-dir`처럼 버려도 무해한 전역 플래그는 거부하지 않습니다. 이러한 플래그는 무시되고 Remote Control이 시작됩니다. -Claude Code는 또한 아직 무해한 것으로 인식하지 못하는 전역 플래그를 거부하므로 최신 릴리스에 추가된 플래그는 나중 릴리스가 무해한 것으로 표시할 때까지 이 메시지에 나타날 수 있습니다. +Claude Code는 아직 무해한 것으로 인식하지 않은 전역 플래그에 대해서도 시작을 거부하므로, 최신 릴리스에 추가된 플래그는 이후 릴리스에서 무해한 것으로 표시될 때까지 이 메시지에 나타날 수 있습니다. -**해야 할 일:** +**해결 방법:** -* 동사 앞에서 플래그를 제거하고 [Remote Control의 자체 옵션](/docs/ko/remote-control#start-a-remote-control-session)을 그 뒤에 전달합니다. `claude remote-control --help`가 이를 나열합니다. -* 거부된 플래그가 `--permission-mode`이면 `claude remote-control --permission-mode `를 실행하여 Remote Control이 시작하는 세션의 권한 모드를 설정합니다. +* 동사 앞에서 플래그를 제거하고 [Remote Control 고유 옵션](/docs/ko/remote-control#start-a-remote-control-session)을 동사 뒤에 전달합니다. `claude remote-control --help`에 해당 옵션이 나열됩니다 +* 거부된 플래그가 `--permission-mode`인 경우 `claude remote-control --permission-mode `를 실행하여 Remote Control이 시작하는 세션의 권한 모드를 설정합니다 -v2.1.248 이전에는 `claude remote-control`이 전역 플래그가 먼저 올 때 자체 플래그를 허용하지 않았고 명령어가 알 수 없는 옵션 오류로 실패했습니다. +v2.1.248 이전에는 전역 플래그가 먼저 오면 `claude remote-control`이 고유 플래그를 받지 않았으며, 명령이 `unknown option` 오류로 실패했습니다.

- claude import는 이 빌드에서 아직 사용할 수 없음 + 이 빌드에서는 아직 claude import를 사용할 수 없음

-[`claude import`](/docs/ko/cli-reference#cli-commands)를 실행했고 Claude Code가 가져오기 흐름이 꺼져 있음을 발견했으므로 명령어가 이 메시지를 출력하는 대신 코드 1로 종료됩니다. v2.1.222 이전에는 가져오기 흐름이 꺼진 빌드가 `import`를 프롬프트로 취급하고 이 메시지를 출력하는 대신 대화형 세션을 시작했습니다. +[`claude import`](/docs/ko/cli-reference#cli-commands)를 실행했지만 Claude Code에서 가져오기 흐름이 꺼져 있으므로, 명령은 가져오기를 시작하지 않고 종료 코드 1로 종료됩니다. v2.1.222 이전에는 가져오기 흐름이 꺼진 빌드가 `import`를 프롬프트로 처리하여 이 메시지를 출력하는 대신 대화형 세션을 시작했습니다. ```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는 Anthropic에서 가져온 기능 플래그를 통해 `claude import`를 켜고 디스크에 캐시합니다. 이 메시지는 캐시된 값이 꺼져 있다는 의미입니다. 원인은 보통 다음 중 하나입니다: +Claude Code는 Anthropic에서 가져와 디스크에 캐시하는 기능 플래그를 통해 `claude import`를 켭니다. 이 메시지는 캐시된 값이 꺼져 있다는 뜻입니다. 원인은 일반적으로 다음 중 하나입니다: -* 설치 후 세션을 시작하지 않았으므로 Claude Code가 플래그를 아직 가져오지 않았습니다. 첫 번째 `claude import`는 기능을 사용할 수 있을 때도 이를 출력할 수 있습니다. -* Amazon Bedrock, Google Cloud의 Agent Platform, Microsoft Foundry, Claude Platform on AWS를 통해 Claude Code를 사용하거나 [Claude 앱 게이트웨이](/docs/ko/claude-apps-gateway#availability-and-limitations)를 통해 사용합니다. Claude Code는 이러한 세션에서 기능 플래그를 가져오지 않으므로 `claude import`는 사용할 수 없습니다. -* `DISABLE_TELEMETRY`, `DO_NOT_TRACK`, `DISABLE_GROWTHBOOK` 또는 [`CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`](/docs/ko/env-vars)를 설정했습니다. 이는 기능 플래그 가져오기를 끕니다. 따라서 `claude import`는 사용할 수 없습니다. +* 설치 후 아직 세션을 시작하지 않아 Claude Code가 플래그를 가져오지 않았습니다. 기능을 사용할 수 있는 경우에도 첫 번째 `claude import`에서 이 메시지가 출력될 수 있습니다. +* Amazon Bedrock, Google Cloud의 Agent Platform, Microsoft Foundry 또는 Claude Platform on AWS를 통해, 또는 [Claude apps 게이트웨이](/docs/ko/claude-apps-gateway#availability-and-limitations)를 통해 Claude Code를 사용합니다. 이러한 세션에서는 Claude Code가 기능 플래그를 가져오지 않으므로 `claude import`를 계속 사용할 수 없습니다. +* 기능 플래그 가져오기를 끄는 `DISABLE_TELEMETRY`, `DO_NOT_TRACK`, `DISABLE_GROWTHBOOK` 또는 [`CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`](/docs/ko/env-vars)를 설정했으므로 `claude import`를 계속 사용할 수 없습니다. -**해야 할 일:** +**해결 방법:** -* 새로 설치한 경우 `claude`를 시작하고 세션이 로드될 때까지 기다린 후 종료하고 `claude import`를 다시 실행합니다. -* 기능 플래그 가져오기가 꺼진 경우 구성을 직접 설정합니다: [`claude mcp add`](/docs/ko/mcp#installing-mcp-servers)로 MCP 서버를 추가하고 [`CLAUDE.md` 파일](/docs/ko/memory#how-claude-md-files-load), [스킬 및 명령어](/docs/ko/skills#where-skills-live) 및 [하위 에이전트](/docs/ko/sub-agents#choose-the-subagent-scope)를 만듭니다. 메시지는 또한 `~/.claude/settings.json`을 이름 지정합니다. `claude import`가 이월하는 구성 중에서 해당 파일은 [권한 모드](/docs/ko/settings-reference#permission-settings)만 보유합니다. Claude Code는 이 파일에서 MCP 서버를 읽지 않습니다. +* 새로 설치한 경우 `claude`를 시작하고 세션이 로드될 때까지 기다린 다음 종료하고 `claude import`를 다시 실행합니다 +* 기능 플래그 가져오기가 계속 꺼져 있는 환경에서는 구성을 직접 설정합니다. [`claude mcp add`](/docs/ko/mcp#installing-mcp-servers)로 MCP 서버를 추가하고, 옮기려는 [`CLAUDE.md` 파일](/docs/ko/memory#how-claude-md-files-load), [스킬과 명령](/docs/ko/skills#where-skills-live), [서브에이전트](/docs/ko/sub-agents#choose-the-subagent-scope)를 만듭니다. 메시지에는 `~/.claude/settings.json`도 언급됩니다. `claude import`가 옮기는 구성 중 해당 파일에는 [권한 모드](/docs/ko/settings-reference#permission-settings)만 들어 있으며, Claude Code는 이 파일에서 MCP 서버를 읽지 않습니다.

Claude Code 구성을 읽을 수 없음

-로그인 및 프로젝트별 상태를 저장하는 파일인 `~/.claude.json`을 파싱할 수 없는 동안 [`claude import`](/docs/ko/cli-reference#cli-commands)를 실행했습니다. 하위 명령어는 가용성을 확인하기 위해 해당 파일을 읽지만 대화형 세션이 표시하는 복구 대화를 표시하지 않으므로 코드 1로 종료됩니다. v2.1.222 이전에는 읽을 수 없는 구성 파일이 있는 `claude import`가 대화형 세션을 시작했고 복구 대화가 파일을 처리했습니다. +Claude Code가 로그인 및 프로젝트별 상태를 저장하는 파일인 `~/.claude.json`을 파싱할 수 없는 상태에서 [`claude import`](/docs/ko/cli-reference#cli-commands)를 실행했습니다. 이 하위 명령은 사용 가능 여부를 확인하기 위해 해당 파일을 읽지만 대화형 세션이 표시하는 복구 대화 상자를 표시하지 않으므로 종료 코드 1로 종료됩니다. v2.1.222 이전에는 읽을 수 없는 설정 파일이 있을 때 `claude import`가 대화형 세션을 시작했으며, 그 세션의 복구 대화 상자가 파일을 처리했습니다. ```text theme={null} Could not read Claude Code config — run `claude` with no arguments to recover it. ``` -**해야 할 일:** +**해결 방법:** -* 인수 없이 `claude`를 실행합니다. Claude Code가 유효하지 않은 파일을 감지하고 재설정을 제안합니다. 그런 다음 `claude import`를 다시 실행합니다. -* 수동으로 편집한 내용을 유지하려면 편집기에서 `~/.claude.json`의 JSON 구문을 수정한 후 `claude import`를 다시 실행합니다. +* 인수 없이 `claude`를 실행합니다. Claude Code가 잘못된 파일을 감지하고 재설정을 제안합니다. 그런 다음 `claude import`를 다시 실행합니다. +* 직접 편집한 내용을 유지하려면 대신 편집기에서 `~/.claude.json`의 JSON 구문을 수정한 다음 `claude import`를 다시 실행합니다

Claude Desktop에서 서버를 가져올 수 없음

-Claude Code가 `claude mcp add-from-claude-desktop`에서 선택한 서버 중 하나를 추가할 수 없습니다. 명령어는 여전히 다른 선택된 서버를 가져오고 추가할 수 없는 각 서버당 한 줄을 출력합니다. v2.1.205 이전에는 실패한 첫 번째 서버가 가져오기를 중지했고 선택된 서버 중 어느 것도 추가되지 않았습니다. +Claude Code가 `claude mcp add-from-claude-desktop`에서 선택한 서버 중 하나를 추가할 수 없었습니다. 명령은 선택한 다른 서버를 계속 가져오며, 추가할 수 없었던 서버마다 한 줄씩 출력합니다. v2.1.205 이전에는 처음 실패한 서버에서 가져오기가 중단되었습니다. ```text theme={null} Could not import my server: Invalid name my server. Names can only contain letters, numbers, hyphens, and underscores. ``` -서버 이름 뒤의 텍스트는 이유입니다. 가장 일반적인 것은 이름 확인입니다: Claude Desktop은 서버 이름에 공백 및 마침표 같은 문자를 허용하지만 `claude mcp`는 문자, 숫자, 하이픈 및 밑줄로 제한합니다. 다른 이유로는 검증에 실패하는 서버 구성과 조직의 [MCP 정책](/docs/ko/managed-mcp)에 의해 차단된 서버가 있습니다. +서버 이름 뒤의 텍스트가 사유입니다. 가장 흔한 사유는 이름 검사입니다. Claude Desktop은 서버 이름에 공백이나 마침표 같은 문자를 허용하지만, `claude mcp`는 이를 문자, 숫자, 하이픈, 밑줄로 제한합니다. 그 밖의 사유로는 검증에 실패한 서버 구성과 조직의 [MCP 정책](/docs/ko/managed-mcp)으로 차단된 서버가 있습니다. -**해야 할 일:** +**해결 방법:** -* `claude_desktop_config.json`에서 서버 이름을 문자, 숫자, 하이픈 및 밑줄만 사용하도록 바꾼 후 `claude mcp add-from-claude-desktop`을 다시 실행합니다. +* `claude_desktop_config.json`에서 서버 이름을 문자, 숫자, 하이픈, 밑줄만 사용하도록 바꾼 다음 `claude mcp add-from-claude-desktop`을 다시 실행합니다 * 유효한 이름으로 `claude mcp add` 또는 `claude mcp add-json`을 사용하여 해당 서버를 직접 추가합니다. [Claude Desktop에서 MCP 서버 가져오기](/docs/ko/mcp#import-mcp-servers-from-claude-desktop)를 참조하세요.

- MCP 서버를 관리 범위에 추가할 수 없음 + 관리형 범위에 MCP 서버를 추가할 수 없음

-`--scope managed`로 `claude mcp add` 또는 `claude mcp add-json`을 실행했습니다. 해당 범위는 조직이 [`managedMcpServers`](/docs/ko/settings-reference#managedmcpservers) 관리 설정을 통해 제공하는 서버를 보유합니다. Claude Code는 관리 설정에서만 읽으므로 명령어가 해당 범위에 서버를 쓸 수 없습니다. +`--scope managed`와 함께 `claude mcp add` 또는 `claude mcp add-json`을 실행했습니다. 이 범위에는 조직이 [`managedMcpServers`](/docs/ko/settings-reference#managedmcpservers) 관리형 설정을 통해 제공하는 서버가 들어 있습니다. Claude Code는 이 서버들을 관리형 설정에서만 읽으므로 명령은 해당 범위에 서버를 기록할 수 없습니다. ```text theme={null} Cannot add MCP server to scope: managed ``` -**해야 할 일:** +**해결 방법:** -* 쓸 수 있는 범위에 서버를 추가합니다: `local`, `user` 또는 `project`. `--scope` 없이 명령어는 `local`을 사용합니다. [MCP 설치 범위](/docs/ko/mcp#mcp-installation-scopes)를 참조하세요. -* 조직의 모든 사용자에게 서버를 제공하려면 배포하는 관리 설정의 [`managedMcpServers`](/docs/ko/settings-reference#managedmcpservers)에 추가합니다. +* 기록할 수 있는 범위(`local`, `user`, `project`)에 서버를 추가합니다. `--scope`가 없으면 명령은 `local`을 사용합니다. [MCP 설치 범위](/docs/ko/mcp#mcp-installation-scopes)를 참조하세요 +* 조직의 모든 사용자에게 서버를 제공하려면 배포하는 관리형 설정의 [`managedMcpServers`](/docs/ko/settings-reference#managedmcpservers)에 추가합니다 + +

+ 관리형 설정이 플러그인 서버만 허용할 때 MCP 서버를 추가할 수 없음 +

+ +조직의 관리형 설정이 [`strictPluginOnlyCustomization`](/docs/ko/settings-reference#strictpluginonlycustomization)을 `true` 또는 `mcp`를 포함하는 목록으로 설정한 상태에서 `claude mcp add` 또는 `claude mcp add-json`을 실행했습니다. 이 설정이 있으면 Claude Code는 `~/.claude.json`이나 `.mcp.json`에서 MCP 서버를 로드하지 않으므로, 명령은 로드되지 않을 서버를 저장하는 대신 종료 코드 1로 종료됩니다: + +```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`은 선택한 각 서버를 가져오지 않은 것으로 보고하며, 이 메시지를 사유로 표시합니다. [`/import`](/docs/ko/commands#all-commands)는 추가하려는 각 MCP 서버에 대해 이 메시지를 보고하며, 발견한 다른 항목은 계속 가져옵니다. + +v2.1.284 이전에는 이러한 명령이 서버를 저장하고 성공을 보고했지만 서버는 로드되지 않았습니다. + +**해결 방법:** + +* 해당 서버를 제공하는 [플러그인](/docs/ko/plugins/install)을 설치합니다 +* 관리자에게 서버를 [플러그인](/docs/ko/plugins/org)으로 배포하거나, 원격 HTTP 또는 SSE 서버라면 [`managedMcpServers`](/docs/ko/settings-reference#managedmcpservers)를 통해 제공하도록 요청합니다

.mcp.json을 읽을 수 없음

-프로젝트의 [`.mcp.json`](/docs/ko/mcp#project-scope)을 읽는 명령어(예: `--scope project`로 `claude mcp add` 또는 `claude mcp add-json` 또는 `claude mcp remove`)가 현재 디렉토리의 파일이 일반 파일이 아니거나 2MiB보다 크다는 것을 발견했으므로 파일을 읽는 대신 이 오류로 종료됩니다. +`--scope project`를 사용한 `claude mcp add` 또는 `claude mcp add-json`, 또는 `claude mcp remove`처럼 프로젝트의 [`.mcp.json`](/docs/ko/mcp#project-scope)을 읽는 명령이 현재 디렉터리의 파일이 일반 파일이 아니거나 2 MiB보다 크다는 것을 발견했으므로, 파일을 읽지 않고 이 오류와 함께 종료됩니다. ```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. ``` -v2.1.257 이전에는 `.mcp.json`의 FIFO가 명령어를 출력 없이 영원히 기다리게 했고 `/dev/zero` 같은 장치 파일에 대한 심볼릭 링크가 프로세스가 종료될 때까지 메모리를 증가시켰습니다. +v2.1.257 이전에는 `.mcp.json` 위치에 FIFO가 있으면 명령이 출력 없이 무한정 대기했으며, `/dev/zero` 같은 장치 파일로의 심볼릭 링크는 프로세스가 종료될 때까지 메모리를 증가시켰습니다. -**해야 할 일:** +**해결 방법:** -* 현재 디렉토리의 `.mcp.json`에 무엇이 있는지 확인합니다. [프로젝트 범위 형식](/docs/ko/mcp#project-scope)의 일반 JSON 파일로 바꾸거나 삭제한 후 명령어를 다시 실행합니다. +* 현재 디렉터리의 `.mcp.json` 위치에 무엇이 있는지 확인합니다. [프로젝트 범위 형식](/docs/ko/mcp#project-scope)의 일반 JSON 파일로 바꾸거나 삭제한 다음 명령을 다시 실행합니다.

- MCP 서버는 저장되지 않았거나 제거되지 않음 + MCP 서버가 저장되거나 제거되지 않음

-`claude mcp add`, `claude mcp add-json` 또는 `claude mcp remove`를 `user` 또는 `local` [범위](/docs/ko/mcp#mcp-installation-scopes)의 서버에 대해 실행했습니다. 두 범위 모두 `~/.claude.json`에 저장되고 쓴 후 Claude Code가 읽을 때 변경이 해당 파일에 없습니다. 명령어는 성공 줄 대신 이 오류로 종료됩니다. +`user` 또는 `local` [범위](/docs/ko/mcp#mcp-installation-scopes)의 서버에 대해 `claude mcp add`, `claude mcp add-json` 또는 `claude mcp remove`를 실행했습니다. 두 범위 모두 `~/.claude.json`에 저장되며, Claude Code가 기록 후 파일을 다시 읽었을 때 변경 사항이 해당 파일에 없었습니다. 명령은 성공 메시지 대신 이 오류와 함께 종료됩니다. ```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. ``` -제거 후 메시지는 `was not removed from`을 읽고 `then remove the server again`으로 끝납니다. `local` 범위 서버의 경우 경로 뒤에 항목이 속한 프로젝트 디렉토리가 `(local scope for /path/to/project)`로 따릅니다. +제거 후에는 메시지가 `was not removed from`으로 표시되고 `then remove the server again`으로 끝납니다. `local` 범위 서버의 경우 경로 뒤에 항목이 속한 프로젝트 디렉터리가 `(local scope for /path/to/project)` 형태로 표시됩니다. -v2.1.283 이전에는 `claude mcp add`, `claude mcp add-json` 및 `claude mcp remove`가 변경이 파일에 도달하지 않았을 때도 성공을 보고했습니다. +v2.1.283 이전에는 변경 사항이 파일에 반영되지 않았을 때에도 `claude mcp add`, `claude mcp add-json`, `claude mcp remove`가 성공을 보고했습니다. -**해야 할 일:** +**해결 방법:** -* 메시지가 이름 지정하는 파일을 쓸 수 있게 만들거나 샌드박스 외부에서 명령어를 실행한 후 동일한 추가 또는 제거 명령어를 다시 실행합니다. +* 메시지에 표시된 파일을 쓰기 가능하게 만들거나 샌드박스 외부에서 명령을 실행한 다음, 같은 추가 또는 제거 명령을 다시 실행합니다.

- MCP 서버는 저장되지 않았거나 제거되지 않았을 수 있음 + MCP 서버가 저장되거나 제거되지 않았을 수 있음

-`claude mcp add`, `claude mcp add-json` 또는 `claude mcp remove`를 `user` 또는 `local` [범위](/docs/ko/mcp#mcp-installation-scopes)의 서버에 대해 실행했고 Claude Code가 변경을 확인하기 위해 `~/.claude.json`을 읽을 수 없습니다. 변경이 디스크에 있을 수도 있고 없을 수도 있습니다. 괄호의 텍스트는 해당 읽기의 오류입니다. +`user` 또는 `local` [범위](/docs/ko/mcp#mcp-installation-scopes)의 서버에 대해 `claude mcp add`, `claude mcp add-json` 또는 `claude mcp remove`를 실행했지만, Claude Code가 변경 사항을 확인하기 위해 `~/.claude.json`을 다시 읽을 수 없었습니다. 변경 사항이 디스크에 반영되었을 수도, 그렇지 않을 수도 있습니다. 괄호 안의 텍스트는 해당 읽기에서 발생한 오류입니다. ```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. ``` -제거 후 메시지는 `may not have been removed`를 읽고 `then remove the server again if it is still listed`로 끝납니다. +제거 후에는 메시지가 `may not have been removed`로 표시되고 `then remove the server again if it is still listed`로 끝납니다. -v2.1.283 이전에는 변경을 확인할 수 없었을 때도 명령어가 성공을 보고했습니다. +v2.1.283 이전에는 변경 사항을 확인할 수 없는 경우에도 명령이 성공을 보고했습니다. -**해야 할 일:** +**해결 방법:** -* `claude mcp get `을 실행하여 변경이 디스크에 있는지 확인합니다. `local` 범위 서버의 경우 서버가 속한 프로젝트 디렉토리에서 실행합니다. 로컬 범위는 프로젝트별이기 때문입니다. -* 추가 후 서버가 누락되었거나 제거 후 여전히 나열되면 동일한 추가 또는 제거 명령어를 다시 실행합니다. +* `claude mcp get `을 실행하여 변경 사항이 디스크에 반영되었는지 확인합니다. `local` 범위 서버의 경우 로컬 범위는 프로젝트별이므로 서버가 속한 프로젝트 디렉터리에서 실행합니다. +* 추가 후 서버가 없거나 제거 후에도 여전히 나열되면 같은 추가 또는 제거 명령을 다시 실행합니다.

- 서버는 Anthropic 호스팅이며 로컬 OAuth를 지원하지 않음 + 서버가 Anthropic에서 호스팅되며 로컬 OAuth를 지원하지 않음

-URL이 타사 ID 공급자를 통해 인증하는 Anthropic 호스팅 커넥터 호스트를 가리키는 MCP 서버에 대한 로그인을 시작했습니다. 이러한 호스트에는 `microsoft365.mcp.claude.com`, `gmail.mcp.claude.com` 및 `gcal.mcp.claude.com`이 포함됩니다. Claude Code는 `/mcp` 패널과 `claude mcp login` 모두에서 이러한 호스트에 대한 로컬 OAuth 흐름을 시작하기를 거부합니다. [이들의 로그인은 claude.ai를 통해서만 작동](/docs/ko/mcp#use-mcp-servers-from-claude-ai)하기 때문입니다. +타사 ID 공급자를 통해 인증하는 Anthropic 호스팅 커넥터 호스트를 URL로 가리키는 MCP 서버에 대해 로그인을 시작했습니다. 이러한 호스트에는 `microsoft365.mcp.claude.com`, `gmail.mcp.claude.com`, `gcal.mcp.claude.com`이 포함됩니다. [이 호스트들의 로그인은 claude.ai를 통해서만 동작하므로](/docs/ko/mcp#use-mcp-servers-from-claude-ai), Claude Code는 `/mcp` 패널과 `claude mcp login` 모두에서 이 호스트에 대한 로컬 OAuth 흐름 시작을 거부합니다. ```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. ``` -Claude Code는 URL로 이러한 호스트를 일치시키므로 `claude mcp add` 또는 `.mcp.json`으로 추가한 서버가 이 중 하나를 가리킬 때 메시지가 나타납니다. +**해결 방법:** -**해야 할 일:** - -* `claude mcp remove `으로 항목을 제거하여 같은 URL의 claude.ai 커넥터를 숨길 수 없습니다. -* 제거한 후 [claude.ai/customize/connectors](https://claude.ai/customize/connectors)에서 서비스를 연결합니다. Claude Code에서 사용하는 계정에 로그인합니다. 연결되면 활성 인증 방법이 claude.ai 구독 로그인이면 [커넥터가 Claude Code에 자동으로 나타납니다](/docs/ko/mcp#use-mcp-servers-from-claude-ai). +* 같은 URL의 claude.ai 커넥터를 가리지 않도록 `claude mcp remove `으로 해당 항목을 제거합니다 +* 제거한 후 Claude Code에서 사용하는 계정으로 로그인한 상태에서 [claude.ai/customize/connectors](https://claude.ai/customize/connectors)에서 서비스를 연결합니다. 연결되면 활성 인증 방법이 claude.ai 구독 로그인인 경우 [커넥터가 Claude Code에 자동으로 나타납니다](/docs/ko/mcp#use-mcp-servers-from-claude-ai)

- 서버가 구성된 headersHelper에 의해 발행된 Authorization 헤더를 거부함 + 서버가 구성된 headersHelper가 생성한 Authorization 헤더를 거부함

-[`headersHelper`](/docs/ko/mcp#use-dynamic-headers-for-custom-authentication)가 `Authorization` 헤더를 제공하는 MCP 서버가 HTTP 401 또는 403으로 연결에 응답했으므로 Claude Code는 연결을 실패로 보고합니다. 헬퍼가 `Authorization` 헤더를 제공하므로 Claude Code는 [서버에 대해 OAuth로 폴백하지 않습니다](/docs/ko/mcp#authenticate-with-remote-mcp-servers): +[`headersHelper`](/docs/ko/mcp#use-dynamic-headers-for-custom-authentication)가 `Authorization` 헤더를 제공하는 MCP 서버가 연결에 HTTP 401 또는 403으로 응답했으므로, Claude Code는 연결을 실패로 보고합니다. 헬퍼가 `Authorization` 헤더를 제공하므로 Claude Code는 해당 서버에 대해 [OAuth로 폴백하지 않습니다](/docs/ko/mcp#authenticate-with-remote-mcp-servers): ```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는 각 연결 시도에서 헬퍼를 다시 실행하므로 토큰 회전 경쟁 같은 일시적 거부 후 재시도가 새 자격 증명으로 성공할 수 있습니다. +Claude Code는 연결을 시도할 때마다 헬퍼를 다시 실행하므로, 토큰 교체 경쟁 상태 같은 일시적인 거부 후에는 재시도 시 새 자격 증명으로 성공할 수 있습니다. -**해야 할 일:** +**해결 방법:** -* Claude Code가 실행하는 방식으로 `headersHelper` 명령어를 직접 실행합니다: [Claude Code가 실행하는 디렉토리](/docs/ko/mcp#where-the-helper-runs)에서, [Claude Code가 설정하는 환경 변수](/docs/ko/mcp#use-dynamic-headers-for-custom-authentication)를 사용하고, [Claude Code가 프로젝트 `.mcp.json`, 플러그인 또는 프로젝트 에이전트 파일의 서버에 대해 제거하는 자격 증명 변수](/docs/ko/mcp#which-variables-a-helper-can-read) 없이. 서버의 엔드포인트가 허용하는 `Authorization` 값을 출력하는지 확인합니다. -* 헬퍼 또는 자격 증명 소스를 수정한 후 `/mcp`에서 서버를 선택하고 **Reconnect**를 선택합니다. +* Claude Code가 실행하는 방식대로 `headersHelper` 명령을 직접 실행합니다. [Claude Code가 헬퍼를 실행하는 디렉터리](/docs/ko/mcp#where-the-helper-runs)에서, [Claude Code가 설정하는 환경 변수](/docs/ko/mcp#use-dynamic-headers-for-custom-authentication)와 함께 실행하되, 프로젝트 `.mcp.json`, 플러그인 또는 프로젝트 에이전트 파일의 서버인 경우 [Claude Code가 제거하는 자격 증명 변수](/docs/ko/mcp#which-variables-a-helper-can-read) 없이 실행합니다. 서버의 엔드포인트가 받아들이는 `Authorization` 값을 출력하는지 확인합니다 +* 헬퍼 또는 자격 증명 소스를 수정한 후 `/mcp`에서 서버를 선택하고 **Reconnect**를 선택합니다 -v2.1.248 이전에는 Claude Code가 헬퍼가 `Authorization` 헤더를 제공하는 서버에 대해 OAuth 검색을 실행했습니다. 해당 검색은 거부된 자격 증명을 보고하는 대신 `Incompatible auth server: does not support dynamic client registration`으로 실패할 수 있습니다. +v2.1.248 이전에는 헬퍼가 `Authorization` 헤더를 제공하는 서버에 대해서도 Claude Code가 OAuth 검색을 실행했습니다. 이 검색은 거부된 자격 증명을 보고하는 대신 `Incompatible auth server: does not support dynamic client registration`으로 실패할 수 있었습니다.

MCP 권한 프롬프트 도구를 찾을 수 없음

-[`--permission-prompt-tool`](/docs/ko/cli-reference#cli-flags)에 전달한 도구가 실행이 처음 권한 결정이 필요할 때 연결된 MCP 도구 중에 없습니다. 서버가 연결되지 않았거나 연결된 서버가 해당 이름의 도구를 노출하지 않기 때문입니다. Claude Code는 여전히 프롬프트를 보냅니다: [비대화형](/docs/ko/headless) 실행은 승인이 필요한 첫 번째 도구 호출에서 이 오류로 종료되고 코드 1로 종료되므로 요청이 이루어졌음에도 불구하고 답변을 생성하지 않습니다. 첫 번째 프롬프트 전에 Claude Code는 [`MCP_TIMEOUT`](/docs/ko/env-vars)으로 설정된 서버당 연결 타임아웃 30초까지 해당 서버가 연결될 때까지 기다립니다. v2.1.206 이전에는 시작이 서버가 연결을 완료할 때까지 기다리지 않았으므로 느리게 시작하지만 정상인 서버가 이 오류를 생성했습니다. +[`--permission-prompt-tool`](/docs/ko/cli-reference#cli-flags)에 전달한 도구가 실행에서 처음 권한 결정이 필요했을 때 연결된 MCP 도구 중에 없었습니다. 해당 서버가 연결되지 않았거나, 연결된 서버 중 그 이름의 도구를 노출하는 서버가 없기 때문입니다. Claude Code는 여전히 프롬프트를 전송합니다. [비대화형](/docs/ko/headless) 실행은 첫 번째 도구 호출에서 이 오류와 종료 코드 1로 종료되므로, 요청은 이루어졌지만 응답이 생성되지 않습니다. 첫 번째 프롬프트 전에 Claude Code는 [`MCP_TIMEOUT`](/docs/ko/env-vars)으로 설정된 서버별 연결 타임아웃인 최대 30초 동안 해당 서버가 연결되기를 기다립니다. v2.1.206 이전에는 시작 시 서버 연결이 완료되기를 기다리지 않았으므로, 시작이 느리지만 정상인 서버에서도 이 오류가 발생했습니다. ```text theme={null} Error: MCP tool mcp__permissions__approve (passed via --permission-prompt-tool) not found. Available MCP tools: none ``` -`Available MCP tools:` 뒤의 목록은 대기가 끝났을 때 연결된 MCP 도구를 이름 지정합니다. +`Available MCP tools:` 뒤의 목록은 연결되어 있던 MCP 도구의 이름입니다. -**해야 할 일:** +**해결 방법:** -* 서버가 시작되고 연결된 상태로 유지되는지 확인합니다: 같은 디렉토리에서 `claude mcp list`를 실행하고 서버가 연결됨으로 나열되는지 확인합니다. -* 도구 이름이 서버가 노출하는 `mcp____` 이름과 일치하는지 확인합니다. -* 서버가 시작하는 데 30초 이상 필요하면 [`MCP_TIMEOUT`](/docs/ko/env-vars)을 높입니다. +* 서버가 시작되고 연결 상태를 유지하는지 확인합니다. 같은 디렉터리에서 `claude mcp list`를 실행하여 서버가 연결됨으로 표시되는지 확인합니다 +* 도구 이름이 서버가 노출하는 `mcp____` 이름과 일치하는지 확인합니다 +* 서버 시작에 30초 이상이 필요하면 [`MCP_TIMEOUT`](/docs/ko/env-vars)을 늘립니다

- OAuth 콜백 포트가 이미 사용 중 + OAuth 콜백 포트가 이미 사용 중임

-OAuth를 사용하여 원격 MCP 서버에 로그인하면 Claude Code는 로그인 콜백을 수신하기 위해 로컬 리스너를 시작합니다. 해당 리스너가 필요한 포트가 다른 프로세스에 의해 보유되면 로그인이 이 메시지로 실패합니다. 이는 주로 [`MCP_OAUTH_CALLBACK_PORT`](/docs/ko/env-vars) 변수 또는 `--callback-port`를 통해 설정된 [고정 콜백 포트](/docs/ko/mcp#use-a-fixed-oauth-callback-port)에서 발생합니다. 하나 없이 Claude Code는 사용 가능한 포트를 선택합니다. +OAuth로 원격 MCP 서버에 로그인하면 Claude Code는 로그인 콜백을 받기 위해 로컬 리스너를 시작합니다. 해당 리스너에 필요한 포트를 다른 프로세스가 점유하고 있으면 로그인이 이 메시지와 함께 실패합니다. 이는 주로 [`MCP_OAUTH_CALLBACK_PORT`](/docs/ko/env-vars) 변수나 `--callback-port`로 설정한 [고정 콜백 포트](/docs/ko/mcp#use-a-fixed-oauth-callback-port)에서 발생합니다. 고정 포트가 없으면 Claude Code가 사용 가능한 포트를 선택하기 때문입니다. ```text theme={null} OAuth callback port is already in use — another process may be holding it. Run `lsof -ti: -sTCP:LISTEN` to find it. ``` -Windows에서 제안된 명령어는 대신 `netstat -ano | findstr :`입니다. +Windows에서는 대신 `netstat -ano | findstr :` 명령이 제안됩니다. -**해야 할 일:** +**해결 방법:** -* 메시지의 명령어를 실행하여 포트를 보유하는 프로세스를 찾고 중지하거나 완료될 때까지 기다립니다. -* 다른 프로그램이 해당 포트를 영구적으로 필요로 하면 서버에 다른 리디렉션 URI를 등록하고 `MCP_OAUTH_CALLBACK_PORT` 또는 `--callback-port`(사용하는 것)로 포트를 설정합니다. -* 그런 다음 로그인을 다시 시작합니다. 예를 들어 `/mcp`에서 서버를 선택합니다. +* 메시지의 명령을 실행하여 포트를 점유한 프로세스를 찾고, 중지하거나 완료될 때까지 기다립니다 +* 다른 프로그램이 해당 포트를 계속 사용해야 한다면 서버에 다른 리디렉션 URI를 등록하고, 사용하는 방법에 따라 `MCP_OAUTH_CALLBACK_PORT` 또는 `--callback-port`로 그 포트를 설정합니다 +* 그런 다음 `/mcp`에서 서버를 선택하는 등의 방법으로 로그인을 다시 시작합니다

- OAuth 리디렉션에 사용 가능한 포트 없음 + OAuth 리디렉션에 사용할 수 있는 포트가 없음

-[OAuth](/docs/ko/mcp#authenticate-with-remote-mcp-servers)를 사용하여 원격 MCP 서버에 로그인하면 Claude Code는 로그인 콜백을 수신하기 위해 로컬 리스너를 시작합니다. Claude Code가 로컬 포트를 바인드할 수 없을 때 로그인이 이 메시지로 실패합니다. 머신의 무언가가 `127.0.0.1`에서 수신 대기하는 것을 방지합니다. 예를 들어 보안 소프트웨어 또는 로컬 리스너를 거부하는 샌드박스 정책입니다. +[OAuth](/docs/ko/mcp#authenticate-with-remote-mcp-servers)로 원격 MCP 서버에 로그인하면 Claude Code는 로그인 콜백을 받기 위해 로컬 리스너를 시작합니다. Claude Code가 이를 위한 로컬 포트를 바인딩할 수 없으면 로그인이 이 메시지와 함께 실패합니다. 로컬 리스너를 거부하는 보안 소프트웨어나 샌드박스 정책처럼, 머신의 무언가가 `127.0.0.1`에서 수신 대기하는 것을 막고 있습니다. ```text theme={null} No available ports for OAuth redirect ``` -v2.1.268 이전에는 Claude Code가 운영 체제 할당 포트로 폴백하지 않았으므로 메시지는 Claude Code가 선택한 포트만 바인드할 수 없을 때도 나타났습니다. 이는 Hyper-V가 Claude Code가 선택하는 포트를 포함하는 포트 범위를 예약하는 Windows 호스트에서 발생할 수 있습니다. +v2.1.268 이전에는 Claude Code가 운영 체제에서 할당한 포트로 폴백하지 않았으므로, Claude Code가 직접 선택한 포트만 바인딩할 수 없는 경우에도 이 메시지가 표시되었습니다. 이는 Hyper-V가 Claude Code가 선택하는 포트를 포함하는 포트 범위를 예약하는 Windows 호스트에서 발생할 수 있습니다. -**해야 할 일:** +**해결 방법:** -* 보안 소프트웨어 또는 샌드박스 정책이 프로세스가 `127.0.0.1`에서 수신 대기하는 것을 차단하는지 확인하고 Claude Code가 로컬 포트를 바인드하도록 허용합니다. -* 그런 다음 로그인을 다시 시작합니다. 예를 들어 `/mcp`에서 서버를 선택합니다. +* 보안 소프트웨어나 샌드박스 정책이 프로세스의 `127.0.0.1` 수신 대기를 차단하는지 확인하고, Claude Code가 로컬 포트를 바인딩할 수 있도록 허용합니다 +* 그런 다음 `/mcp`에서 서버를 선택하는 등의 방법으로 로그인을 다시 시작합니다

- /security-review가 origin/HEAD 없이 실패함 + origin/HEAD가 없으면 /security-review가 실패함

-[`/security-review`](/docs/ko/commands#all-commands)는 `origin/HEAD`에 대해 분기를 비교하여 검토 컨텍스트를 구축합니다. `origin/HEAD`는 `origin` 원격의 기본 분기가 무엇인지 기록하는 로컬 ref입니다. 해당 ref가 없으면 diff를 수집하는 git 명령어가 실패하고 검토가 시작하기 전에 중지됩니다. +[`/security-review`](/docs/ko/commands#all-commands)는 `origin` 원격의 기본 브랜치를 기록하는 로컬 ref인 `origin/HEAD`와 현재 브랜치의 diff를 구해 리뷰 컨텍스트를 구성합니다. 해당 ref가 없으면 diff를 수집하는 git 명령이 실패하고 리뷰가 시작되기 전에 중단됩니다. ```text theme={null} Error: Shell command failed for pattern "!`git diff --name-only origin/HEAD...`": [stderr] @@ -3301,387 +3368,385 @@ Use '--' to separate paths from revisions, like this: 'git [...] -- [...]' ``` -메시지는 대신 `git log` 또는 다른 `git diff`를 인용할 수 있습니다. Git은 원격이 기본 분기를 광고하고 fetch refspec이 이를 포함할 때만 `origin/HEAD`를 만듭니다. 전체 `git clone`이 커밋이 있는 원격을 수행합니다. ref는 이러한 설정에서 누락됩니다: +메시지에는 대신 `git log`나 다른 `git diff`가 인용될 수 있습니다. Git은 원격이 기본 브랜치를 알리고 fetch refspec이 이를 포함하는 경우에만 `origin/HEAD`를 만들며, 커밋이 있는 원격을 전체 `git clone`하면 이 조건이 충족됩니다. 다음 구성에서는 ref가 없습니다: -* 단일 분기 또는 CI 체크아웃(너무 좁은 refspec을 가져옴) -* 서버 측 HEAD가 아무도 푸시하지 않은 분기를 가리키는 원격 -* `origin` 원격이 없거나 가져온 적이 없는 저장소 +* 너무 좁은 refspec을 가져오는 단일 브랜치 또는 CI 체크아웃 +* 서버 측 HEAD가 아무도 푸시하지 않은 브랜치를 가리키는 원격 +* `origin` 원격이 없거나 한 번도 fetch하지 않은 저장소 -Claude Code는 [동적 컨텍스트를 주입](/docs/ko/skills#when-an-injected-command-fails)하는 모든 스킬에 대해 동일한 오류를 표시하고 실패한 주입 명령어는 해당 스킬의 호출을 중단합니다. 명령어가 실행되기 전에 두 개의 형제 문자열이 발생합니다: +Claude Code는 [동적 컨텍스트를 주입하는](/docs/ko/skills#when-an-injected-command-fails) 모든 스킬에 대해 같은 오류를 표시하며, 주입된 명령이 실패하면 해당 스킬의 호출이 중단됩니다. 관련된 두 문자열은 명령이 실행되기도 전에 발생합니다: -* `Shell command permission check failed for pattern "..."`: 명령어의 권한 확인이 허용하지 않았습니다. [주입 명령어의 권한 확인](/docs/ko/skills#permission-checks-on-injected-commands)은 각 권한 모드에서 어떤 결과가 중단되는지 그리고 `allowed-tools`로 명령어를 사전 승인하는 방법을 다룹니다. -* ``Skill requires bash (`shell: bash` in frontmatter) but Git Bash was not found``: 스킬의 frontmatter가 bash가 없는 머신에서 bash를 요구합니다. Git for Windows를 설치하거나 frontmatter를 `shell: powershell`로 변경합니다. [주입 명령어가 실행되는 방식](/docs/ko/skills#how-injected-commands-run)을 참조하세요. +* `Shell command permission check failed for pattern "..."`: 명령의 권한 검사가 명령을 허용하지 않았습니다. [주입된 명령에 대한 권한 검사](/docs/ko/skills#permission-checks-on-injected-commands)에서 각 권한 모드에서 어떤 결과가 중단을 일으키는지, 그리고 `allowed-tools`로 명령을 사전 승인하는 방법을 다룹니다 +* ``Skill requires bash (`shell: bash` in frontmatter) but Git Bash was not found``: 스킬의 frontmatter가 bash가 없는 머신에서 bash를 요구합니다. Git for Windows를 설치하거나 frontmatter를 `shell: powershell`로 변경합니다. [주입된 명령이 실행되는 방식](/docs/ko/skills#how-injected-commands-run)을 참조하세요 -**해야 할 일:** +**해결 방법:** -* 원격의 기본 분기를 이름 지정하여 ref를 만듭니다: `git remote set-head origin `. 이는 로컬 추적 ref `origin/`가 존재할 때마다 작동합니다. 단일 분기 클론처럼 없으면 먼저 분기를 가져옵니다: `git remote set-branches --add origin `를 실행한 후 `git fetch origin`을 실행한 후 set-head 명령어를 다시 실행합니다. `/security-review`를 다시 실행합니다. -* 분기를 이름 지정하지 않으려면 `git fetch origin`을 실행한 후 `git remote set-head origin --auto`를 실행합니다. 이는 원격에 기본 분기가 무엇인지 묻습니다. 원격이 비어 있거나 HEAD가 아무도 푸시하지 않은 분기를 가리킬 때 `error: Cannot determine remote HEAD`로 실패합니다. 대신 분기를 명시적으로 이름 지정합니다. 클론이 해당 분기를 가져오지 않을 때 `error: Not a valid ref`로 실패합니다. 먼저 위와 같이 refspec을 넓힙니다. -* 저장소에 원격이 없으면 `git remote add origin `로 추가하고 ref를 만들기 전에 가져옵니다. 원격이 비어 있으면 `git push -u origin HEAD`로 분기를 먼저 푸시하고 set-head 명령어에서 해당 분기를 이름 지정합니다. `origin/HEAD`는 방금 푸시한 분기를 가리키므로 분기가 이와 달라질 때까지 `/security-review`는 빈 diff를 봅니다. +* 원격의 기본 브랜치 이름을 지정하여 ref를 만듭니다: `git remote set-head origin `. 이 방법은 로컬 추적 ref `origin/`가 있으면 항상 동작합니다. 단일 브랜치 클론처럼 해당 ref가 없으면 먼저 브랜치를 가져옵니다. `git remote set-branches --add origin `를 실행하고, 이어서 `git fetch origin`을 실행한 다음, set-head 명령을 다시 실행합니다. `/security-review`를 다시 실행합니다. +* 브랜치 이름을 지정하지 않으려면 `git fetch origin`을 실행한 다음, 원격에 기본 브랜치를 묻는 `git remote set-head origin --auto`를 실행합니다. 원격이 비어 있거나 HEAD가 아무도 푸시하지 않은 브랜치를 가리켜 기본 브랜치를 알리지 않으면 `error: Cannot determine remote HEAD`로 실패합니다. 이 경우 브랜치 이름을 명시적으로 지정합니다. 클론이 해당 브랜치를 가져오지 않으면 `error: Not a valid ref`로 실패합니다. 먼저 위와 같이 refspec을 넓힙니다. +* 저장소에 원격이 없으면 `git remote add origin `로 원격을 추가하고 ref를 만들기 전에 fetch합니다. 원격이 비어 있으면 먼저 `git push -u origin HEAD`로 브랜치를 푸시하고 set-head 명령에 해당 브랜치 이름을 지정합니다. 그러면 `origin/HEAD`가 방금 푸시한 브랜치를 가리키므로, 브랜치가 그로부터 분기될 때까지 `/security-review`에는 빈 diff가 표시됩니다.

- \--print 사용 시 입력을 제공해야 함 + `--print` 사용 시 입력을 제공해야 함

-베어 `claude`는 대화형 UI를 시작하기 위해 stdout이 터미널이어야 합니다. stdout이 리디렉션되거나 PowerShell ISE 및 일부 IDE 출력 창 같은 실제 터미널이 아닐 때 `claude`는 대신 [비대화형](/docs/ko/headless)으로 실행됩니다. 이는 프롬프트가 필요한 `claude -p`와 동일한 모드이므로 메시지는 플래그를 전달하지 않았을 때도 `--print`를 이름 지정합니다. `-p`/`--print`를 프롬프트 없이 전달하고 stdin에 파이프된 것이 없으면 어디서나 동일한 오류를 생성합니다. +인수 없는 `claude`는 대화형 UI를 시작하려면 stdout이 터미널이어야 합니다. stdout이 리디렉션되거나, PowerShell ISE나 일부 IDE 출력 창처럼 콘솔이 실제 터미널이 아니면 `claude`는 대신 [비대화형으로](/docs/ko/headless) 실행됩니다. 이는 프롬프트가 필요한 `claude -p`와 같은 모드이므로, 플래그를 전달하지 않았더라도 메시지에 `--print`가 언급됩니다. 프롬프트 없이, 그리고 stdin으로 아무것도 파이프하지 않고 `-p`/`--print`를 전달하면 어디서든 같은 오류가 발생합니다. ```text theme={null} Error: Input must be provided either through stdin or as a prompt argument when using --print ``` -**해야 할 일:** +**해결 방법:** -* 대화형 사용의 경우 실제 터미널에서 `claude`를 실행합니다: ISE가 아닌 Windows Terminal 또는 PowerShell 콘솔, IDE의 통합 터미널이 아닌 출력 창. -* 일회용 사용의 경우 프롬프트를 전달합니다: `claude -p "your question"` 또는 `echo "your question" | claude -p`로 파이프합니다. +* 대화형으로 사용하려면 실제 터미널에서 `claude`를 실행합니다. ISE 대신 Windows Terminal이나 PowerShell 콘솔을, 출력 창 대신 IDE의 통합 터미널을 사용합니다 +* 일회성으로 사용하려면 프롬프트를 전달합니다: `claude -p "your question"`, 또는 `echo "your question" | claude -p`로 파이프합니다

입력에 공백만 포함됨

-[비대화형 모드](/docs/ko/headless)에서 Claude Code는 API가 보이는 텍스트가 없는 메시지를 거부하기 때문에 공백, 탭 또는 줄 바꿈으로만 구성된 프롬프트를 보내는 대신 거부합니다. 어떤 메시지를 보는지는 빈 프롬프트가 어디서 왔는지에 따라 달라집니다: +[비대화형 모드](/docs/ko/headless)에서 Claude Code는 공백, 탭 또는 줄바꿈으로만 이루어진 프롬프트를 전송하지 않고 거부합니다. API가 보이는 텍스트가 없는 메시지를 거부하기 때문입니다. 표시되는 메시지는 빈 프롬프트가 어디서 왔는지에 따라 다릅니다: -* **`claude -p`의 프롬프트 인수 또는 파이프된 stdin**: `claude`는 `Error: Input contained only whitespace. Provide a prompt with text through stdin or as a prompt argument when using --print`로 종료됩니다. -* **실행 중인 `--input-format stream-json` 또는 [Agent SDK](/docs/ko/agent-sdk/overview) 세션에 제출된 메시지**: Claude Code는 모델을 호출하지 않고 턴을 종료하고 세션은 사용 가능한 상태로 유지됩니다. 거부는 정보 메시지로 그리고 턴의 결과 텍스트로 도착합니다: `Blank prompt — the message was only whitespace, so nothing was sent to the model.` +* **`claude -p`의 프롬프트 인수 또는 파이프된 stdin**: `claude`가 `Error: Input contained only whitespace. Provide a prompt with text through stdin or as a prompt argument when using --print`와 함께 종료됩니다 +* **실행 중인 `--input-format stream-json` 또는 [Agent SDK](/docs/ko/agent-sdk/overview) 세션에 제출된 메시지**: Claude Code는 모델을 호출하지 않고 턴을 종료하며 세션은 계속 사용할 수 있습니다. 거부 내용은 정보 메시지이자 턴의 결과 텍스트로 전달됩니다: `Blank prompt — the message was only whitespace, so nothing was sent to the model.` -v2.1.229 이전에는 Claude Code가 공백 전용 메시지를 API로 보냈고 API는 400 오류로 요청을 거부했습니다. +v2.1.229 이전에는 Claude Code가 공백만 있는 메시지를 API로 전송했으며, API가 400 오류로 요청을 거부했습니다. -**해야 할 일:** +**해결 방법:** -* 프롬프트에 보이는 텍스트를 포함합니다. 스크립트가 변수 또는 파일에서 프롬프트를 구축하면 Claude Code를 호출하기 전에 소스가 비어 있지 않은지 확인합니다. +* 프롬프트에 보이는 텍스트를 포함합니다. 스크립트가 변수나 파일에서 프롬프트를 만드는 경우 Claude Code를 호출하기 전에 소스가 비어 있지 않은지 확인합니다.

- stream-json 입력이 줄 바꿈 없이 256M 문자를 초과함 + stream-json 입력이 줄바꿈 없이 256M자를 초과함

-프로그램이 `claude -p --input-format stream-json` 실행에 stdin으로 줄 바꿈 없이 268,435,456자 이상을 보냈으므로 Claude Code는 이 오류를 stderr에 출력하고 더 많은 입력을 버퍼링하는 대신 코드 1로 종료됩니다. 메시지는 해당 예산을 `256M`으로 명시합니다. v2.1.257 이전에는 Claude Code가 이러한 입력을 제한 없이 버퍼링했고 프로세스가 충돌하거나 종료될 때까지 메모리를 증가시켰습니다. +프로그램이 `claude -p --input-format stream-json` 실행의 stdin으로 줄바꿈 없이 268,435,456자를 초과하여 전송했으므로, Claude Code는 입력을 더 버퍼링하지 않고 이 오류를 stderr에 출력한 후 종료 코드 1로 종료됩니다. 메시지에서는 이 한도를 `256M`으로 표시합니다. v2.1.257 이전에는 Claude Code가 이러한 입력을 제한 없이 버퍼링하여, 프로세스가 비정상 종료되거나 강제 종료될 때까지 메모리가 증가했습니다. ```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. ``` -줄 바꿈 없이 이 정도로 긴 입력은 보통 생산자가 stream-json 생산자가 아니라는 의미입니다. 예를 들어 실수로 파이프된 바이너리 파일 또는 일반 로그 출력입니다. 예산을 초과하는 단일 메시지는 동일한 확인에 실패합니다. +줄바꿈 없이 이렇게 긴 입력은 일반적으로 생산자가 애초에 stream-json 생산자가 아니라는 뜻입니다. 예를 들어 실수로 파이프된 바이너리 파일이나 일반 로그 출력이 이에 해당합니다. 한도를 초과하는 단일 메시지도 같은 검사에서 실패합니다. -**해야 할 일:** +**해결 방법:** -* stdin으로 파이프되는 것을 확인합니다. [`--input-format stream-json`](/docs/ko/cli-reference#cli-flags)을 사용하면 모든 메시지는 줄 바꿈으로 종료된 JSON 줄 하나여야 합니다. -* 일반 텍스트를 대신 보내려면 `--input-format stream-json`을 제거합니다. `claude -p`는 기본적으로 stdin에서 일반 텍스트 프롬프트를 읽습니다. +* stdin으로 무엇이 파이프되는지 확인합니다. [`--input-format stream-json`](/docs/ko/cli-reference#cli-flags)을 사용하면 모든 메시지가 줄바꿈으로 끝나는 한 줄의 JSON이어야 합니다 +* 대신 일반 텍스트를 보내려면 `--input-format stream-json`을 제거합니다. `claude -p`는 기본적으로 stdin에서 일반 텍스트 프롬프트를 읽습니다

- 알 수 없는 명령어 + Unknown command

-대화형 터미널 세션에서 이 세션의 명령어와 일치하지 않는 `/` 이름을 제출했으므로 Claude Code는 아무것도 실행하지 않고 이름을 보고합니다: +대화형 터미널 세션에서 이 세션의 어떤 명령과도 일치하지 않는 `/` 이름을 제출했으므로, Claude Code는 아무것도 실행하지 않고 해당 이름을 보고합니다: ```text theme={null} Unknown command: /hepl. Did you mean /help? ``` -Claude Code는 이 세션의 메뉴가 나열하는 가장 가까운 명령어 이름 또는 별칭을 제안합니다. 가까운 것이 없으면 메시지는 이름 뒤에 끝납니다. 원인은 보통 다음 중 하나입니다: +Claude Code는 이 세션의 메뉴에 나열된 가장 가까운 명령 이름이나 별칭을 제안합니다. 가까운 것이 없으면 메시지는 이름 뒤에서 끝납니다. 원인은 일반적으로 다음 중 하나입니다: -* `/hepl`을 `/help`로 하는 오타입니다. [명령어 메뉴가 입력과 일치하는 방식](/docs/ko/commands#how-the-command-menu-matches-what-you-type)은 제출하기 전에 가까운 일치를 선택하는 것을 다룹니다. -* 플랫폼, 계획 또는 인증 방법 같은 요구 사항이 충족되지 않아 이 세션에서 사용할 수 없는 명령어입니다. [`/web-setup`](/docs/ko/web-quickstart#web-setup-shows-no-commands-match-or-unknown-command) 및 [`/schedule`](/docs/ko/routines#schedule-returns-unknown-command)의 문제 해결 항목은 두 가지 일반적인 경우를 안내합니다. 일부 명령어는 조직의 정책이 비활성화할 때 [`Cloud sessions are disabled by your organization's policy`](#cloud-sessions-are-disabled-by-your-organizations-policy) 같은 자체 메시지로 응답합니다. -* [플러그인](/docs/ko/plugins/overview) 또는 [MCP 서버](/docs/ko/mcp#use-mcp-prompts-as-commands)의 명령어가 이 세션에 설치되거나 연결되지 않았습니다. +* `/help`를 `/hepl`로 입력한 것과 같은 오타. [명령 메뉴가 입력 내용과 일치하는 방식](/docs/ko/commands#how-the-command-menu-matches-what-you-type)에서 제출 전에 가까운 일치 항목을 선택하는 방법을 다룹니다 +* 존재하지만 플랫폼, 플랜 또는 인증 방법 같은 요구 사항이 충족되지 않아 이 세션에서 사용할 수 없는 명령. [`/web-setup`](/docs/ko/web-quickstart#web-setup-shows-no-commands-match-or-unknown-command)과 [`/schedule`](/docs/ko/routines#schedule-returns-unknown-command)의 문제 해결 항목에서 두 가지 일반적인 사례를 안내합니다. 일부 명령은 조직 정책으로 비활성화된 경우 [`Cloud sessions are disabled by your organization's policy`](#cloud-sessions-are-disabled-by-your-organizations-policy)처럼 고유한 메시지로 응답합니다 +* 이 세션에 설치되거나 연결되지 않은 [플러그인](/docs/ko/plugins/overview) 또는 [MCP 서버](/docs/ko/mcp#use-mcp-prompts-as-commands)의 명령 -Claude Code는 대화형 터미널 세션에서만 일치하지 않는 `/` 이름에 이 방식으로 응답합니다. 다른 모든 세션에서는 대신 프롬프트를 Claude에 일반 메시지로 보냅니다. 명령어가 실행되지 않았고 Claude가 세션에서 실행할 수 있는 명령어 목록이 있다는 메모가 포함됩니다. 이러한 세션에는 다음이 포함됩니다: +Claude Code는 대화형 터미널 세션에서만 일치하지 않는 `/` 이름에 이런 방식으로 응답합니다. 다른 모든 세션에서는 명령이 실행되지 않았다는 안내와 세션에서 Claude가 실행할 수 있는 명령 목록과 함께 프롬프트를 일반 메시지로 Claude에 전송합니다. 이러한 세션에는 다음이 포함됩니다: * `-p` 실행 * [Agent SDK](/docs/ko/agent-sdk/overview) 애플리케이션 * [Desktop 앱](/docs/ko/desktop)의 Code 탭 * [VS Code 확장](/docs/ko/vs-code)의 채팅 패널 -* [클라우드 세션](/docs/ko/claude-code-on-the-web) 및 [루틴](/docs/ko/routines) +* [클라우드 세션](/docs/ko/claude-code-on-the-web)과 [루틴](/docs/ko/routines) -이러한 세션 중 하나에서 실행할 수 없는 기본 제공 명령어의 경우 Claude Code는 여전히 명령어를 Claude로 보내는 대신 사용할 수 없다고 응답합니다. v2.1.274 이전에는 클라우드 세션과 루틴만 일치하지 않는 이름을 Claude로 보냈습니다. v2.1.273 이전에는 `Unknown command`로도 응답했습니다. +이러한 세션 중 하나에서 실행할 수 없는 기본 제공 명령의 경우, Claude Code는 Claude에 전송하지 않고 명령을 사용할 수 없다고 응답합니다. v2.1.274 이전에는 클라우드 세션과 루틴만 일치하지 않는 이름을 Claude에 전송했습니다. v2.1.273 이전에는 이들도 `Unknown command`로 응답했습니다. -Claude Code는 `/`로 시작하는 모든 프롬프트를 명령어로 취급하지 않습니다. `/` 뒤의 첫 번째 단어가 Lean doc 주석을 여는 `/-` 같은 구두점으로 시작하거나 `/var/log/syslog` 같은 경로일 때 프롬프트를 Claude에 일반 메시지로 보냅니다. +Claude Code는 `/`로 시작하는 모든 프롬프트를 명령으로 처리하지는 않습니다. `/` 뒤의 첫 단어가 Lean 문서 주석을 여는 `/--`처럼 구두점으로 시작하거나, `/var/log/syslog` 같은 경로이면 프롬프트를 일반 메시지로 Claude에 전송합니다. -v2.1.236 이전에는 명령어 메뉴가 입력한 이름에 대한 가까운 일치를 나열하는 동안 Enter를 누르면 Claude Code가 일치를 실행했으므로 `/hepl` 같은 오타가 이 메시지를 생성하는 대신 `/help`를 실행했습니다. +v2.1.236 이전에는 입력한 이름과 가까운 일치 항목이 명령 메뉴에 나열된 상태에서 `Enter`를 누르면 Claude Code가 해당 일치 항목을 실행했으므로, `/hepl` 같은 오타는 이 메시지를 표시하는 대신 `/help`를 실행했습니다. -**해야 할 일:** +**해결 방법:** -* 제안된 이름을 실행하거나 `/` 뒤에 이름의 일부를 입력하여 이 세션에서 사용 가능한 것을 확인합니다. -* Claude Code가 문서화된 명령어를 알 수 없는 것으로 보고하면 [명령어 참조](/docs/ko/commands)의 행에서 이름 지정하는 요구 사항을 확인합니다. +* 제안된 이름을 실행하거나, `/` 뒤에 이름의 일부를 입력하여 이 세션에서 사용할 수 있는 항목을 확인합니다 +* Claude Code가 문서화된 명령을 알 수 없다고 보고하면 [명령 참조](/docs/ko/commands)에서 해당 명령의 행을 확인하여 명시된 요구 사항을 확인합니다

- Diff가 ultrareview에 너무 큼 + ultrareview에 비해 diff가 너무 큼

-분기와 기본 분기 간의 diff(커밋되지 않은 변경 사항 및 스테이징된 변경 사항 포함)가 [ultrareview](/docs/ko/ultrareview)의 크기 제한을 초과하므로 `/code-review ultra` 및 `claude ultrareview` 하위 명령어는 클라우드 세션이 시작되기 전에 검토를 거부합니다. 거부된 검토는 무료 실행을 사용하지 않으며 사용 크레딧을 청구하지 않습니다. 메시지는 적용 중인 제한, diff의 크기 및 가장 많은 변경된 줄에 기여하는 파일을 이름 지정합니다. v2.1.216 이전에는 메시지가 원시 diff 통계만 표시했습니다. +커밋되지 않은 변경 사항과 스테이징된 변경 사항을 포함하여 현재 브랜치와 기본 브랜치 간의 diff가 [ultrareview](/docs/ko/ultrareview)의 크기 제한을 초과하므로, `/code-review ultra`와 `claude ultrareview` 하위 명령은 클라우드 세션이 시작되기 전에 리뷰를 거부합니다. 거부된 리뷰는 무료 실행을 사용하지 않으며 사용량 크레딧도 청구하지 않습니다. 메시지에는 적용 중인 제한, diff의 크기, 변경된 줄 수가 가장 많은 파일이 표시됩니다. v2.1.216 이전에는 메시지에 원시 diff 통계만 표시되었습니다. ```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 `) to narrow the scope, or split the change. ``` -풀 요청을 검토하면 동일한 제한이 적용됩니다. 해당 형식의 메시지는 `PR # is too large for ultrareview`로 시작하고 PR의 파일 및 줄 수를 이름 지정합니다. +풀 리퀘스트를 리뷰할 때도 같은 제한이 적용됩니다. 이 경우 메시지는 `PR # is too large for ultrareview`로 시작하며 PR의 파일 수와 줄 수를 표시합니다. -**해야 할 일:** +**해결 방법:** -* 기본 분기를 더 가깝게 전달합니다. 예를 들어 `/code-review ultra develop`이므로 검토는 해당 분기에 대한 diff만 포함합니다. -* 변경을 더 작은 분기로 분할하고 각각을 검토합니다. 메시지가 이름 지정하는 파일은 가장 많은 변경된 줄에 기여하므로 이들을 자신의 분기로 이동하여 시작합니다. +* `/code-review ultra develop`처럼 작업에 더 가까운 기본 브랜치를 전달하여 리뷰가 해당 브랜치와의 diff만 다루도록 합니다 +* 변경 사항을 더 작은 브랜치로 나누고 각각 리뷰합니다. 메시지에 표시된 파일이 변경된 줄 수가 가장 많으므로, 먼저 이 파일들을 별도의 브랜치로 옮깁니다.

- 기본 분기와의 병합 기반을 찾을 수 없음 + 기본 브랜치와의 merge-base를 찾을 수 없음

-`/code-review ultra` 및 `claude ultrareview` 하위 명령어는 두 분기 간의 diff를 검토합니다. 이는 두 분기가 공유하는 커밋이 필요합니다. `git merge-base`가 없으면 Claude Code는 클라우드 세션이 시작되기 전에 검토를 거부합니다. Claude Code가 완전한 것으로 확인할 수 있는 클론에서 최소 하나의 분기가 있으면 대신 [모든 추적된 파일을 검토](/docs/ko/ultrareview#diff-limits-and-fallbacks)로 폴백합니다. 기본 분기를 전혀 찾을 수 없을 때, Claude Code가 클론이 완전한지 확인할 수 없을 때 또는 SHA-256 객체 형식 같은 전체 트리 diff가 불가능한 드문 저장소에서 이 거부를 봅니다. +`/code-review ultra`와 `claude ultrareview` 하위 명령은 현재 브랜치와 기본 브랜치 간의 diff를 리뷰하며, 이를 위해서는 두 브랜치가 공유하는 커밋이 필요합니다. `git merge-base`가 공유 커밋을 찾지 못하면 Claude Code는 클라우드 세션이 시작되기 전에 리뷰를 거부합니다. 브랜치가 하나 이상 있고 Claude Code가 완전한 클론임을 확인할 수 있는 경우에는 거부하는 대신 [추적되는 모든 파일을 리뷰하는 방식](/docs/ko/ultrareview#diff-limits-and-fallbacks)으로 폴백합니다. 기본 브랜치를 전혀 찾을 수 없거나, Claude Code가 클론이 완전한지 확인할 수 없거나, SHA-256 객체 형식처럼 전체 트리 diff가 불가능한 드문 저장소에서는 이 거부 메시지가 표시됩니다. ```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. ``` -첫 번째 문장 뒤의 힌트는 Claude Code가 관찰한 것에 따라 달라집니다: +첫 문장 뒤의 힌트는 Claude Code가 관찰한 내용에 따라 달라집니다: -* **기본 분기를 전달하지 않았습니다**: Claude Code는 저장소의 기본 분기와 비교했고 위의 예와 같이 기본을 명시적으로 전달하도록 제안합니다. -* **클론에 이미 있는 기본 분기를 전달했습니다**: 힌트는 ``Make sure exists locally or on origin (try `git fetch origin `)``를 읽습니다. -* **클론에 없는 기본 분기를 전달했습니다**: Claude Code는 비교하기 전에 origin에서 가져왔습니다. 힌트는 `` was fetched from origin but shares no history with HEAD. If another branch is your real base, pass it explicitly (`/code-review ultra `)``를 읽습니다. Claude Code가 클론이 얕은지 확인할 수 없을 때 대신 `git fetch --unshallow origin`을 제안합니다. v2.1.221 이전에는 모든 가져온 기본 분기에 대해 `git fetch --unshallow origin`을 제안했고 완전한 클론에서 해당 명령어는 `fatal: --unshallow on a complete repository does not make sense`로 실패합니다. +* **기본 브랜치를 전달하지 않은 경우**: Claude Code가 저장소의 기본 브랜치와 비교했으며, 위 예시처럼 기본 브랜치를 명시적으로 전달하도록 제안합니다 +* **이미 클론에 있던 기본 브랜치를 전달한 경우**: 힌트는 ``Make sure exists locally or on origin (try `git fetch origin `)``로 표시됩니다 +* **클론에 없던 기본 브랜치를 전달한 경우**: Claude Code가 비교 전에 origin에서 해당 브랜치를 가져왔습니다. 힌트는 `` was fetched from origin but shares no history with HEAD. If another branch is your real base, pass it explicitly (`/code-review ultra `)``로 표시됩니다. Claude Code가 클론이 얕은 클론인지 알 수 없는 경우에는 대신 `git fetch --unshallow origin`을 제안합니다. v2.1.221 이전에는 가져온 모든 기본 브랜치에 대해 힌트가 `git fetch --unshallow origin`을 제안했으며, 완전한 클론에서는 이 명령이 `fatal: --unshallow on a complete repository does not make sense`로 실패합니다. -**해야 할 일:** +**해결 방법:** -* 다른 분기가 실제 기본이면 명시적으로 전달합니다: `/code-review ultra ` -* 클론이 전체 기록을 갖지 않을 수 있으면 `git fetch --unshallow origin`을 실행하고 검토를 다시 실행합니다. +* 다른 브랜치가 실제 기본 브랜치라면 명시적으로 전달합니다: `/code-review ultra ` +* 클론에 전체 기록이 없을 수 있다면 `git fetch --unshallow origin`을 실행하고 리뷰를 다시 실행합니다

- 체크아웃에 분기가 없음 + 체크아웃에 브랜치가 없음

-체크아웃은 커밋을 가질 수 있지만 분기는 없습니다: `git init` 뒤에 `git fetch ` 및 `git checkout FETCH_HEAD`를 실행하면 분기가 없는 분리된 HEAD를 얻습니다. Claude Code는 저장소를 git 번들로 패키징하여 [ultrareview](/docs/ko/ultrareview)를 위해 업로드하고 분기나 다른 ref가 없는 저장소를 번들할 수 없으므로 `/code-review ultra` 및 `claude ultrareview` 하위 명령어는 클라우드 세션이 시작되기 전에 검토를 거부합니다. +체크아웃에는 커밋이 있지만 브랜치가 없을 수 있습니다. `git init`을 실행한 다음 `git fetch `과 `git checkout FETCH_HEAD`를 실행하면 ref가 없는 detached HEAD 상태가 됩니다. Claude Code는 [ultrareview](/docs/ko/ultrareview)를 위해 저장소를 git 번들로 패키징하여 업로드하는데, 브랜치나 다른 ref가 없는 저장소는 번들로 만들 수 없으므로 `/code-review ultra`와 `claude ultrareview` 하위 명령은 클라우드 세션이 시작되기 전에 리뷰를 거부합니다. ```text theme={null} Your checkout has no branches (detached HEAD only), which cloud review can't bundle. Create one first — `git checkout -b ` — then rerun /code-review ultra. ``` -v2.1.221 이전에는 Claude Code가 이 체크아웃의 모든 추적된 파일을 검토하려고 시도했고 업로드가 실패했습니다. +v2.1.221 이전에는 Claude Code가 이 체크아웃에서 추적되는 모든 파일을 리뷰하려고 시도했으며 업로드가 실패했습니다. -**해야 할 일:** +**해결 방법:** -* 현재 커밋에서 `git checkout -b `으로 분기를 만든 후 검토를 다시 실행합니다. +* `git checkout -b `으로 현재 커밋에 브랜치를 만든 다음 리뷰를 다시 실행합니다

- GitHub 계정이 Claude 계정에 연결되지 않음 + Claude 계정에 연결된 GitHub 계정이 없음

-`/code-review ultra ` 또는 `claude ultrareview `을 실행했고 클라우드 세션을 만들기 전에 Claude Code는 서버에 [Claude 계정에 연결된 GitHub 계정](/docs/ko/ultrareview#review-a-pull-request)이 PR의 저장소에 도달할 수 있는지 묻습니다. 계정이 연결되지 않았거나 연결이 만료되었으므로 클라우드 클론이 실패하고 Claude Code는 시작을 거부합니다. Claude Code는 거부된 시작에 대해 무료 실행을 사용하거나 사용 크레딧을 청구하지 않습니다. +`/code-review ultra ` 또는 `claude ultrareview `를 실행했으며, Claude Code는 클라우드 세션을 만들기 전에 [Claude 계정에 연결된 GitHub 계정](/docs/ko/ultrareview#review-a-pull-request)이 PR의 저장소에 접근할 수 있는지 서버에 확인합니다. 연결된 계정이 없거나 연결이 만료되어 클라우드 클론이 실패할 것이므로 Claude Code는 실행을 거부합니다. 거부된 실행에 대해서는 무료 실행을 소비하거나 사용량 크레딧을 청구하지 않습니다. ```text theme={null} Ultrareview clones / 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). ``` -[`/web-setup`](/docs/ko/web-quickstart#connect-from-your-terminal)이 세션에서 사용할 수 없으면 메시지는 claude.ai 링크만 이름 지정합니다. +세션에서 [`/web-setup`](/docs/ko/web-quickstart#connect-from-your-terminal)을 사용할 수 없으면 메시지에는 claude.ai 링크만 표시됩니다. -**해야 할 일:** +**해결 방법:** -* `/web-setup`을 실행하여 GitHub CLI 로그인을 Claude 계정에 연결하거나 [claude.ai/connect-github](https://claude.ai/connect-github)에서 계정을 연결합니다. -* 연결 후 1분 후 검토를 다시 실행합니다. +* `/web-setup`을 실행하여 GitHub CLI 로그인을 Claude 계정에 연결하거나, [claude.ai/connect-github](https://claude.ai/connect-github)에서 계정을 연결합니다 +* 연결 후 1분 뒤에 리뷰를 다시 실행합니다 -v2.1.248 이전에는 Claude Code가 시작 전에 이를 확인하지 않았습니다. +v2.1.248 이전에는 Claude Code가 실행 전에 이를 확인하지 않았습니다.

연결된 GitHub 계정이 저장소를 볼 수 없음

-`/code-review ultra ` 또는 `claude ultrareview `을 실행했고 [Claude 계정에 연결된 GitHub 계정](/docs/ko/ultrareview#review-a-pull-request)이 PR의 저장소를 읽을 수 없으므로 클라우드 클론이 실패하고 Claude Code는 시작을 거부합니다. Claude Code는 거부된 시작에 대해 무료 실행을 사용하거나 사용 크레딧을 청구하지 않습니다. +`/code-review ultra ` 또는 `claude ultrareview `를 실행했지만 [Claude 계정에 연결된 GitHub 계정](/docs/ko/ultrareview#review-a-pull-request)이 PR의 저장소를 읽을 수 없어 클라우드 클론이 실패할 것이므로 Claude Code는 실행을 거부합니다. 거부된 실행에 대해서는 무료 실행을 소비하거나 사용량 크레딧을 청구하지 않습니다. ```text theme={null} Your connected GitHub account can't see / — usually the Claude GitHub app isn't installed on 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. ``` -[`/web-setup`](/docs/ko/web-quickstart#connect-from-your-terminal)이 세션에서 사용할 수 없으면 메시지는 앱 설치만 이름 지정합니다. +세션에서 [`/web-setup`](/docs/ko/web-quickstart#connect-from-your-terminal)을 사용할 수 없으면 메시지에는 앱 설치만 표시됩니다. -**해야 할 일:** +**해결 방법:** -* 로컬 `gh` CLI가 저장소를 읽을 수 있으면 `/web-setup`을 실행하여 해당 로그인을 Claude 계정에 연결합니다. -* 변경 후 검토를 다시 실행합니다. +* 로컬 `gh` CLI가 저장소를 읽을 수 있다면 `/web-setup`을 실행하여 해당 로그인을 Claude 계정에 연결합니다 +* 변경 후 리뷰를 다시 실행합니다 -v2.1.248 이전에는 Claude Code가 시작 전에 이를 확인하지 않았습니다. +v2.1.248 이전에는 Claude Code가 실행 전에 이를 확인하지 않았습니다.

- GitHub 앱 사전 점검이 일시적으로 실패함 + GitHub App 사전 검사가 일시적으로 실패함

-로컬 저장소에서 [클라우드 세션](/docs/ko/claude-code-on-the-web)을 시작했고 두 단계가 함께 실패했습니다. Claude Code가 저장소 번들을 구축하거나 업로드할 수 없습니다. 업로드 전에 클라우드 서비스가 GitHub에서 저장소를 클론할 수 있는지 확인했고 명확한 답변 대신 재시도가 지울 수 있는 오류로 끝났습니다. 예를 들어 네트워크 오류, 타임아웃 또는 임시 서버 오류입니다. 전체 메시지는 번들을 중지한 것으로 시작합니다. 예를 들어 `Could not upload repo bundle ()`이고 사전 점검 문장으로 끝납니다: +로컬 저장소에서 [클라우드 세션](/docs/ko/claude-code-on-the-web)을 시작했으며, 두 단계가 함께 실패했습니다. Claude Code가 저장소 번들을 빌드하거나 업로드할 수 없었습니다. 업로드 전에 Claude Code는 클라우드 서비스가 GitHub에서 저장소를 클론할 수 있는지 확인했는데, 이 검사가 명확한 답 대신 네트워크 오류, 시간 초과 또는 일시적인 서버 오류처럼 재시도로 해결될 수 있는 오류로 끝났습니다. 전체 메시지는 `Could not upload repo bundle ()`처럼 번들을 중단시킨 원인으로 시작하고 사전 검사 문장으로 끝납니다: ```text theme={null} Could not upload repo bundle (). The GitHub App preflight failed transiently (network or service hiccup) — retry in a moment to start from GitHub instead ``` -**해야 할 일:** +**해결 방법:** -* 잠시 후 명령어를 다시 실행합니다. GitHub 확인이 통과하면 Claude Code는 GitHub 클론에서 세션을 시작할 수 있으므로 실패한 업로드가 더 이상 시작을 차단하지 않습니다. -* 재시도가 계속 실패하면 메시지의 시작이 업로드를 중지한 것을 이름 지정합니다. 수정할 수 있는 원인이 있으면 수정하여 세션이 대신 로컬 저장소에서 시작할 수 있습니다. +* 잠시 후 명령을 다시 실행합니다. GitHub 검사가 통과하면 Claude Code는 GitHub 클론에서 세션을 시작할 수 있으므로, 실패한 업로드가 더 이상 실행을 막지 않습니다 +* 재시도가 계속 실패하면 메시지 앞부분에 업로드를 중단시킨 원인이 표시됩니다. 해당 원인을 해결할 수 있다면 해결하여 로컬 저장소에서 세션을 시작할 수 있도록 합니다 -v2.1.251 이전에는 Claude Code가 GitHub 확인이 일시적으로만 실패했을 때도 `Please set up GitHub on https://claude.ai/code`로 메시지를 끝냈고 설정 조언은 일시적 실패를 지울 수 없습니다. +v2.1.251 이전에는 GitHub 검사가 일시적으로만 실패한 경우에도 Claude Code가 메시지를 `Please set up GitHub on https://claude.ai/code`로 끝냈으며, 설정 안내로는 일시적인 실패를 해결할 수 없습니다.

저장소 업로드가 git 설정을 따를 수 없음

-[로컬 저장소를 업로드하는 클라우드 세션](/docs/ko/claude-code-on-the-web#send-local-repositories-without-github)을 시작했거나 [분기의 ultrareview](/docs/ko/ultrareview)를 시작했고 업로드가 파일에 적용할 속성 규칙을 결정하는 git 설정을 따를 수 없습니다. 업로드가 진행되고 규칙을 놓쳤다면 git이 저장하기 전에 변환하는 파일(예: 깨끗한 필터가 암호화하는 파일)이 디스크에 있는 그대로 클라우드에 도달할 수 있습니다. Claude Code는 대신 업로드를 거부하고 아무것도 업로드되지 않습니다: +[로컬 저장소를 업로드하는 클라우드 세션](/docs/ko/claude-code-on-the-web#send-local-repositories-without-github)이나 브랜치의 [ultrareview](/docs/ko/ultrareview)를 시작했지만, 파일에 적용되는 속성 규칙을 결정하는 git 설정 중 하나를 업로드가 따를 수 없습니다. 업로드가 진행되어 규칙을 놓치면, clean 필터가 암호화하는 파일처럼 git이 저장하기 전에 변환하는 파일이 디스크에 있는 그대로 클라우드에 전달될 수 있습니다. Claude Code는 대신 업로드를 거부하며, 아무것도 업로드되지 않습니다: ```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 , 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. +Not uploading this working tree: core.ignoreCase (which decides whether .gitattributes patterns match file names regardless of letter case) is set in , 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. ``` -메시지는 설정과 설정된 위치를 이름 지정하고 히트한 경우에 대한 수정으로 끝납니다. 동일한 거부는 `core.attributesFile` 및 `attr.tree`에 대해 나타나며 각각 자체 수정이 있습니다. +메시지에는 설정과 그 설정 위치가 표시되며, 해당 경우에 맞는 해결 방법으로 끝납니다. `core.attributesFile`과 `attr.tree`에 대해서도 각각 고유한 해결 방법과 함께 같은 거부 메시지가 표시됩니다. -메시지는 해당 지시문의 조건이 이 저장소에 적용되지 않을 때도 `include` 또는 `includeIf` 지시문을 통해 git 구성이 끌어오는 구성 파일을 이름 지정할 수 있습니다. +메시지에는 git 구성이 `include` 또는 `includeIf` 지시문을 통해 불러오는 설정 파일이 표시될 수 있으며, 이는 해당 지시문의 조건이 이 저장소에 적용되지 않는 경우에도 마찬가지입니다. -**해야 할 일:** +**해결 방법:** -* 메시지의 최종 문장에서 수정을 적용합니다. +* 메시지의 마지막 문장에 있는 해결 방법을 적용합니다

- GitHub가 Claude 계정에 연결되지 않음 + GitHub가 Claude 계정에 연결되어 있지 않음

-로컬 저장소에서 [클라우드 세션](/docs/ko/claude-code-on-the-web)을 시작했습니다. 예를 들어 `/autofix-pr`을 사용합니다. GitHub 계정이 Claude 계정에 연결되지 않았거나 연결이 만료되었으므로 Claude Code는 시작을 거부합니다: +`/autofix-pr` 등으로 로컬 저장소에서 [클라우드 세션](/docs/ko/claude-code-on-the-web)을 시작했습니다. Claude 계정에 연결된 GitHub 계정이 없거나 연결이 만료되었으므로 Claude Code는 실행을 거부합니다: ```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 ``` -[`/schedule`](/docs/ko/routines)로 루틴을 만들 때 동일한 메시지가 저장소를 이름 지정하는 설정 메모로 나타납니다. 메모는 루틴 만들기를 차단하지 않습니다. +[`/schedule`](/docs/ko/routines)로 루틴을 만들 때는 같은 메시지가 저장소 이름이 포함된 설정 안내로 표시되며, 이 안내는 루틴 생성을 막지 않습니다. -**해야 할 일:** +**해결 방법:** -* `/web-setup`을 실행하여 GitHub CLI 로그인을 Claude 계정에 연결하거나 [claude.ai/connect-github](https://claude.ai/connect-github)에서 계정을 연결합니다. [GitHub 인증 옵션](/docs/ko/claude-code-on-the-web#github-authentication-options)을 참조하여 두 가지가 어떻게 다른지 확인합니다. -* 연결 후 1분 후 명령어를 다시 실행합니다. +* `/web-setup`을 실행하여 GitHub CLI 로그인을 Claude 계정에 연결하거나, [claude.ai/connect-github](https://claude.ai/connect-github)에서 계정을 연결합니다. 두 방법의 차이점은 [GitHub 인증 옵션](/docs/ko/claude-code-on-the-web#github-authentication-options)을 참조하세요. +* 연결 후 1분 뒤에 명령을 다시 실행합니다 -v2.1.268 이전에는 Claude Code가 이를 Claude GitHub 앱 확인의 임시 실패로 보고했고 재시도하거나 앱을 설치하도록 제안했습니다. 둘 다 GitHub 계정을 연결하지 않습니다. +v2.1.268 이전에는 Claude Code가 이를 Claude GitHub App 검사의 일시적인 실패로 보고하고 재시도하거나 앱을 설치하도록 제안했지만, 두 방법 모두 GitHub 계정을 연결하지 않습니다.

- 싱글 사인온 인증 필요 + Single sign-on 인가 필요

-[`/install-github-app`](/docs/ko/github-actions#quick-setup)을 실행했고 SAML 싱글 사인온을 적용하는 조직의 저장소를 선택했습니다. 설정 전에 Claude Code는 GitHub CLI로 저장소에 대한 액세스를 확인하고 GitHub는 `gh` 토큰이 아직 조직에 대해 인증되지 않았기 때문에 해당 확인을 거부했습니다. 마법사는 인증 단계와 함께 경고를 표시합니다: +[`/install-github-app`](/docs/ko/github-actions#quick-setup)을 실행하고 SAML single sign-on을 적용하는 조직에 속한 저장소를 선택했습니다. 설정 전에 Claude Code는 GitHub CLI로 저장소에 대한 접근 권한을 확인하는데, `gh` 토큰이 아직 해당 조직에 대해 인가되지 않았으므로 GitHub가 이 확인을 거부했습니다. 마법사는 인가 단계와 함께 경고를 표시합니다: ```text theme={null} Single sign-on authorization needed / belongs to an organization that enforces SAML single sign-on, and your GitHub CLI token isn't authorized for it yet. ``` -**해야 할 일:** +**해결 방법:** -* `gh auth refresh -h github.com -s repo,workflow`를 실행하여 GitHub CLI 로그인을 `repo` 및 `workflow` 범위로 다시 인증하고 GitHub가 싱글 사인온을 요청할 때 조직을 인증합니다. -* `GH_TOKEN`에서 개인 액세스 토큰으로 인증하면 [github.com/settings/tokens](https://github.com/settings/tokens)를 열고 토큰에서 **Configure SSO**를 선택하고 조직을 인증합니다. -* `/install-github-app`을 다시 실행합니다. +* `gh auth refresh -h github.com -s repo,workflow`를 실행하여 `repo` 및 `workflow` 범위로 GitHub CLI 로그인을 다시 인가하고, GitHub가 single sign-on을 요청하면 조직을 인가합니다 +* `GH_TOKEN`의 개인 액세스 토큰으로 인증하는 경우 [github.com/settings/tokens](https://github.com/settings/tokens)를 열고 해당 토큰에서 **Configure SSO**를 선택한 다음 조직을 인가합니다 +* `/install-github-app`을 다시 실행합니다 -v2.1.273 이전에는 Claude Code가 이 조건에 대해 `Admin permissions required` 경고를 표시했습니다. +v2.1.273 이전에는 Claude Code가 이 상황에서 대신 `Admin permissions required` 경고를 표시했습니다.

대화를 재개하지 못함

-Claude Code가 [`claude --resume` 선택기](/docs/ko/sessions#use-the-session-picker)에서 선택한 세션의 저장된 기록을 읽거나 처리할 수 없으므로 부분적으로 로드된 상태에서 계속하는 대신 프로세스를 종료합니다. 메시지는 재시도 명령어를 포함합니다: +Claude Code가 [`claude --resume` 선택기](/docs/ko/sessions#use-the-session-picker)에서 선택한 세션의 저장된 트랜스크립트를 읽거나 처리할 수 없었으므로, 부분적으로 로드된 상태로 계속하지 않고 프로세스를 종료합니다. 메시지에는 재시도할 명령이 포함되어 있습니다: ```text theme={null} Failed to resume the conversation. Run claude --resume to retry, or claude to start a new session. ``` -Claude Code는 메시지를 표시한 후 코드 1로 종료됩니다. 실행 중인 세션 내의 `/resume` 선택기는 대화에서 `Failed to resume conversation`을 보고하고 현재 세션은 계속 실행됩니다. v2.1.216 이전에는 `claude --resume` 선택기에서 실패한 재개가 `Resuming conversation…` 스피너에 무한정 머물렀습니다. +Claude Code는 메시지를 표시한 후 종료 코드 1로 종료됩니다. 실행 중인 세션 내의 `/resume` 선택기는 대신 대화에 `Failed to resume conversation`을 보고하며, 현재 세션은 계속 실행됩니다. v2.1.216 이전에는 `claude --resume` 선택기에서 재개에 실패하면 이 메시지를 표시하는 대신 `Resuming conversation…` 스피너에 무한정 머물렀습니다. -**해야 할 일:** +**해결 방법:** -* 메시지의 세션 ID로 `claude --resume `를 실행하여 재시도합니다. -* 모든 재시도가 같은 방식으로 실패하면 `claude update`를 실행하고 다시 재개합니다. v2.1.275 이전의 버전은 저장된 기록에 읽을 수 없는 항목이 포함되어 있을 때 재개에 실패합니다. -* 재시도가 다시 실패하면 `claude`를 실행하여 새 세션을 시작합니다. +* 메시지에 있는 세션 ID로 `claude --resume `를 실행하여 재시도합니다 +* v2.1.285 이전 버전에서 재시도가 같은 방식으로 실패하면 `claude update`를 실행하고 다시 재개합니다. 해당 버전은 저장된 트랜스크립트에 읽을 수 없는 항목이 있으면 재개에 실패합니다. +* 재시도가 다시 실패하면 `claude`를 실행하여 새 세션을 시작합니다

- 세션 ID와 일치하는 대화를 찾을 수 없음 + No conversation found with the session ID

-`claude --resume `에 세션 ID를 전달했고 저장된 기록이 일치하지 않습니다: +`claude --resume `에 세션 ID를 전달했지만 일치하는 저장된 트랜스크립트가 없습니다: ```text theme={null} No conversation found with session ID: ``` -Claude Code는 메시지를 표시한 후 코드 1로 종료됩니다. Claude Code는 [현재 프로젝트를 먼저 검색한 후 이 머신의 다른 모든 프로젝트를 검색](/docs/ko/sessions#resume-a-session)합니다. v2.1.223 이전에는 조회가 현재 프로젝트 디렉토리와 git worktree에서 중지되었으므로 세션이 마지막으로 작동한 디렉토리에서 재개합니다. +Claude Code는 메시지를 표시한 후 코드 1로 종료됩니다. Claude Code는 [현재 프로젝트를 먼저 검색한 다음 이 머신의 다른 모든 프로젝트](/docs/ko/sessions#resume-a-session)에서 해당 ID를 검색합니다. v2.1.223 이전에는 현재 프로젝트 디렉터리와 해당 git worktree에서만 검색했으므로, 세션이 마지막으로 작업한 디렉터리에서 재개해야 했습니다. 일반적인 원인: -* **잘못된 ID**: 비대화형 실행의 경우 ID는 [`--output-format json` 출력](/docs/ko/headless#get-structured-output)의 `session_id` 필드입니다. -* **삭제된 기록**: Claude Code는 [보존 기간](/docs/ko/sessions#where-transcripts-are-stored) 후 기록을 제거합니다. 기본값은 30일이며 [보존 스윕 규칙](/docs/ko/claude-directory#cleaned-up-automatically)을 따릅니다. -* **다른 머신**: Claude Code는 기록을 로컬로 저장하므로 세션이 실행된 머신에서 재개합니다. -* **중복 복사본**: `~/.claude/projects` 아래에 프로젝트 디렉토리를 복사했으므로 두 기록이 동일한 ID를 가지면 Claude Code는 이 메시지를 보고하고 임의로 하나의 복사본을 재개하지 않습니다. +* **잘못 입력된 ID**: 비대화형 실행의 경우 ID는 [`--output-format json` 출력](/docs/ko/headless#get-structured-output)의 `session_id` 필드입니다 +* **삭제된 트랜스크립트**: Claude Code는 [보존 기간](/docs/ko/sessions#where-transcripts-are-stored)(기본값 30일)이 지나면 [보존 정리 규칙](/docs/ko/claude-directory#cleaned-up-automatically)에 따라 트랜스크립트를 삭제합니다 +* **다른 머신**: Claude Code는 트랜스크립트를 로컬에 저장하므로 세션이 실행된 머신에서 재개해야 합니다 +* **중복 사본**: `~/.claude/projects` 아래의 프로젝트 디렉터리를 복사하여 두 트랜스크립트가 같은 ID를 갖게 된 경우, Claude Code는 임의로 한 사본을 재개하지 않고 이 메시지를 표시합니다 -**해야 할 일:** +**해결 방법:** -* 대화형 세션의 경우 `claude --resume`으로 [세션 선택기](/docs/ko/sessions#use-the-session-picker)를 열고 `Ctrl+A`를 눌러 이 머신의 모든 프로젝트로 확장한 후 세션을 선택합니다. -* `claude -p` 또는 [Agent SDK](/docs/ko/agent-sdk/overview)로 만든 세션은 선택기에 나타나지 않으므로 원래 실행이 출력한 `session_id`에 대해 ID를 다시 확인합니다. +* 대화형 세션의 경우 `claude --resume`으로 [세션 선택기](/docs/ko/sessions#use-the-session-picker)를 열고 `Ctrl+A`를 눌러 이 머신의 모든 프로젝트로 범위를 넓힌 다음 세션을 선택합니다 +* `claude -p` 또는 [Agent SDK](/docs/ko/agent-sdk/overview)로 생성한 세션은 선택기에 표시되지 않으므로, 원래 실행에서 출력된 `session_id`와 ID를 다시 대조합니다

- Windows가 이 세션의 기록 파일을 읽을 때 오류를 보고함 (EBADF) + Windows reported an error (EBADF) when Claude Code read this session's transcript file

-Windows에서 세션을 재개했고 저장된 [기록 파일](/docs/ko/sessions#where-transcripts-are-stored)이 정상적으로 열렸으며 읽기가 EBADF 시스템 오류로 실패했습니다. 시스템 오류는 읽기가 실패한 이유를 말하지 않으므로 메시지는 가능한 원인과 시도할 것을 제안합니다: +Windows에서 세션을 재개했을 때 저장된 [트랜스크립트 파일](/docs/ko/sessions#where-transcripts-are-stored)은 정상적으로 열렸지만, 읽는 과정에서 시스템 오류 EBADF가 발생했습니다. 시스템 오류만으로는 읽기가 실패한 이유를 알 수 없으므로, 메시지에서 가능성 있는 원인과 시도해 볼 방법을 제안합니다: ```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. ``` -메시지는 명령어의 자체 실패 줄을 따릅니다. 예를 들어 `Failed to resume session `. `claude --resume` 또는 [`claude -p`](/docs/ko/headless) 명령어는 메시지를 표시한 후 코드 1로 종료됩니다. `/resume` 후 실행 중인 세션 내에서 현재 세션은 계속 실행됩니다. +이 메시지는 `Failed to resume session `와 같은 명령 자체의 실패 줄 다음에 표시됩니다. `claude --resume` 또는 [`claude -p`](/docs/ko/headless) 명령은 이 메시지를 표시한 후 코드 1로 종료됩니다. 세션 내에서 `/resume`을 실행한 경우에는 현재 세션이 계속 실행됩니다. -**해야 할 일:** +**해결 방법:** -* 보안, 암호화 또는 엔드포인트 관리 도구 같은 파일 읽기를 스캔하거나 가로채는 소프트웨어에서 기록을 보유하는 폴더를 제외합니다. 기록은 기본적으로 `%USERPROFILE%\.claude\projects` 아래에 있거나 [`CLAUDE_CONFIG_DIR`](/docs/ko/env-vars)이 이름 지정하는 디렉토리 아래에 있습니다. -* 제외를 추가할 수 없으면 대신 해당 소프트웨어의 허용된 애플리케이션에 Claude Code를 추가합니다. -* 세션을 다시 재개합니다. +* 보안, 암호화 또는 엔드포인트 관리 도구처럼 파일 읽기를 검사하거나 가로채는 소프트웨어에서 세션 트랜스크립트가 저장된 폴더를 제외합니다. 트랜스크립트는 기본적으로 `%USERPROFILE%\.claude\projects` 아래에, 또는 [`CLAUDE_CONFIG_DIR`](/docs/ko/env-vars)이 지정하는 디렉터리 아래에 저장됩니다 +* 제외 항목을 추가할 수 없는 경우, 대신 해당 소프트웨어의 허용된 애플리케이션에 Claude Code를 추가합니다 +* 세션을 다시 재개합니다 -v2.1.282 이전에는 실패가 설명 없이 나타났습니다: `claude --resume `는 `Failed to resume session `에서 끝났고 `-p` 실행은 `Failed to resume session: EBADF: bad file descriptor, read` 같은 시스템 오류 텍스트만 출력했습니다. +v2.1.282 이전에는 이 실패에 대한 설명이 표시되지 않았습니다. `claude --resume `는 `Failed to resume session `로 끝났고, `-p` 실행은 `Failed to resume session: EBADF: bad file descriptor, read`와 같은 시스템 오류 텍스트만 출력했습니다.

- 이 세션에서 렌더러를 전환할 수 없음 + Cannot switch renderers in this session

-렌더러를 전환하면 Claude Code가 프로세스를 다시 시작합니다. [`/tui`](/docs/ko/fullscreen#enable-fullscreen-rendering)를 Claude Code가 다시 시작하기를 거부하는 세션에서 실행했으므로 전환하지 않고 아무것도 저장하지 않습니다. 어떤 메시지를 보는지는 원인을 알려줍니다: - -* `Cannot switch renderers while work is running in the background`: 백그라운드 셸 또는 하위 에이전트 같은 재시작이 중단할 백그라운드 작업이 실행 중입니다. [`/tasks`](/docs/ko/commands)로 작업이 완료될 때까지 기다리거나 중지한 후 `/tui fullscreen` 또는 `/tui default`를 다시 실행합니다. -* +렌더러를 전환하면 Claude Code는 프로세스를 다시 시작합니다. Claude Code가 다시 시작을 거부하는 세션에서 [`/tui`](/docs/ko/fullscreen#enable-fullscreen-rendering)를 실행했으므로, 전환하지 않으며 아무것도 저장하지 않습니다. 표시되는 메시지를 보면 원인을 알 수 있습니다: -`Cannot switch renderers in this session`: 세션에 Claude Code가 다시 시작된 프로세스로 전달할 수 없는 제한이 있습니다. v2.1.234 이전에는 Claude Code가 어쨌든 다시 시작했고 다시 시작된 세션이 제한 없이 실행되었습니다. +* `Cannot switch renderers while work is running in the background`: 백그라운드 셸이나 서브에이전트처럼 다시 시작하면 중단될 백그라운드 작업이 실행 중입니다. 작업이 끝날 때까지 기다리거나 [`/tasks`](/docs/ko/commands)로 작업을 중지한 다음 `/tui fullscreen` 또는 `/tui default`를 다시 실행합니다 +* `Cannot switch renderers in this session`: 세션에 Claude Code가 다시 시작된 프로세스로 전달할 수 없는 제한 사항이 있습니다. v2.1.234 이전에는 Claude Code가 그래도 다시 시작했으며, 다시 시작된 세션은 해당 제한 사항 없이 실행되었습니다 -제한 메시지에서 괄호 안의 부분은 Claude Code가 찾은 제한을 이름 지정합니다: +제한 사항 메시지에서 괄호 안의 부분은 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. ``` -메시지가 괄호 안에 표시할 수 있는 각 이유: +메시지의 괄호 안에 표시될 수 있는 각 이유는 다음과 같습니다: -* `launch flags: a custom system prompt, a tool allowlist, or restricted settings`: Claude Code가 다시 시작된 프로세스로 전달하지 않는 플래그로 세션을 시작했습니다. 이러한 플래그에는 [`--system-prompt`](/docs/ko/cli-reference#cli-flags), `--system-prompt-file`, `--append-system-prompt-file`, [`--tools`](/docs/ko/cli-reference#cli-flags) 허용 목록, [`--setting-sources`](/docs/ko/cli-reference#cli-flags) 및 [`--permission-prompt-tool`](/docs/ko/cli-reference#cli-flags)이 포함됩니다. -* `permission rules set for this session only`: 훅 또는 SDK 호출자의 [권한 업데이트](/docs/ko/hooks#permission-update-entries)가 `session` 대상으로 거부 또는 요청 규칙을 추가했습니다. 세션 범위 허용 규칙은 거부를 트리거하지 않습니다. 재시작이 이를 제거하고 Claude Code가 대신 다시 프롬프트합니다. -* `ask-before-running rules with no command-line form`: 훅 또는 SDK 호출자의 권한 업데이트가 Claude Code가 `--allowed-tools` 및 `--disallowed-tools`로 전달하는 규칙과 함께 요청 규칙을 추가했습니다. 요청 규칙에 대한 플래그는 없습니다. -* `permission rules a command line cannot carry intact` 및 `added directories a command line cannot carry intact`: 권한 업데이트가 세션 중간에 규칙 또는 디렉토리 경로를 추가했습니다. 다시 시작된 프로세스의 명령줄이 텍스트를 동일한 값으로 전달할 수 없습니다. +* `launch flags: a custom system prompt, a tool allowlist, or restricted settings`: Claude Code가 다시 시작된 프로세스로 다시 전달하지 않는 플래그로 세션을 시작했습니다. 이러한 플래그에는 [`--system-prompt`](/docs/ko/cli-reference#cli-flags), `--system-prompt-file`, `--append-system-prompt-file`, [`--tools`](/docs/ko/cli-reference#cli-flags) 허용 목록, [`--setting-sources`](/docs/ko/cli-reference#cli-flags), [`--permission-prompt-tool`](/docs/ko/cli-reference#cli-flags)이 포함됩니다 +* `permission rules set for this session only`: 훅 또는 SDK 호출자의 [권한 업데이트](/docs/ko/hooks#permission-update-entries)가 `session` 대상으로 거부 또는 확인 규칙을 추가했습니다. 세션 범위의 허용 규칙은 거부를 유발하지 않습니다. 다시 시작하면 이 규칙은 삭제되며, Claude Code가 대신 다시 확인을 요청합니다 +* `ask-before-running rules with no command-line form`: 훅 또는 SDK 호출자의 권한 업데이트가 Claude Code가 `--allowed-tools` 및 `--disallowed-tools`로 다시 전달하는 규칙과 함께 확인 규칙을 추가했습니다. 확인 규칙에 해당하는 플래그는 없습니다 +* `permission rules a command line cannot carry intact` 및 `added directories a command line cannot carry intact`: 세션 도중 권한 업데이트가 규칙 또는 디렉터리 경로를 추가했습니다. 다시 시작된 프로세스의 명령줄은 해당 텍스트를 동일한 값으로 전달할 수 없습니다 -**해야 할 일:** +**해결 방법:** -* 이러한 제한 없이 시작된 세션에서 `/tui fullscreen` 또는 `/tui default`를 실행하여 다시 전환합니다. Claude Code는 [`tui` 설정](/docs/ko/settings-reference#tui)을 거기에 저장합니다. +* 이러한 제한 사항 없이 시작된 세션에서 `/tui fullscreen`을 실행하거나, 다시 전환하려면 `/tui default`를 실행합니다. Claude Code는 해당 세션에서 [`tui` 설정](/docs/ko/settings-reference#tui)을 저장합니다

- Claude Desktop을 열 수 없음 + Couldn't open Claude Desktop

-[`/desktop`](/docs/ko/desktop#coming-from-the-cli) 또는 그 별칭 `/app`을 실행했거나 [`claude --desktop`](/docs/ko/cli-reference#cli-flags)을 셸에서 실행했고 Claude Code가 Claude Desktop을 열기 위해 사용하는 시스템 명령어가 실패했습니다. `/desktop` 후 세션은 터미널에 남아 있습니다. `claude --desktop`은 메시지를 `Error:` 접두사 없이 출력하고 상태 1로 종료됩니다. +세션에서 [`/desktop`](/docs/ko/desktop#coming-from-the-cli) 또는 그 별칭인 `/app`을 실행하거나, 셸에서 [`claude --desktop`](/docs/ko/cli-reference#cli-flags)을 실행했으며, Claude Code가 Claude Desktop을 열기 위해 사용하는 시스템 명령이 실패했습니다. `/desktop` 실행 후에는 세션이 터미널에 그대로 유지되며, `claude --desktop`은 `Error:` 접두사 없이 메시지를 출력하고 상태 1로 종료됩니다. -괄호의 텍스트는 실패한 명령어를 이름 지정합니다. 종료 상태와 첫 번째 오류 출력 줄이 있으면 함께 표시됩니다. macOS에서 해당 명령어는 `open`입니다. 이 예와 같이 Windows에서는 `rundll32`입니다: +괄호 안의 텍스트는 실패한 명령과 함께, 해당 정보가 생성된 경우 종료 상태 및 오류 출력의 첫 줄을 나타냅니다. macOS에서는 이 예시처럼 해당 명령이 `open`이며, Windows에서는 `rundll32`입니다: ```text theme={null} Error: Couldn't open Claude Desktop (`open` exited 1: LSOpenURLsWithRole() failed for the URL claude://resume?session= with error -10814). Open Claude Desktop and try again. ``` -**해야 할 일:** +**해결 방법:** -* Claude Desktop을 직접 열고 `/desktop` 또는 `claude --desktop`을 다시 실행합니다. -* 실패한 명령어의 전체 오류 출력을 읽으려면 `/debug`로 디버그 로깅을 켜고 `/desktop`을 다시 실행하거나 `claude --desktop --debug-file `를 실행한 후 디버그 로그를 확인합니다. +* Claude Desktop을 직접 연 다음 `/desktop` 또는 `claude --desktop`을 다시 실행합니다 +* 실패한 명령의 전체 오류 출력을 확인하려면 `/debug`로 디버그 로깅을 켜고 `/desktop`을 다시 실행하거나, `claude --desktop --debug-file `를 실행한 다음 디버그 로그를 확인합니다 -v2.1.285 이전에는 메시지가 `Open Claude Desktop and run /desktop again.`으로 끝났습니다. v2.1.275 이전에는 `Failed to open Claude Desktop. Please try opening it manually.`였고 무엇이 실패했는지 말하지 않았습니다. +v2.1.285 이전에는 메시지가 `Open Claude Desktop and run /desktop again.`으로 끝났습니다. v2.1.275 이전에는 메시지가 `Failed to open Claude Desktop. Please try opening it manually.`였으며 무엇이 실패했는지 알려주지 않았습니다.

- /terminal-setup이 Zed 키맵을 변경하지 않음 + /terminal-setup left your Zed keymap unchanged

-Zed에서 [`/terminal-setup`](/docs/ko/terminal-config#enter-multiline-prompts)을 실행했고 Claude Code가 Zed `keymap.json`에 대한 업데이트를 완료할 수 없어서 파일을 그대로 두었습니다. +Zed에서 [`/terminal-setup`](/docs/ko/terminal-config#enter-multiline-prompts)을 실행했지만 Claude Code가 Zed `keymap.json` 업데이트를 완료하지 못해 파일을 그대로 두었습니다. -각 메시지는 키맵 경로를 이름 지정하고 직접 추가할 키바인딩 블록으로 끝납니다: +각 메시지는 키맵 경로를 알려주며, 직접 추가할 키보드 단축키 블록으로 끝납니다: ```text theme={null} Couldn't update your Zed keymap, so it was left unchanged. @@ -3689,63 +3754,63 @@ To add the binding yourself, add this block to the keymap array in - 스킬 사용 보고서는 이 연결에서 사용할 수 없음 + Skill usage reports are not available on this connection

-[Remote Control](/docs/ko/remote-control)을 통해, 휴대폰 또는 브라우저에서 [`/skill-doctor`](/docs/ko/skills#find-unused-skills)를 실행했습니다. Claude Code는 Remote Control을 통해 스킬 사용 보고서를 보내지 않고 대신 이 메시지로 응답합니다: +휴대폰이나 브라우저에서 [Remote Control](/docs/ko/remote-control)을 통해 [`/skill-doctor`](/docs/ko/skills#find-unused-skills)를 실행했습니다. Claude Code는 Remote Control을 통해 스킬 사용 보고서를 보내지 않으며, 대신 다음 메시지로 응답합니다: ```text theme={null} Skill usage reports are not available on this connection. ``` -**해야 할 일:** +**해결 방법:** -* 세션이 실행 중인 머신의 터미널에서 `/skill-doctor`를 실행하거나 거기서 `claude -p "/skill-doctor"`를 실행합니다. +* 세션이 실행 중인 머신의 터미널에서 `/skill-doctor`를 실행하거나, 해당 머신에서 `claude -p "/skill-doctor"`를 실행합니다

- 사용자 정의 출력 스타일을 Remote Control을 통해 선택할 수 없음 + Custom output styles can't be selected over Remote Control

-[Remote Control](/docs/ko/remote-control)을 통해 모바일 앱 또는 웹에서 [`/output-style`](/docs/ko/output-styles#change-your-output-style)을 실행했거나 명령어가 세션으로 릴레이된 메시지에 도착했습니다. 이러한 턴이 계정 소유자에게서 오지 않을 수 있으므로 Claude Code는 [기본 제공 스타일](/docs/ko/output-styles#built-in-output-styles)만 나열하고 선택하며 명령어가 스타일을 나열하거나 제공한 이름을 인식하지 못할 때마다 이 공지를 추가합니다. [사용자 정의 스타일](/docs/ko/output-styles#create-a-custom-output-style) 이름은 존재하지 않는 이름과 동일한 응답을 받습니다: +[Remote Control](/docs/ko/remote-control)을 통해 모바일 앱이나 웹에서 [`/output-style`](/docs/ko/output-styles#change-your-output-style)을 실행했거나, 세션으로 전달된 메시지에 해당 명령이 포함되어 있었습니다. 이러한 턴은 계정 소유자가 보낸 것이 아닐 수 있으므로, Claude Code는 해당 턴에서 [기본 제공 스타일](/docs/ko/output-styles#built-in-output-styles)만 나열하고 선택하며, 명령이 스타일을 나열하거나 입력한 이름을 인식하지 못할 때마다 이 안내를 추가합니다. [사용자 지정 스타일](/docs/ko/output-styles#create-a-custom-output-style) 이름은 존재하지 않는 이름과 동일한 응답을 받습니다: ```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. ``` -**해야 할 일:** +**해결 방법:** -* 기본 제공 스타일을 선택합니다. 예를 들어 `/output-style concise`. -* 사용자 정의 스타일을 사용하려면 프로젝트의 `.claude/settings.local.json`에서 [`outputStyle`](/docs/ko/settings-reference#outputstyle)을 설정하거나 세션 자체의 터미널에서 `/output-style