openclawの4008は何?原因と確認点を整理

こんにちは、アグリアライブ運営のミドリです。
openclawの4008は、Control UIのWebSocket接続が開いた直後にconnect failedで切れる時に出ている報告が中心です。トークンを入れているのにOffline表示のままだったり、正しいはずの設定でつながらなかったりすると、かなり困りますよね。
調べた範囲では、中国のAlibaba Cloud環境やUbuntuのDocker環境、Node.jsのバージョン違いなどで似た報告がありました。openclawの料金や導入条件を確認する前に、まずゲートウェイ到達性、UI側のトークン、SSH転送、公式Issueの更新状況を切り分けるのがよさそうです。
この記事のポイント
- openclawで4008が出る時の状態
- WebSocket接続が切れる流れ
- トークンやゲートウェイの確認点
- 公式Issueで見るべき情報
openclawの4008とは

この章の主な見出し
- 表示されるエラー内容
- WebSocket切断の流れ
- 認証トークンの確認点
- 中国環境での報告例
- バージョン別の発生例
openclawの4008は、Control UIを開いた時にWebSocket接続が途中で切れ、画面側ではOfflineやconnect failedとして見えるエラーとして報告されています。単にブラウザが開けないというより、接続は始まるのに、利用できる状態まで進まないのがややこしいところです。
ここでは、実際に報告されているエラー内容、WebSocketの切断の流れ、認証トークンまわりの確認点を順番に整理します。中国環境やバージョン別の報告もあるので、あなたの環境と照らし合わせながら見ると、次に確認する場所が絞りやすくなりますよ。
表示されるエラー内容

openclawの4008で目立つのは、Control UI側に「disconnected (4008): connect failed」のような表示が出て、HealthがOnlineにならないケースです。画面は開けているのに、実際にはゲートウェイとUIが正常につながっていない状態ですね。
報告では、ブラウザでダッシュボードにアクセスでき、HTTPとしてはHTMLが返っている例があります。つまり、ページそのものが完全に落ちているわけではない可能性があります。ここを混同すると、ポートやサーバー起動ばかり見てしまい、WebSocketや認証の確認が後回しになりがちです。
特に分かりにくいのは、トークン設定をしているのに、UI側ではtoken missing errorのように見える点です。正しいトークンを使っているつもりでも、UI設定、URL、SSH転送、ゲートウェイ設定のどこかで受け渡しがずれると、似た見え方になるかもしれません。
✅ 主な表示内容の整理
| 見える内容 | 起きている可能性 | まず見る場所 |
|---|---|---|
| disconnected 4008 | WebSocketが途中で切断 | ブラウザコンソール、gatewayログ |
| connect failed | 接続処理の完了前に失敗 | ゲートウェイ到達性、RPC疎通 |
| Offline表示 | UIが正常接続できていない | Control UI設定、トークン |
| token missing error | 認証情報が渡っていない可能性 | URL、UI設定、設定ファイル |
ここで大事なのは、4008を見た時に「トークンが間違い」とだけ決めつけないことです。報告の中には、正しいトークンではgateway token mismatchにならず、別の形で4008になる例もあります。エラー文だけで原因を1つに固定せず、段階ごとに確認するのが安全です。
WebSocket切断の流れ

openclawのControl UIは、画面を表示するだけでなく、WebSocketでゲートウェイとやり取りする前提になっています。WebSocketは、ブラウザとサーバーがつながったままデータをやり取りする仕組みです。普通のページ表示とは別の経路、と考えると分かりやすいかなと思います。
報告されたログでは、WebSocket接続がまったく開始できないのではなく、いったん接続され、hello-okのような応答が出たあとに切断されています。ここがポイントです。接続開始はできているのに、処理の途中で落ちているため、単純なポート閉塞とは少し見方が変わります。
流れとしては、Control UIが接続を試み、ゲートウェイ側でwebchat connectedになり、hello-okやhealthイベントが出た直後、4008のconnect failedで切断される形です。短時間で切れるため、画面上では「一瞬つながった」感覚が分かりにくいかもしれません。
✅ WebSocketで見られる流れ
| 段階 | ログや状態の例 | 読み取り方 |
|---|---|---|
| 接続開始 | connect client=openclaw-control-ui | UIがゲートウェイへ接続開始 |
| 接続成立 | webchat connected | WebSocket自体は開いている |
| 初期応答 | hello-ok | 初期ハンドシェイクは進んでいる |
| 状態通知 | event health | UIへ状態を送ろうとしている |
| 切断 | code=4008 reason=connect failed | 接続維持に失敗している |
ブラウザ側では、トークンの付け方によって1008や4008のように見える報告もあります。1008はポリシー違反や認証まわりで出ることがあるため、こちらもトークンと関係していそうに見えます。ただし、実際の原因は環境やバージョンで変わる可能性があるので、正確な情報は公式サイトをご確認ください。
私なら、まずブラウザコンソールとgatewayのverboseログを並べて見ます。片方だけだと、ページ側の表示とサーバー側の状態がずれて見えることがあります。画面のエラー、ブラウザコンソール、gatewayログの3点セットで確認すると、次の判断がしやすいです。
認証トークンの確認点

