문제 해결 · Codex CLI
Codex stream error: unexpected status 401/404 해결 방법
Codex에서 스트림 중간의 HTTP 실패는 stream error: unexpected status로 출력됩니다. 여기서 401, 404, 429가 무엇을 뜻하는지, 그리고 curl로 재현해 고장 난 쪽을 찾는 방법.
표시되는 내용
stream error: unexpected status 401 Unauthorized발생 원인
- 401 — env_key 변수가 설정되지 않았거나 비어 있거나, 그 키가 프로필의 base_url에 속하지 않습니다.
- 404 — base_url이 와이어 프로토콜에 맞지 않습니다: /v1 누락, /v1/v1 중복, 또는 Responses API를 서비스하지 않는 호스트.
- 429 — 키의 분당 처리량이 소진되었습니다; 스트림이 시작 전에 거부됩니다.
- 프록시나 네트워크 장비가 SSE 스트림을 응답 중간에 끊으면 상태 코드 대신 연결 끊김 형태로 나타납니다.
해결 방법
- 프로필의 정확한 base_url에 /responses를 붙여 같은 키로 curl로 재현하세요 — 상태 코드가 어느 쪽이 고장인지 알려줍니다.
- 401이면 키/엔드포인트 조합을 고치고, 404면 base_url을 문서화된 값으로 고치고, 429면 윈도우가 지나길 기다리며 병렬 실행을 줄이세요.
- 상태 코드 없이 스트림 중간 끊김이 반복되면 VPN이나 프록시 없이 테스트하세요 — SSE는 간섭하는 미들박스의 첫 희생자입니다.
Codex 밖에서 재현하기
curl https://openai.api.apitoken.sale/v1/responses \
-H "Authorization: Bearer $APITOKEN_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"gpt-5.6-sol","input":"Reply with exactly: connected"}'관련 검색어
codex stream error unexpected statusstream disconnected before completion
자주 묻는 질문
Codex의 stream error: unexpected status 401은 무슨 뜻인가요?+
엔드포인트가 스트림 시작 시점에 자격 증명을 거부했습니다. 프로필의 env_key 변수가 실행 중인 셸에 설정되어 있는지, 그 키가 프로필의 base_url에 속하는지 확인하세요.
호스트가 분명히 맞는데 왜 404인가요?+
경로 실수입니다: 이 게이트웨이에서는 base_url에 /v1이 포함되어야 하며 중복되어서는 안 됩니다. Responses 경로는 Codex가 스스로 붙입니다.
스트림이 상태 코드 없이 중간에 죽습니다 — API 문제인가요?+
보통 네트워크 경로입니다: SSE를 버퍼링하거나 종료시키는 프록시와 VPN. 엔드포인트를 탓하기 전에 깨끗한 연결에서 curl로 재현하세요.