소개
밤에 작업 스케줄러로 돌려둔 claude -p 자동화가 아침에 결과 없이 끝나 있었습니다. 로그에는 아무 말이 없었고, claude auth status를 치면 "로그인됨"이라고 나왔습니다.
로그인됐다는데 왜 안 돌았는지 알고 싶어서, 로그인이 없는 환경과 틀린 값을 넣은 환경을 일부러 만들어 여러 번 돌려봤습니다.
진행 방법
환경: Windows 10, Claude Code 2.1.286, Pro 구독 로그인, 모델 haiku, 2026년 10월 13일
시험마다 연습 폴더 밖의 새 폴더에서 claude -p를 불렀고, 로그인이 없는 환경은 CLAUDE_CONFIG_DIR을 빈 폴더로 가리켜서 만들었습니다.
키와 토큰은 글자만 흉내 낸 가짜 값만 썼고, 제 실제 로그인과 키는 건드리지 않았습니다.
확인은 네 곳을 같이 봤습니다. claude auth status, 결과 JSON의 init 줄에 찍힌 인증 출처(apiKeySource), 결과 줄의 is_error와 result 문장, 종료 코드입니다.
결과와 배운 점
24번 돌려서 맞춘 횟수를 세어보니 이렇습니다. claude auth status 한 줄만 믿으면 24번 중 12번 틀렸습니다. 종료 코드는 한 번도 안 틀렸지만 왜 실패했는지는 알 수 없습니다.
특히 놀랐던 세 가지입니다. 첫째, --bare를 붙이면 로그인이 멀쩡해도 "Not logged in"으로 끝납니다. 그때 auth status는 여전히 loggedIn True였습니다. (5번 중 5번)
둘째, 가짜 토큰 하나가 정상 로그인을 막았습니다. 그때도 auth status는 loggedIn True였습니다. (3번 중 3번)
셋째, 막힌 주소(프록시·방화벽)는 오류 없이 3분쯤 기다린 뒤 끝났습니다. 그동안 auth status는 로그인됨이었습니다. (2번 중 2번)
공통점은 하나입니다. auth status는 "로그인 정보가 저장돼 있는가"를 말하는 것이고, "이번 호출이 그 로그인으로 실제로 일을 했는가"는 말해주지 않습니다.
그래서 Claude를 부르기 전에 설정 폴더와 환경변수를 먼저 보는 사전 점검을 두고, 호출한 뒤에는 위 네 곳을 같이 보고 판정합니다. 로그인이 없으면 Claude를 아예 부르지 않으니 사용량도 안 듭니다. (참고로 auth status는 0.2초 안에 나오고 모델을 부르지 않습니다.)
한계도 밝힙니다. Windows 10에서만, 모델은 haiku로만 확인했고, 세 번·다섯 번은 분포일 뿐 확률이 아닙니다. 맥·리눅스, 다른 모델, 실제 작업 스케줄러는 확인하지 못했습니다.
같은 상황 겪으신 분은 어떤 환경(OS, 구독 종류, 자동화 도구)이었는지 댓글로 알려주세요. 케이스 모아서 다음 글에 정리하겠습니다.