PaPoo
cover

Error: Streamable HTTP error: Error POSTing to endpoint: <html> が出るときに見えていたもの

この症状は、少なくとも今回渡された issue 群では、Claude Code が POST 先の endpoint に対して返ってきた HTML の 502 Bad Gateway をそのままエラーとして見せている場面でした。報告はどちらも同じ文字列を含んでいます。
該当 issue は #87221#86687 です。

まず切り分けたいのは、あなたの画面に出ているのが「Claude Code 側の操作ミス」ではなく、POST の先で 502 Bad Gateway が返っているケースかどうかです。今回の報告では、エラーメッセージの中に次の HTML が含まれていました。

<html>
<head><title>502 Bad Gateway</title></head>
<body>
<center><h1>502 Bad Gateway</h1></center>
<hr><center>openresty</center>
<p><em>

この時点で分かるのは、少なくとも画面上は Claude Code が受け取った応答をそのまま表示している、ということです。どの層が 502 を返したのかまでは、この材料だけでは断定できません。openresty の文字はありますが、これだけで原因を特定するのは無理です。

報告内容のうち、症状の出方として手がかりになるのは #87221 のほうです。そこで挙げられていた再現可能な要素は、subagent_type: "fork" の分岐です。Issue タイトルも「sub-agent fork context inheritance causes excessive token consumption and unresumable transcripts」で、サブエージェントの fork に関係する挙動が中心でした。
一方で #86687 は、Opus 5 (1M context) の safeguards がメッセージをフラグした、という別の文脈の報告です。そこでも結果として同じ 502 Bad Gateway を伴う Streamable HTTP error が出ています。つまり、見えているエラー文字列は同じでも、トリガーは一つとは限りません。

実際に今回の issue 群で確認できたのは、少なくとも次の2点です。ひとつは、エラー文字列が Error: Streamable HTTP error: Error POSTing to endpoint: <html> で始まり、本文に 502 Bad Gateway が含まれること。もうひとつは、同じ症状が別の issue でも繰り返し報告され、どちらも closed になっていることです。
ただし、閉じられたことと、手元で同じ症状が今も起きないことは別です。現時点では、根本原因や恒久対処までは、この材料からは分かりません。

手元で確認できる環境情報は次のとおりです。ここから言えるのは、少なくとも検証は Linux 上で行われ、Python は 3.8.13 だった、ということまでです。

[env_summary]
OS          : Linux 3.10.0-1160.76.1.el7.x86_64 (x86_64)
Python      : 3.8.13
検証日時    : 2026-09-15T08:51:11+09:00

もしあなたの環境で同じ文言が出るなら、まずは「502 を返している先がある」ことを前提に、どの操作の直後に出るかを見たほうが早いです。今回の issue 群で具体性があったのは、fork 系のサブエージェント操作と、safeguards によるフラグの直後でした。逆に言うと、それ以外の条件ではこの材料だけでは判断できません。

解決策として確実に書けるのはここまでです。少なくとも、今回の公開 issue だけでは「これを設定すれば直る」と裏付けられた手順は見当たりませんでした。なので、同じ症状が出たときは、どの操作直後に発生したかを控え、同じ文字列で #87221#86687 を照合するのが実用的です。


検証環境

OS          : Linux 3.10.0-1160.76.1.el7.x86_64 (x86_64)
Python      : 3.8.13
検証日時    : 2026-09-15T08:51:11+09:00

参照した Issue(anthropics/claude-code): #87221, #86687

同じ著者の記事