openclawの4008では、認証トークンが原因に見えるケースがあります。実際、報告の中には、設定ファイルにgateway auth tokenを入れ、URLやControl UI設定でトークンを指定しているのに、UIがOfflineのままになる例があります。
まず確認したいのは、設定ファイル側のトークンと、Control UI側に入力したトークンが一致しているかです。単純ですが、前後に空白が入っていたり、古いトークンをブラウザ側に保存していたりすると、見た目では気づきにくいです。コピー時の余計なスペース、かなりあります。
次に見るのは、トークンをどこで渡しているかです。URLのクエリ、Control UIの設定画面、設定ファイルのgateway.auth.tokenが混ざると、どれが実際に使われているのか分かりにくくなります。同じトークンを設定しているつもりでも、UI側が別の情報を見ている可能性があります。
✅ トークン確認リスト
| 確認項目 | 見る場所 | 注意点 |
|---|---|---|
| token値の一致 | ~/.openclaw/openclaw.json |
余分な空白や古い値に注意 |
| UI側の保存値 | Control UI settings | 以前の値が残る場合あり |
| URL指定 | ?token=... |
方式が環境で合わない可能性 |
| エラー差分 | wrong token時の表示 | mismatchと4008を分けて見る |
報告では、間違ったトークンを使うとunauthorizedやgateway token mismatchになり、正しいトークンでは4008のconnect failedになるというケースもあります。これは、トークン照合だけで終わる問題ではない可能性を示しています。トークンが正しいかどうかと、UIが最後まで接続できるかは、分けて見た方がいいです。
認証まわりを見直す時は、ブラウザの設定を一度クリアする、別ブラウザで試す、Control UI settingsに入力し直す、といった確認も役立ちます。設定ファイルを直しただけで画面側の保存値が変わるとは限らないので、UI側の状態も忘れずに見てください。
中国環境での報告例

openclawの4008は、中国関連の環境でも報告されています。具体的には、Alibaba Cloud上のAlibaba Linux 2にOpenClawを入れ、Node.js v24.13.0、npm globalでインストールした環境で、WebSocketが4008で切断される内容です。
この報告では、gatewayの設定にport、bind、auth tokenがあり、SSHポートフォワードでローカルのブラウザからアクセスしています。つまり、リモートサーバー上のOpenClawへ、手元のPCからトンネル経由で見に行く構成です。ここでは、サーバー、SSH転送、ブラウザ、トークンの4つが絡みます。
中国環境というとネットワーク制限をすぐ疑いたくなるかもしれません。ただ、報告の範囲では、HTTPリクエストには応答し、gatewayも0.0.0.0:18789で待ち受けているとされています。そのため、単純に「中国だからつながらない」とは言い切れません。
✅ 中国環境で確認したい観点
| 観点 | 確認内容 | 理由 |
|---|---|---|
| クラウド環境 | Alibaba Cloudかどうか | ネットワーク構成が特殊な場合あり |
| OS | Alibaba Linux 2など | 依存関係やNode差分を見るため |
| 転送方式 | SSHポートフォワード | localhostの向き先がずれやすい |
| bind設定 | lanや0.0.0.0 | 待ち受け範囲に関係する |
| ブラウザ側URL | localhostのポート | UIが実際に接続する先を確認 |
この手の環境では、ポート番号だけでなく「どのlocalhostを見ているか」が重要です。サーバー側のlocalhost、SSHトンネル後のローカルPC側localhost、Docker内のlocalhostは、それぞれ別物として考えた方がいいです。ここを取り違えると、設定は正しいのに接続先だけ違う、という状態になります。
また、Alibaba Cloudや中国側ネットワークの仕様は変わる可能性があります。セキュリティグループ、ファイアウォール、プロキシ、DNS、SSHの許可設定などは、環境ごとに違います。最新の仕様や正確な情報は、OpenClaw公式情報と利用中のクラウド公式情報を合わせて確認してください。
バージョン別の発生例

