ChatGPTで “Error in message stream” が出た時は、回答のストリームが最後まで届く前に止まっています。最初にすることは、ページ更新でもキャッシュ削除でもありません。表示されている途中の回答と元のプロンプトを保存し、OpenAI Statusを確認します。Statusで説明できない場合だけ、新しいチャット、ブラウザやアプリ、ネットワーク、長い依頼、添付ファイル、API連携の順に分けて確認します。
このエラーは、原因を1つに決めつけると遠回りになります。OpenAI側の一時的な障害かもしれません。古い会話だけが壊れているかもしれません。ブラウザ拡張、会社のネットワーク、VPN、長すぎる依頼、アップロードしたファイル、または自分のアプリのstream処理が原因かもしれません。大事なのは、1回の操作で1つの仮説だけを確認することです。
| 見えている状況 | 最初にすること | 確認方法 | 止める基準 |
|---|---|---|---|
| OpenAI StatusにChatGPT関連の事象がある | 途中の回答を保存し、回復後に新規チャットで試す | Status改善後に短い質問が完了する | 事象中にローカル設定を大きく変えない |
| 同じ会話で何度も止まる | プロンプトと途中回答を保存し、新しいチャットで続きから頼む | 新しいチャットが完了する、または別の症状を出す | 古い会話でregenerateを連打しない |
| 無シークレット、別ブラウザ、スマホアプリでは動く | 現在のブラウザ設定やアプリ状態だけを見る | 同じ短い質問がクリーンな環境で完了する | すべての設定を一括で消さない |
| 別ネットワークでは結果が変わる | VPN、proxy、firewall、TLS検査、idle timeoutを見る | hotspotなど別経路で同じ回答が完了する | ネットワーク担当に渡す証拠を集める |
| 長い依頼、長い文脈、添付付きで落ちる | 添付なしの短い質問を試し、元の依頼を分割する | 短い質問は成功し、元の依頼だけ失敗する | 全体障害として扱わない |
| 自作アプリやAPIのstreamが落ちる | error class、request ID、timeout、retry、ログを見る | ChatGPTのWeb画面とAPIの結果を分ける | Webの更新やキャッシュ削除でAPIを直そうとしない |
Statusを見ると、待つべきか手元を直すべきかが決まる
OpenAI Statusは、最初の分岐点です。2026年5月16日にライブ確認した時点では、Status APIは All Systems Operational を返しました。ただし、それだけで個別の会話、アカウント、モデル、アップロード経路、アプリ連携が正常だと断定はできません。Statusは日時つきの状態信号であり、実際の読者はその時点の最新Statusを確認する必要があります。
関連するChatGPT、モデル、アップロード、画像、APIの事象が出ているなら、まず途中回答を保存し、回復を待ってから新規チャットで再確認します。サービス側の問題が見えている時に、同じ古い会話で再生成を繰り返しても、ブラウザやプロンプトの原因は証明できません。むしろ途中の回答を失ったり、何を試したか分からなくなったりします。

