Claude Code v2.1.141에서 관찰된 5건의 새로운 침묵의 실패 구조 분석
요약
Claude Code v2.1.141에서 시스템의 주장과 실제 동작이 일치하지 않는 5건의 '침묵의 실패(silent failure)' 사례가 보고되었습니다. 컨텍스트 창 용량 불일치, 하위 작업자의 과도한 정책 거부, Windows 환경에서의 쉘 불일치 등 설정값과 실제 실행 환경 사이의 괴리가 주요 문제로 지적되었습니다.
핵심 포인트
- 컨텍스트 창 표시(1M)와 실제 제한(300K) 사이의 심각한 용량 불일치 발생
- 메인 대화와 달리 하위 작업자(Sub-worker)에서 더 엄격한 Usage Policy 분류기가 작동하는 현상 관찰
- Windows 환경에서 PowerShell로 안내되나 실제로는 Bash가 실행되는 쉘 환경 불일치 문제
- 최근 유사 이슈 발생 빈도가 기준치 대비 약 23배 급증하며 시스템 불안정성 증가
요약
2026년 5월 14일 Claude Code 이슈 제기 과정에서 5건의 새로운 문제 보고가 관찰되었다. 발신자는 각각 다른 이용자이며, 증상의 표면은 서로 다른 기능(컨텍스트 창(Context window), 하위 작업자(Sub-worker), Windows의 hook, 기업 관리 설정, /status 표시)이지만, 공통된 구조는 '설정이나 문서의 주장'과 '실제 시스템의 동작' 사이의 괴리이다. 본 기사는 5건을 정리하고, 이용자 측의 탐지 및 방어 경로를 요약한다.
최근 30일간의 동일 유형 이슈 제기는 누계 약 80건, 하루 평균 약 8건의 비율로 관찰되고 있다 (2026-04-08부터 2026-05-15까지의 집계 값). 기준치인 0.37건/일 대비 약 23배 가속화된 수치이다. 본 기사의 5건은 이러한 현상이 지속되고 있다는 추가적인 증거이다.
1. 이슈 #59232: 1M 윈도우의 30%에서 발생하는 경직된 중단
이용자가 Opus 4.7의 1M 윈도우 모델로 작업하던 중, /context 표시가 분모를 1m으로 반환하는 상태에서 약 300K 토큰(전체의 30%) 지점에서 「Context limit reached」가 발생하였다.
DISABLE_AUTO_COMPACT=1을 이미 설정한 상태였으며, 이는 2.1.117에서 수정된 유연한 계기(#50888)가 아닌, 별개의 경직된 천장(hard ceiling)에 의한 미교정(miscalibration)이다. 이용자는 관련 이슈인 #42375와 #55504를 이미 참조한 상태였다.
표시되는 분모(1m)와 실제 강제 적용(enforcement)(300k) 사이의 직접적인 불일치. Max plan 결제 이용자에게는 870K 상당의 보이지 않는 천장으로 인해 약 60%의 용량 손실이 발생한다.
탐지 절차: /context 출력의 분모와 실제로 hard-stop이 발생하는 토큰 수를 각각 기록한다. 설정 선언(DISABLE_AUTO_COMPACT=1)과 실제 동작을 비교한다.
2. 이슈 #59226: 하위 작업자의 위양성(False Positive) 거부
이용자(미국 대학의 postdoc 연구자)가 Claude Code를 통해 비코딩 RNA 분석(식물 바이로이드, SARS-CoV-2 게놈 분석)을 의뢰하였다. 동일한 명령을 메인 대화(Main dialogue)에서 실행하면 정상적으로 응답하지만, 하위 작업자(Sub-worker)의 컨텍스트에서 실행하면 2초에서 4초 사이에 「violates Usage Policy」라며 거부되는 현상이 6회 연속 재현되었다.
3가지 방식의 바꿔 말하기(임상 문맥, 연구 문맥, 순수 생물정보학(bioinformatics) 문맥) 모두에서 전건 거부되었다. 이용자는 신분이 공개 자료로 검증 가능한 연구자이다.
메인 대화의 분류기(Classifier)와 하위 작업자의 분류기 동작 사이의 괴리. 연구자의 주장은 하위 작업자 측에서 더 제한적인 분류기를 실행하고 있을 가능성이 높다는 것이다.
탐지 절차: 메인 대화에서 정상 응답하는 명령을 하위 작업자에서 재현할 경우, 하위 작업자 측의 응답 시간과 내용을 각각 기록한다. 동일한 입력에 대해 서로 다른 응답이 나온다면 분류기 계층의 괴리 증거가 된다.
3. 이슈 #59225: Windows 환경 알림과 실제 hook 실행의 불일치
Windows의 Claude Code 환경 서문(environment prelude)은 모델에 「Shell: PowerShell」이라고 알린다. 이용자는 이를 믿고 PowerShell 구문으로 hook을 설정하였다. 하지만 실제 hook 실행은 /usr/bin/bash(Git Bash가 PATH에 있는 경우)에서 이루어진다.
PowerShell 구문인 & "C:/..." "C:/..."가 bash에서 syntax error near unexpected token을 발생시킨다. 이용자가 'Shell 종류'를 신뢰하여 hook을 설계하더라도, 실제 러너(runner)가 다른 종류의 shell로 실행하는 괴리이다.
도구 제작자 측(get-shit-done 도구 등)에서 피해가 현저해지며, 근본 원인은 Claude Code 측의 서문(prelude)과 러너(runner)의 불일치에 있다. Windows hook 제작자를 향한 침묵의 함정이다.
탐지 절차: Windows에서 hook을 PowerShell 구문으로 설정하기 전에, env | grep -i shell 경로를 통해 실제 러너를 점검한다. #!/usr/bin/env bash 단계에서 명시적인 shell 선언을 포함한다.
4. 이슈 #59205: 기업 관리 설정의 무시
managed-settings.json에 permissions.disableBypassPermissionsMode: "disable"를 설정한 상태임에도 불구하고, claude --dangerously-skip-permissions -p "say hi" 명령이 정상적으로 실행된다. 설정의 주장(무효화)과 실제 동작(플래그가 수용됨) 사이의 직접적인 괴리이다.
이는 #44642(2026-04-07 티켓 생성, 38일간 open 상태)의 중복 티켓 생성이다. v2.1.92부터 v2.1.140까지 49개 버전에 걸쳐 남아있는 장기적인 주장과 실태의 괴리 사례이다. flag-parsing(플래그 파싱)이 policy file(정책 파일)의 parsing(파싱)보다 앞서 실행되고 있을 가능성이 있다.
기업 관리 설정이 직접적으로 통과되어 버리는, 신뢰 경계(trust boundary)의 붕괴 계통이다.
검지 절차: managed-settings.json의 permissions.disableBypassPermissionsMode를 설정한 후, claude --dangerously-skip-permissions -p "test"를 별도 호스트에서 실행하여 실제 동작을 점검한다. 설정의 선언과 실제 동작의 대조.
/status 표시와 공식 문서의 괴리
- 티켓 #59214: 공식 문서(code.claude.com/docs/en/settings)는
/status가 "각 설정의 계층(managed, user, project)과 그 기원(plist, HKLM 또는 파일)"을 표시한다고 주장한다. 실제/status출력은 단순한 설정값 목록일 뿐이며, 계층도 기원도 표시하지 않는다.settings.json의hooks.Notification섹션도 표시되지 않는다.
문서의 주장과 구현 동작의 괴리. 이용자의 신뢰 구축 경로의 훼손.
검지 절차: 공식 문서가 주장하는 /status 출력 형식과 실제 출력 형식을 대조한다. 차분이 존재할 경우, 문서 측 혹은 구현 측의 정합성 수정이 필요하다.
공통 구조: 주장과 실태의 괴리 계통
5건 모두에서 "설정이나 문서의 주장"과 "실제 시스템의 동작" 사이의 괴리가 관찰된다.
- 수치의 주장과 실태: 티켓 #59232 (1m과 300k의 괴리)
- 기능의 주장과 실태: 티켓 #59226 (주 대화와 자 작업자의 분류기 괴리)
- 환경의 주장과 실태: 티켓 #59225 (prelude의 Shell 선언과 실제 runner의 괴리)
- 설정의 주장과 실태: 티켓 #59205 (managed policy 선언과 CLI flag의 통과)
- 문서의 주장과 실태: 티켓 #59214 (공식 문서와
/status출력의 괴리)
5개의 서로 다른 표면에서 동일한 구조가 관찰된다. 이는 개별 사고의 집합이 아니라, 구조적 계통이 지속되고 있다는 증거이다.
이용자 측의 방어 3단계 절차
- 설정이나 문서의 주장을 신뢰하기 전에, 다른 경로로 실제 동작을 점검한다.
/status,/config,env, 별도 호스트에서의 재현이라는 3가지 경로를 활용한다. - 자 작업자와 주 대화의 동작 차분을 동일한 입력으로 기록한다. 차분의 존재는 분류기 계층의 증거가 된다.
- hook 작성자는 prelude의 Shell 선언을 신뢰하지 않고,
#!/usr/bin/env bash경로로 명시한다. 실제 runner 판정은 환경 변수를 통해 실행 시점에 점검한다.
관련 정리
본 기사의 5건은 5월 10일 아침에 초판이 마감된 Claude Code Claim-Verify Handbook(2026-05-22 발매, 95건의 사례 정리, 19달러) 부록 D의 지속적인 증거 추가 후보이다. Handbook은 본문의 15건과 부록 D의 80건을 합친 총 95건의 사례를 3단계 프레임워크(이용자의 의도, 시스템의 기록 주장, 실태의 행동)로 정리한다.
최근 30일간 동일 유형의 티켓은 누적으로 약 80건이며, 하루 평균 약 8건의 비율로 관찰되고 있다. 기준치인 0.37건/일 대비 약 23배 가속된 수치이다. Handbook의 미리보기는 Gist에서 공개 중이다.
요약
5월 14일의 5건의 티켓은 표면적으로는 서로 다른 기능이지만, 공통된 구조는 "주장과 실태의 괴리"이다. 이용자 측의 방어 절차는 설정이나 문서의 주장을 신뢰하기 전에 다른 경로로 실제 동작을 점검하는 3단계 절차이다.
최근 30일 동안 약 23배의 가속이 관찰되는 구조적 계통이므로, 개별 티켓에 대한 대응이 아니라 이용자 측의 운용에 "주장 점검 단계"를 포함하는 경로가 필요하다.
AI 자동 생성 콘텐츠
본 콘텐츠는 Zenn AI의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기