“Streaming interrupted. Waiting for the complete message”는 ChatGPT의 답변을 브라우저로 스트리밍하는 연결이 답변 완료 전에 끊길 때 나타납니다. 거의 항상 사용자가 입력한 내용 때문은 아닙니다. 일반적인 원인은 OpenAI 측 부하, 불안정한 연결, 브라우저 확장 프로그램, 또는 너무 길어진 스레드입니다. 재생성하면 대부분 해결되며, 그렇지 않을 때는 한 번의 상태 확인으로 문제가 정말 사용자 측인지 알 수 있습니다.
오류
Streaming interrupted. Waiting for the complete message...
(related wording for the same failure: "Error in message stream",
"Hmm...something seems to have gone wrong." The symptom is the same —
the answer stops partway and never completes.)원인과 해결 방법 한눈에 보기
| 원인 | 해결 방법 |
|---|---|
| OpenAI 측의 부하 또는 장애입니다. Plus와 Pro를 포함한 모든 요금제에 동시에 영향을 미치며, 오류가 몇 분마다 반복될 때 가장 흔한 원인입니다. | status.openai.com을 확인하세요. 장애 중에는 사용자 측에서 무엇을 해도 결과가 달라지지 않으므로 기다리는 것이 해결 방법입니다. |
| 불안정한 연결입니다. Wi-Fi 전환, VPN 또는 회사 프록시, 약한 모바일 신호 등이 원인일 수 있습니다. 스트리밍은 수명이 긴 연결 하나를 열어 두므로 일반적인 페이지 로드는 견디는 상황에서도 끊깁니다. | VPN 또는 프록시를 끄고 다른 연결로 재시도하세요(Wi-Fi에서 모바일로 또는 그 반대로). |
| 브라우저 환경 문제입니다. 페이지에 삽입되는 확장 프로그램, 오래된 캐시 또는 만료된 세션이 원인일 수 있습니다. | 시크릿 창에서 재시도하세요. 그곳에서 작동한다면 원인은 확장 프로그램 또는 캐시입니다. 확장 프로그램을 비활성화하고 사이트 데이터를 삭제한 뒤 다시 로그인하세요. |
| 스레드가 너무 길거나 첨부 파일이 너무 큽니다. 매우 긴 대화는 매 턴마다 다시 전송되므로 응답 시간이 길어지고 더 쉽게 끊깁니다. | 핵심 내용을 새 채팅으로 옮기세요. 큰 파일은 통째로 첨부하지 말고 나누세요. |
90초 동안 할 세 가지
응답을 재생성하고, 페이지를 새로고침한 다음(모바일이라면 앱을 완전히 종료하고 다시 열기), 로그아웃했다가 다시 로그인하세요. 일회성 연결 끊김은 이 세 가지 중 하나로 해결되며 대부분의 경우 일회성입니다. 매번 정확히 같은 지점에서 멈춘다면 일시적인 끊김이 아니라 아래의 구체적인 원인 중 하나라는 신호입니다.
정말 사용자 측 문제인지 판단하세요
다른 해결 방법 목록에서 빠지지만 가장 많은 시간을 절약해 주는 단계입니다. status.openai.com을 여세요. 장애가 표시된다면 컴퓨터의 어떤 설정도 결과를 바꾸지 못하며 기다리는 것만이 해결 방법입니다. 아무것도 표시되지 않는다면 원인은 로컬에 있고 다음 단계에서 이를 격리할 수 있습니다. 설정을 바꾸기 전에 이 작업을 하면 장애 때문에 캐시를 20분 동안 지우는 일을 피할 수 있습니다.
외부에서 내부 방향으로 로컬 원인을 격리하세요
각 계층이 그 위의 모든 가능성을 배제하므로 다음 순서로 진행하세요. (1) VPN과 프록시 끄기; (2) 시크릿 창 열기 — 확장 프로그램과 캐시를 한 번에 제거합니다; (3) 다른 브라우저 또는 장치에서 시도하기; (4) 네트워크 변경하기. 작동하기 시작하는 계층이 원인입니다. 오류가 긴 스레드에서만 나타난다면 네 가지 중 어느 것도 문제가 아닙니다. 핵심 내용을 새 채팅으로 옮기세요.
개발자용: API에서도 동일하게 중단되는 경우
stream: true로 API를 호출하면 이 실패는 finish_reason 없이 종료되는 Server-Sent Events 연결로 나타납니다. HTTP 상태는 200입니다. 헤더가 전송될 때는 정상 작동했으므로 상태 코드만 확인해서는 이를 감지할 수 없습니다. 부하가 있을 때는 429와 529 overloaded_error도 나타납니다. 다음 세 가지가 이를 견딜 수 있게 합니다. (1) finish_reason 없이 종료된 스트림을 완료된 답변이 아니라 재시도 가능한 것으로 처리하기; (2) 429, 500, 529를 지터를 더한 지수 백오프로 재시도하기; (3) 프록시 뒤에 있다면 idle timeout을 확인하고 응답 버퍼링을 끄기 — 버퍼링 프록시는 정상 작동하는 스트림을 긴 정지 상태로 바꿉니다. 먼저 프록시 없이 재현하세요:
# Stream directly, no proxy in the path, and watch where it stops.
curl -N https://api.kunavo.com/v1/chat/completions \
-H "Authorization: Bearer $KUNAVO_API_KEY" \
-H "content-type: application/json" \
-d '{"model":"claude-sonnet-5","stream":true,
"max_tokens":300,
"messages":[{"role":"user","content":"count slowly from 1 to 20"}]}'Kunavo를 통해 호출하는 경우
Kunavo는 AI API 게이트웨이이며, 스트림 중단은 예외가 아니라 Kunavo가 흡수하도록 설계된 상태입니다. 모델에 둘 이상의 업스트림 채널이 구성되어 있고 첫 시도가 실패하면 동일한 호출 내부에서 다른 채널로 요청을 재시도합니다. 따라서 일시적인 업스트림 문제는 오류 대신 약간 느린 성공으로 나타납니다. 실패한 요청에는 요금이 부과되지 않습니다. GPT와 Claude를 하나의 키로 사용할 수 있으므로, 과부하된 모델은 통합을 변경하지 않고 모델 이름을 바꿔 우회할 수 있습니다. 스트리밍 사례의 재시도 및 백오프 패턴은 다음에 정리되어 있습니다 LLM API 스트리밍 오류.
자주 묻는 질문
“streaming interrupted, waiting for the complete message”는 제 잘못인가요?
거의 항상 아닙니다. 이 메시지는 답변을 전달하던 연결이 답변 완료 전에 끊겼다는 뜻입니다. 사용자가 입력한 내용이 원인이 아닙니다. 원인은 OpenAI 측 부하, 불안정한 네트워크, 브라우저 확장 프로그램이나 오래된 세션, 또는 응답이 타임아웃될 만큼 길어진 스레드입니다.
재생성으로 해결되지 않으면 어떻게 하나요?
먼저 status.openai.com을 확인하세요. 장애 중에는 로컬에서 무엇을 해도 도움이 되지 않습니다. 장애가 없다면 다른 네트워크에서 시크릿 창을 여세요. 이 한 번의 테스트로 확장 프로그램, 캐시, 평소 사용하는 연결을 동시에 배제할 수 있습니다. 그곳에서 작동한다면 문제가 다시 발생할 때까지 하나씩 다시 추가하세요. 모든 곳에서 실패하고 긴 대화 하나에서만 발생한다면 핵심 내용을 새 채팅으로 옮기세요.
다른 AI 채팅에서도 발생하나요?
표현은 ChatGPT의 것이지만 스트리밍으로 답변을 전달하는 모든 어시스턴트에서 같은 방식으로 끊길 수 있습니다. Claude는 응답을 완료할 수 없었다는 메시지를 표시합니다. API를 직접 호출하면 finish_reason 없이 끝나는 Server-Sent Events 스트림으로 나타나거나, 부하가 있을 때 529 overloaded_error로 나타납니다.
긴 대화에서 오류가 더 자주 나타나는 이유는 무엇인가요?
매 턴마다 전체 스레드가 다시 전송되므로 긴 대화는 하나의 연결에서 더 긴 생성을 의미합니다. 연결이 오래 열려 있을수록 프록시 타임아웃, 네트워크 전환 또는 업스트림 문제가 연결을 끊을 가능성이 커집니다. 중요한 내용을 요약해 새 채팅을 시작하는 것이 일반적으로 어떤 브라우저 설정 변경보다 효과적입니다.
스트림이 중단되면 요금이 부과되나요?
ChatGPT 구독에는 메시지별 요금이 없으므로 시간 외에 잃는 것은 없습니다. API에서는 제공업체가 실제로 생성한 토큰을 기준으로 청구하므로 일찍 종료된 스트림은 완료된 스트림보다 비용이 적습니다. Kunavo에서는 완전히 실패한 요청에 요금이 전혀 부과되지 않습니다.
관련 가이드
- LLM 스트리밍 오류 — SSE 중단, 멈춘 스트림 및 누락된 사용량
- Claude API 529 overloaded_error — 무엇이며 어떻게 대응할까
- Claude API 요청 타임아웃 및 “streaming is strongly recommended” — 10분 규칙
오류 의미에 대한 자세한 내용은 오류 참조에서 확인할 수 있습니다. 가입 및 인증 가이드를 통해 1분이면 키를 받을 수 있습니다.