Statusが緑でも、個別の会話、アカウント、ワークスペース、モデル、アップロード経路、またはアプリ連携が正常だと断定はできません。緑のStatusは「次はローカル分岐を確認する」という合図です。新しいチャット、短い質問、別ブラウザ、別ネットワーク、添付なしの依頼で、どこから失敗するかを見ます。ここで分かるのは「待つ理由が弱い」ということだけで、手元の環境が壊れていると決めつける材料ではありません。
新しいチャットで古い会話だけの問題かを確認する
同じ会話が何度も止まる場合、まず内容を救います。元のプロンプト、最後まで生成された段落、途中で使えるコードや表をコピーします。新しいチャットを開き、「ここから続けて。前の部分は書き直さないでください」と短く依頼します。最初の確認で、元の長い文脈や添付ファイルを全部戻さないでください。
新しいチャットが完了するなら、古い会話の状態が主要な原因です。長い会話には、過去の添付、tool状態、長い文脈、途中で失敗した生成、期限切れに近いセッションなどが重なっています。そこで復旧できるなら、新しいチャットで作業を続け、必要な文脈だけを少しずつ戻します。
新しいチャットでも同じ表示で止まるなら、証拠としてはより強くなります。古い会話固有ではなく、ブラウザ、アプリ、ネットワーク、リクエストの複雑さ、添付、アカウント、またはサービス側の状態を疑う段階です。新しいチャットで短い質問も失敗するかを確認すると、次の分岐が決まります。
ブラウザやアプリを触る前に短い質問で確認する
ブラウザのキャッシュ削除は、便利ですが粗い操作です。いきなり実行すると、原因も証拠も消えることがあります。まず新しいチャットで、添付なしの短い質問を送ります。
textストリーミング回答が最後まで届かない理由を三文で説明してください。
この質問が完了するなら、基本のstreamは動いています。元の依頼が長すぎる、古い会話が壊れている、ファイルが関係している、または出力が大きすぎる可能性が高いです。ブラウザを大きく掃除する前に、元のタスクを小さく分割してください。
短い質問も失敗するなら、無シークレットウィンドウ、別ブラウザ、またはスマホアプリで同じ短い質問を試します。無シークレットで成功するなら、拡張機能、script blocker、privacy tool、cached site data、VPN/proxy、または通常プロファイルのログイン状態が候補です。デスクトップアプリだけ失敗してWebは動くならアプリ分岐です。Webだけ失敗してスマホアプリが動くなら、まずスマホで作業を救ってからWebを直します。
ネットワークとWebSocketは別の分岐として扱う
ChatGPTの画面が開くことと、長い回答が最後まで流れることは同じではありません。通常のページ表示は成功しても、長く続くストリーム、secure WebSocket、proxy、firewall、TLS inspection、idle timeoutで切れることがあります。会社や学校のネットワークでは、セキュリティ製品が長い接続だけを途中で切る場合もあります。

証拠として強いのは別ネットワークです。同じアカウント、同じブラウザ、同じ短い質問が、会社のWi-Fiでは止まり、スマホのhotspotでは完了するなら、プロンプトよりネットワーク経路を疑います。VPNは解決にも原因にもなります。VPNを切った状態、入れた状態、別経路での結果を分けて記録してください。
企業ネットワークで毎回同じ時間帯や同じ秒数付近で回答が止まる場合は、ITに渡す情報を作ります。時刻、ブラウザ、OS、エラー表示、console error、どのOpenAI表面で起きたか、別ネットワークで完了したかを記録します。一般的な「ネットワークが悪い」より、同じ短いpromptが別経路で完了した証拠のほうが役に立ちます。
長い依頼は、復旧できる単位に分割する
長いプロンプト、大量の貼り付け、複数ファイル、コード全体の修正、長文の生成は、streamエラーの診断を難しくします。1つの依頼に、会話状態、生成時間、出力量、添付、文脈長、ネットワークの長時間接続がすべて入るためです。短い質問が成功し、元の依頼だけ失敗するなら、全体障害として扱うのをやめます。
依頼を小さくします。まずアウトラインだけを頼み、次に1つの節を書かせます。コードなら1ファイル、1関数、1つのエラーに絞ります。文章なら最後の完成済み段落を貼り、「ここから続けて。前半は再生成しないで」と書きます。分析なら、最初に入力の構造だけを確認させ、次に結論を依頼します。
停止ルールも必要です。短い依頼が成功して長い依頼だけ失敗する場合、更新を続けるのではなく、長さ、添付、出力量、旧会話、またはネットワークの長時間接続を1つずつ減らします。どの変更で成功したかが分かれば、次回から同じタスクを分割して進められます。
添付、画像、ファイルは普通の会話と分ける
ファイルや画像があると、同じ “Error in message stream” の見え方でも原因が変わります。ファイルサイズ、形式、アップロード上限、storage、workspace policy、画像生成や編集の表面、またはファイル処理の一時的な状態が関係することがあります。普通のテキスト会話が止まっているのか、添付経路が止まっているのかを分ける必要があります。
最初に、添付なしの短い質問を送ります。それが完了するなら、ファイルを外して同じ意味の依頼を文章だけで試します。次に、既知の小さなファイルや画像を新しいチャットに1つだけ添付します。添付なしは成功し、添付ありだけ失敗するなら、ファイルの種類、サイズ、ワークスペース設定、アップロード回数、storage、cap、失敗したアップロードの扱いを確認します。