報告されているopenclawの4008には、複数のバージョンが出てきます。代表的にはOpenClaw 2026.2.9と2026.3.8です。どちらもControl UIやWebSocket接続に関係する内容ですが、環境や見え方は少し違います。
2026.2.9の例では、Alibaba Linux 2、Node.js v24.13.0、npm globalの構成で、WebSocket接続がhello-ok後に4008で切れる流れが記録されています。authがスキップされているように見える、という報告もありました。ただし、原因として確定されたわけではないため、断定は避けた方がいいです。
2026.3.8の例では、Ubuntu 22.04のDocker環境、Jetson Nano B01、Node 22.22.1のような構成が出ています。このケースでは、OpenClawのstatusやgateway probeでは到達できているように見える一方、Control UIでは4008のconnect failedが出ています。CLIの疎通確認とUI接続は、同じ結果になるとは限らないという見方が必要です。
✅ バージョン別の報告整理
| OpenClaw版 | 環境例 | 主な症状 |
|---|---|---|
| 2026.2.9 | Alibaba Linux 2 / Node v24.13.0 | hello-ok後に4008で切断 |
| 2026.3.8 | Ubuntu 22.04 Docker / Node 22.22.1 | UIで4008 connect failed |
| 共通点 | Control UIとgateway間 | WebSocket接続が安定しない |
| 注意点 | Issueは更新される可能性あり | 最新の公式情報確認が必要 |
バージョンを見る時は、OpenClaw本体だけでなく、Node.js、インストール方法、OS、Dockerの有無もセットで見てください。同じ4008でも、Node 22系と24系、Docker内外、loopbackとlan bindでは条件が変わります。ここを分けてメモすると、公式Issueやコミュニティ情報と照合しやすくなります。
最後に、Issueの状態にも注意です。報告にはClosed、Closed as not planned、staleなどの状態が見られます。閉じられているから必ず解決済み、とは限りません。あなたの環境で再現する場合は、OpenClawのバージョン、OS、Node、起動コマンド、ログをそろえて確認するのが現実的です。
openclawで4008が出る時の確認

この章の主な見出し
- ゲートウェイの到達性
- UI設定のトークン確認
- SSH転送時の注意点
- Node環境の見直し
- 料金情報より先に見る点
- 公式Issueで見る更新状況
- openclawの4008まとめ
openclawで4008が出た時は、いきなり再インストールするより、ゲートウェイ、UI設定、SSH転送、Node環境を順番に分けて見る方が原因を絞りやすいです。画面上は同じ4008でも、裏側では「そもそも届いていない」「届くけど認証が通らない」「WebSocketだけ切れる」など、状態が違うことがあります。
特にControl UIは、ブラウザでページが開けるだけでは十分ではありません。HTTPでHTMLが返っていても、WebSocketが切れているとOffline表示のままになることがあります。ここでは、あなたが次に確認しやすい順番で整理します。
ゲートウェイの到達性

