- 최근 git 커밋 메시지에
HERMES.md문자열이 들어가면 Claude Code 요청이 Max 플랜 쿼터 대신 extra usage 과금 경로로 보내짐 - 이 트리거는 디스크의 파일 존재와 무관하고 커밋 메시지 내용 자체에서 발생하며,
add HERMES.md는 실패하지만add hermes.md는 정상 처리됨 - 재현 테스트에서는
claude-opus-4-6[1m]와claude-opus-4-7에서API Error: 400 "You're out of extra usage..."가 확인됐고,HERMES,HERMES.txt,README.md등은 같은 현상을 만들지 않음 - 영향을 받은 환경에서는 주간 플랜 용량이 남아 있는데도 $200.98 extra usage 크레딧이 소진됐고, extra usage가 바닥난 뒤에는 여러 프로젝트가 사용 불가 상태가 됨
- 원인은 과도하게 동작한 anti-abuse system으로 확인돼 이미 수정됐고, 이후 이슈는 completed로 닫히면서 환불과 추가 usage credits 지급 공지도 이어짐
문제 개요
- 최근 git 커밋 기록에
HERMES.md문자열이 들어가면 Claude Code 요청이 Max 플랜 쿼터 대신 extra usage 과금 경로로 라우팅됨 - 디스크에
HERMES.md파일이 있는지와는 무관하고, git commit message 내용 자체가 트리거로 작동함 - Claude Code가 최근 커밋을 system prompt에 포함하는 상태에서, 이 문자열이 있을 때 서버 측 라우팅이 달라지는 것으로 좁혀짐
- 포함된 Max 20x 플랜 주간 사용량이 13% 수준으로 쓰인 상태인데도 extra usage 크레딧 $200.98이 소진됐고, extra usage가 고갈된 뒤에는 여러 프로젝트를 완전히 사용할 수 없게 됨
- 같은 시점에 플랜 대시보드에는 주간 용량이 86% 이상 남아 있음으로 표시돼, 실제 과금 경로와 표시 상태가 어긋남
재현 조건과 판별 결과
- 재현 환경은 Claude Code v2.1.119, macOS Apple Silicon, Max 20x plan $200/month, 모델
claude-opus-4-6[1m]이며claude-opus-4-7에서도 재현됨 - 최소 재현 절차에서는
git commit -m "add HERMES.md"뒤claude -p "say hello" --model "claude-opus-4-6[1m]"실행 시API Error: 400 "You're out of extra usage..."가 반환됨 - 같은 절차에서 커밋 메시지를
add hermes.md로 바꾸면 플랜 쿼터 경로로 처리되며"Hello!"가 반환됨 - 재현 스크립트는
/tmp/test-fail,/tmp/test-pass디렉터리를 만든 뒤git init, 파일 추가, 커밋,claude -p실행, 마지막에rm -rf로 정리하는 흐름으로 제시됨 - 트리거 판별 결과는
"HERMES.md"와"test HERMES.md test"에서 실패하고,"hermes.md","HERMES","HERMES.txt","AGENTS.md","README.md"는 정상 동작함 - 디스크에
HERMES.md파일이 있어도 커밋 메시지가 깨끗하면 정상 동작하고, 같은 저장소라도 orphan branch로 히스토리가 없으면 정상 동작함
원인 추적과 기대 동작
- 원인 추적은 영향을 받은 저장소 복제, orphan branch 테스트, 개별 커밋 메시지 문자열을 하나씩 분리하는 systematic binary search 순서로 진행돼 최종적으로
HERMES.md가 정확한 트리거로 좁혀짐 - API 요청 과금이 system prompt 안의 git commit message 내용에 의존하면 안 되며, Max 플랜 구독자 요청은 우선 포함 플랜 쿼터로 라우팅돼야 함
- 에러 메시지
out of extra usage에는 콘텐츠 기반 라우팅이 원인이라는 단서가 없어 진단이 매우 어려워짐 - 최근 git 커밋에
HERMES.md가 들어간 사용자는 사용량이 조용히 extra credits로 과금될 수 있는 상태였음
처리 경과와 최종 상태
- 협업자는 이 문제가 과도하게 동작한 anti-abuse system 때문이었고 이미 수정 완료됐다고 답변함
- 이후 이슈는 completed 상태로 닫힘
- GitHub Actions 봇은 중복 가능 이슈 3건을 제시함
- [BUG] Literal "HERMES.md" in git commit messages triggers 400 "out of extra usage" on Max OAuth (content filter false-positive misclassified as quota error)#53171
- [BUG] CLI completely blocked by "out of extra usage" error despite Max 20x plan at only 10% usage#45020
- Billing bug: Extra usage pool consumed while session limit still has remaining capacity#29704
- 봇은 3일 안에 자동으로 duplicate로 닫힐 수 있다고 알리며, 중복이 아니면 댓글이나 👎 표시를 남기라고 안내함
환불과 지원 대응
- 본문에는 기술 오류로 인한 잘못된 billing routing에도 보상이나 환불을 제공할 수 없다고 밝힌 지원 답변 문구가 포함됨
- 이후 https://news.ycombinator.com/item?id=47952722 기준으로, 영향을 받은 사용자에게는 전액 환불과 함께 월 구독료와 같은 규모의 추가 usage credits 지급 예정이라고 적시됨
- Claude Code 팀의 Thariq가 https://x.com/trq212/status/2048495545375990245 링크를 남김
- 영향받은 사용자 전원에게 이메일 발송 작업을 계속 진행 중이라고 밝힘
- 지원 체계는 이런 복합 버그를 engineering으로 라우팅하도록 준비되지 않았고, 이를 개선하려 하지만 시간이 더 필요함
- 환불 불가 안내와 후속 환불 공지가 함께 남아 있어, 상충하는 메시지가 같은 흐름 안에 공존함
사용자 반응과 설계 비판
- 환불 여부가 불명확하던 시점에는 구독 취소까지 이어졌고, 환불 응답 부재와 메시지에 붙은 clap gif가 취소 사유로 작용함
- 지원 답변이 실제 환불로 이어졌는지를 기준으로 향후 판단을 내리겠다는 흐름도 나타남
- 이미지와 밈 표현 때문에 원 게시자의 댓글이 본인 발언이 아니라 support bot 인용이라는 점을 뒤늦게 파악하게 됨
- @bcherny의 보고를 근거로, overactive anti-abuse system이 일부 요청을 차단하지 않고 extra usage billing으로 넘긴다는 해석도 뒤따름
- abuse라면 차단해야지 추가 과금으로 처리하면 안 된다는 비판이 이어졌고, quota를 우회하면서 요청은 계속 처리하고 대신 upcharge하는 모드가 있다면 그 설계 자체가 문제로 받아들여짐
- 로컬에서 실행되는 클라이언트를 사용자가 직접 통제하려는 행위가 breach처럼 취급된다는 반발과, 사용자를 대신해 행동하는 software agent에 권한을 위임할 수 있어야 한다는 비판도 이어짐
- 개인용 agent를 판매한다고 하면서 실제 동작은 person+agent 조합을 환영한다는 메시지와 엇갈려 보임이라는 지적도 뒤따름
대안 모델 언급
- 중국계 open weight models는 로컬 하드웨어에서 호스팅 가능하고, 하드웨어만 있으면 자체 실행할 수 있는 대안으로 거론됨
- 이 모델들은 Anthropic 대비 비용이 10~50배 저렴하고, 코딩 성능은 약 2.7% 낮다는 수치가 함께 제시됨