画像生成や画像編集で失敗しているなら、一般的なmessage streamの復旧だけでは足りません。画像生成の入口が問題なら ChatGPT画像生成の復旧手順 を見ます。画像そのものをChatGPTに渡せない場合は ChatGPT画像アップロードの切り分け を使います。先に添付分岐だと確認しておくと、不要なブラウザ掃除を避けられます。
APIや自作アプリのstreamは別の証拠を見る
開発者のstreamエラーは、ChatGPTのWeb画面とは別に考えます。必要なのは、error class、request ID、endpoint、model、client timeout、retry policy、proxy buffering、SSE handling、server logs、最小再現requestです。Web画面での更新や無シークレット確認は比較材料にはなりますが、APIConnectionError、APITimeoutError、RateLimitError、BadRequestErrorを直接直す操作ではありません。
まず比較します。同じアカウントでChatGPT Webは短い回答を完了できるか。自分のアプリは同じ程度の短いstream requestで失敗するか。Webは動き、アプリだけ落ちるなら、統合側のtimeout、proxy、server buffering、retry、payloadを見ます。WebとAPIの両方が関連するStatus事象中に落ちるなら、ログを保存して回復を待つ判断も必要です。
長いstreamだけ落ちる場合、client timeout、reverse proxyのbuffering、serverless functionの実行時間、SSEのflush、接続中断時のretry、ユーザーキャンセル処理を確認します。短いrequestと長いrequestを分けたログがないと、サービス側の問題か実装側の問題かを判断できません。
最後は推測ではなく証拠をまとめる
Status、新規チャット、ブラウザ、アプリ、別ネットワーク、短い依頼、添付、APIを確認しても分からない場合は、次の試行より証拠のほうが価値があります。時刻とタイムゾーン、ChatGPTの表面、ブラウザまたはアプリ、モデルやモード、Statusの状態、conversation URL、スクリーンショット、どの分岐が成功または失敗したか、添付の有無をまとめます。
Webで継続的に失敗する場合は、console errorやHARが役に立つことがあります。ただし、cookie、token、個人情報、顧客資料、社内スクリーンショット、秘密のpromptを不用意に送らないでください。開発者はrequest ID、endpoint、model、error class、client library、timeout、retry設定、最小再現requestを追加します。
再発に備えるなら、長い回答は節ごとに依頼し、重要な作業はチャット外にも保存し、ファイル作業は小さなサンプルで確認し、会社ネットワークでは動く経路を記録します。次に同じ表示が出た時、最初から原因を探し直す必要がなくなります。
よくある質問
“Error in message stream” は何を意味しますか?
ChatGPTの回答が最後までストリーミングされなかったという意味です。安定した公式エラーコードではなく、画面上の症状です。原因はStatus、古い会話、ブラウザ、アプリ、ネットワーク、長い依頼、添付、API連携などに分かれます。
すぐにページ更新してよいですか?
先に途中の回答とプロンプトを保存してください。保存後なら更新は試せますが、最初の操作として更新すると、唯一残っている途中回答を失うことがあります。
ChatGPT側の障害かどうかはどう見ますか?
OpenAI Statusで、ChatGPT、モデル、upload、images、APIに関連する事象を確認します。関連事象があるなら待つ判断が合理的です。Statusが正常なら、新しいチャット、短い質問、別ブラウザ、別ネットワークへ進みます。
無シークレットウィンドウで直るのはなぜですか?
通常プロファイルの拡張機能、cached site data、script blocker、privacy tool、VPN/proxyの影響を減らせるためです。そこで成功するなら、通常ブラウザ側の状態を優先して見ます。
長いプロンプトが原因になることはありますか?
あります。短い添付なしの質問が成功し、長い依頼だけ失敗するなら、タスクを分割し、途中回答から続け、添付や出力量を減らします。
画像やファイルでも同じ手順ですか?
最初は同じく添付なしの短い質問で確認します。テキストは成功し、ファイルや画像だけ失敗するなら、アップロード、画像入力、画像生成、ワークスペース設定、上限の分岐に移ります。
API開発者は何を確認すべきですか?
error class、request ID、endpoint、model、timeout、retry、proxy、SSE handling、server logsを確認します。ChatGPT Webの動作は比較には使えますが、API streamの修正はログと最小再現requestから始めます。