まず確認したいのは、OpenClawのゲートウェイに到達できているかです。ゲートウェイは、Control UIとOpenClaw本体をつなぐ窓口のようなものです。ここに届いていないと、トークンやUI設定をいくら直しても4008は解消しにくいです。
報告では、openclaw status --deepやopenclaw gateway probeで到達性を確認している例があります。特にgateway probeでConnectやRPCがokになっている場合、少なくともCLI側からは一定の疎通が取れていると見られます。ただし、CLIの確認が通ることと、ブラウザUIが安定してつながることは別です。
✅ ゲートウェイ確認の見方
| 確認項目 | 例 | 見るポイント |
|---|---|---|
| ダッシュボードURL | http://127.0.0.1:18789/ |
ブラウザでページが開くか |
| gateway probe | Connect ok / RPC ok | ゲートウェイ応答の有無 |
| status deep | Gateway reachable | CLI側の疎通状況 |
| WebSocket | 4008で切断 | UI接続の維持状況 |
ここで注意したいのは、reachableと出ていても安心しきらないことです。報告の中には、HealthではGateway reachableに見える一方、Control UIでは4008のconnect failedになるケースがあります。つまり、到達性は第一関門であって、最終確認ではありません。
ポート番号も見直してください。報告では18789が使われていますが、これは環境設定によって変わる可能性があります。gateway.port、起動時の--port、ブラウザで開いているURLのポートがそろっているかを確認すると、見落としが減りますよ。
UI設定のトークン確認

次に見るのは、Control UI側のトークン設定です。OpenClawのゲートウェイに認証トークンを設定している場合、UI側にも正しいトークンが渡っていないと接続が不安定になります。ここは単純そうで、かなりつまずきやすい場所です。
設定ファイルのgateway.auth.tokenと、Control UI settingsに入れた値が一致しているかを確認します。コピーした時に空白が入る、古い値がブラウザに残る、別環境のトークンを使っている、というパターンもあります。私はこういう時、まず一度手入力ではなくコピー元を明確にして確認するのがいいと思います。
✅ トークン確認チェック
| 確認場所 | 確認する内容 | 注意点 |
|---|---|---|
openclaw.json |
gateway.auth.token |
余分な空白や古い値 |
| Control UI settings | 入力済みトークン | ブラウザ保存値の残り |
| URL指定 | ?token=...の有無 |
使う方式を混ぜない |
| エラー表示 | mismatchか4008か | エラーの種類を分ける |
報告では、間違ったトークンだとgateway token mismatchになり、正しいトークンでは4008になるという例もあります。この場合、トークン不一致だけが原因とは言い切れません。トークンが正しいかどうかと、接続処理が最後まで進むかは分けて確認した方がいいです。
UI側の設定を直した後は、ブラウザの再読み込みだけでなく、別ブラウザやシークレットウィンドウで試すのも手です。保存済み設定やキャッシュが影響していると、直したつもりでも同じ表示が続くことがあります。トークンは認証情報なので、スクリーンショットやログ共有時には伏せてください。
SSH転送時の注意点

リモートサーバー上のOpenClawを手元のブラウザで見る場合、SSHポートフォワードが絡むことがあります。報告でも、サーバー側の18789番をローカルの8888番へ転送し、http://localhost:8888で開く形が出ています。
ここでややこしいのは、localhostの意味です。手元PCのlocalhost、リモートサーバーのlocalhost、Dockerコンテナ内のlocalhostは同じではありません。どの場所のlocalhostを指しているかを意識しないと、ページは開くのにWebSocketだけ別の向き先を見ている、ということが起きます。
✅ SSH転送で見るポイント
| 項目 | 確認内容 | よくあるズレ |
|---|---|---|
| ローカル側ポート | 例: 8888 | すでに別アプリが使用 |
| リモート側ポート | 例: 18789 | gateway設定と不一致 |
| 転送先host | localhostか127.0.0.1 |
サーバー側の向き先違い |
| ブラウザURL | http://localhost:8888 |
直アクセスと混同 |
SSH転送で見ている時は、サーバー側で直接127.0.0.1:18789にアクセスした結果と、手元PCからlocalhost:8888で見た結果を分けて考えると整理しやすいです。片方だけ成功しているなら、OpenClaw本体ではなく転送経路にヒントがあるかもしれません。
また、Docker環境ではさらに一段増えます。コンテナ内のOpenClaw、ホストOS、SSH転送、手元ブラウザがそれぞれ別の層になるため、ポート公開やbind設定の確認が必要です。bindがloopbackなのかlanなのかも、UIからの接続可否に関係する可能性があります。
Node環境の見直し

openclawの4008報告では、Node.jsのバージョンも環境情報として出ています。たとえば、Node.js v24.13.0のAlibaba Linux 2環境や、Node 22.22.1のUbuntu 22.04 Docker環境です。ただし、これだけでNodeが原因と断定はできません。
Node環境を見る時は、OpenClawのバージョン、OS、インストール方法もセットで確認してください。npm globalで入れているのか、pnpm経由なのか、Docker内なのかで、実際に使われる実行環境が変わることがあります。バージョン番号だけを見て判断しないのが大事です。
✅ Nodeまわりの整理
| 確認項目 | 例 | メモ |
|---|---|---|
| Node.js | 22系 / 24系 | 報告環境に差あり |
| OpenClaw | 2026.2.9 / 2026.3.8 | 発生例の版を確認 |
| OS | Alibaba Linux / Ubuntu | 依存関係が変わる |
| 実行場所 | Docker / ホストOS | localhostの扱いも変わる |
| インストール | npm globalなど | 更新方法が違う |
更新やダウングレードを試す時は、いきなり本番環境で大きく変えるより、現在のバージョンと設定をメモしてから進めるのが安全です。特にOpenClaw、Node、npmの組み合わせを同時に変えると、どれが効いたのか分からなくなります。
公式Issueの状態やリリース内容は変わる可能性があります。Nodeの対応範囲、推奨バージョン、既知の不具合は、正確な情報は公式サイトをご確認ください。環境変更に不安がある場合は、作業前に設定ファイルとログを保存しておくと戻しやすいですよ。
料金情報より先に見る点

openclawを使う前に料金や導入条件が気になるのは自然です。ただ、4008でControl UIに入れない状態だと、料金比較や追加設定の前に、まず接続の土台を整えた方が判断しやすくなります。画面がOfflineのままだと、正常に使えるかどうかの確認もできません。
調べた範囲では、openclaw models statusでプロバイダ認証が未設定と出ている例もありました。たとえばAnthropicなどのモデル利用には、別途認証や契約が関係する場合があります。ただし、モデル認証の不足と4008のWebSocket切断は、同じ原因とは限りません。UI接続の問題とモデル利用の問題を混ぜないことが大切です。
✅ 料金確認の前に見る項目
| 先に見る項目 | 理由 | 判断の目安 |
|---|---|---|
| UIがOnlineになるか | 操作画面に入れるか確認 | 4008が消えるか |
| gatewayが届くか | 接続の土台 | probeやログを見る |
| トークンが一致するか | 認証の基本 | mismatchと4008を分ける |
| モデル認証 | 利用機能に影響 | models statusを確認 |
| 公式料金 | 変動しやすい | 公式ページで確認 |
料金はプラン、モデル、利用量、提供元の変更で変わる可能性があります。この記事内で金額を固定して判断するより、接続確認ができた後に公式情報で最新条件を見る方が安全です。正確な情報は公式サイトをご確認ください。
順番としては、まず4008を切り分け、次にモデル認証や利用したい機能を確認し、その後で料金や運用コストを見るのが現実的です。園芸でも土台が悪いと肥料の比較に進みにくいのと同じで、OpenClawもまず接続の土台から見るのが近道かなと思います。
公式Issueで見る更新状況

openclawの4008に近い内容は、GitHubのIssueでも複数報告されています。たとえば、WebSocket connection fails with code 4008 after successful handshakeという内容や、Control UIがdisconnected 4008 connect failedになる報告があります。
Issueを見る時は、タイトルだけで判断せず、バージョン、OS、Node、インストール方法、ログを確認してください。あなたの環境と近い条件の報告ほど参考になります。逆に、症状の文言が似ていても、Dockerの有無やSSH転送の有無が違うと、原因が変わることがあります。
✅ Issueで確認する項目
| 見る場所 | 重要な理由 |
|---|---|
| OpenClaw version | 修正済みか未修正かを見るため |
| Operating system | Linux環境差を確認するため |
| Install method | npmやDockerの違いを見るため |
| Logs | 4008までの流れを見るため |
| Labels | bug、regression、staleなどの状態を見るため |
| Status | Closedでも解決済みとは限らないため |
Issueの状態には、Closed、Closed as not planned、stale、regressionなどがあります。Closedだからあなたの環境で直っている、とは限りません。特にstaleは、活動が止まっているだけで、同じ症状が再現しないという意味ではない場合があります。
確認する時は、あなたの環境情報をメモしてから照合すると読みやすいです。OpenClawの版、OS、Node、起動コマンド、gateway.bind、SSH転送の有無、ブラウザコンソールの表示をそろえると、公式Issueの内容と比べやすくなります。
openclawの4008まとめ

openclawの4008は、Control UIとゲートウェイの接続が途中で切れる時に見られるエラーとして整理できます。ポイントは、ブラウザで画面が開くかどうかだけではなく、WebSocketが維持されているかを見ることです。
特に、ゲートウェイ到達性、認証トークン、SSH転送、Node環境は切り分けの中心になります。どれか1つを原因と決めつけるより、順番に確認した方が無駄な再設定を減らせます。
✅ 確認順のまとめ
- ゲートウェイが起動し、対象ポートに到達できるか確認する
- Control UIと設定ファイルのトークンが一致しているか見る
- SSH転送やDocker環境でlocalhostの向き先がずれていないか確認する
- Node.js、OpenClaw、OS、インストール方法をセットで記録する
- 料金やモデル利用条件は、UI接続を確認してから公式情報で見る
- GitHub Issueでは、症状だけでなく環境条件とログを照合する
4008が出ると、まずトークンエラーに見えがちです。ただ、報告例では正しいトークンでもconnect failedになるケースがあるため、認証だけでなく接続維持の流れも見てください。
最後に、OpenClawはバージョンや環境によって挙動が変わる可能性があります。あなたの環境で再現する場合は、ログを残しながら一つずつ確認し、最新の仕様や修正状況は公式サイトや公式Issueで確認するのが安心です。
記事作成にあたり参考にさせて頂いたサイト- Reddit – Please wait for verification
- [Bug]: WebSocket connection fails with code 4008 after successful handshake (auth seems skipped) · Issue #30458 · opencl
- [Bug]: Can’t use control UI, it said disconnected (4008): connect failed | openclaw version is 2026.3.8 · Issue #40977 ·
- Reddit – Please wait for verification
- blink.newの記事
- OpenClaw Community | Hello everyone! I’m struggling to access the OpenClaw Dashboard on my Mac M1 | Facebook
- answeroverflow.comの記事
- [Bug] :WebSocket connection fails with code 4008 after successful handshake (auth seems skipped) · Issue #30469 · opencl
- Reddit – Please wait for verification
- youtube.comの記事
各サイト運営者様へ
有益な情報をご公開いただき、誠にありがとうございます。
感謝の意を込め、このリンクはSEO効果がある形で設置させていただいております。
※リンクには nofollow 属性を付与しておりませんので、一定のSEO効果が見込まれるなど、サイト運営者様にとってもメリットとなれば幸いです。
当サイトは、インターネット上に散在する有益な情報を収集し、要約・編集してわかりやすくお届けすることを目的としたメディアです。
引用や参照の方法に不備、あるいはご不快に感じられる点がございましたら、お問い合わせフォームよりご連絡ください。
今後とも、どうぞよろしくお願いいたします。
各サイト運営者様へ
有益な情報をご公開いただき、誠にありがとうございます。
感謝の意を込め、このリンクはSEO効果がある形で設置させていただいております。
※リンクには nofollow 属性を付与しておりませんので、一定のSEO効果が見込まれるなど、サイト運営者様にとってもメリットとなれば幸いです。
当サイトは、インターネット上に散在する有益な情報を収集し、要約・編集してわかりやすくお届けすることを目的としたメディアです。
引用や参照の方法に不備、あるいはご不快に感じられる点がございましたら、お問い合わせフォームよりご連絡ください。
今後とも、どうぞよろしくお願いいたします。
当サイトでは、インターネット上に散らばるさまざまな情報を収集し、AIを活用しながら要約・編集を行い、独自の切り口で見解を交えながらわかりやすい形でお届けしています。
情報の整理・編集にあたっては、読者やオリジナル記事の筆者へご迷惑をおかけしないよう、細心の注意を払って運営しておりますが、万が一、掲載内容に問題がある場合や修正・削除のご要望がございましたら、どうぞお気軽にお問い合わせください。 迅速に対応をさせていただきます。
その際には、該当記事の URLやタイトルをあわせてお知らせいただけますと、より速やかに対応 することができますのでそちらもご協力いただけますと大変幸いでございます。
今後とも当サイトをよろしくお願いいたします。
