当サイトの一部ページには、アフィリエイト・アドセンス・アソシエイト・プロモーション広告を掲載しています。

Amazonのアソシエイトとして、Security Akademeiaは適格販売により収入を得ています。

広告配信等の詳細については、プライバシーポリシーページに掲載しています。

消費者庁が、2023年10月1日から施行する景品表示法の規制対象(通称:ステマ規制)にならないよう、配慮して記事を作成しています。もし問題の表現がありましたら、問い合わせページよりご連絡ください。

参考:令和5年10月1日からステルスマーケティングは景品表示法違反となります。 | 消費者庁

Claude Code+WSL2だと”API Error (Request timed out.)”が頻発してしまう

はじめに

いつもブログをご覧いただきありがとうございます。

ミジンコに転生したIPUSIRONです😀

IPUSIRONのプロフィールを見る

環境

  • ホストOSはWindows10/11
  • VSCode最新版(Claude Code拡張導入済)
  • WSL2 + Ubuntu 22.04

トラブルの顛末

Windowsマシンにて、Claude Code+WSL2だと “API Error (Request timed out.)" が頻発する現象で困っていました。

この問題は、VSCodeの拡張ツールであるClaude Codeでも同様の現象が発生しており、改善されていませんでした。

さらには、テザリングして別ネットワークからインターネットにアクセスしても改善しませんでした。

たまにうまくいくこともありますが、またAPI Errorが発生し始めるのです。

APIモードだと接続しやすいが、サブスクモードだとこの問題が発生します。

作業に支障が出るうえ、イライラが募ってしまいます。

問題の原因

VSCode拡張のClaude Codeは、裏でClaude CLIを実行しているだけです。

[VSCode拡張] → [WSL2] → [Claude CLI] → [Anthropic API]

このため、WSL上での名前解決やネットワークが不安定な環境では、VSCode拡張のClaude Codeでタイムアウトが発生する可能性があります。

よって、今回の問題の原因はWSL2のネットワーク周辺にあると考えられます。

Claude CLIをDockerで動かす【解決策】

そこで、WSL2の使用をやめて、Claude Codeが公式に対応しているLinux環境をDockerで構築するアプローチに切り替えました。

1:Claude CLIはNode.jsベースなので、以下の構成でDockerイメージを作成します。

FROM ubuntu:22.04

RUN apt update && apt install -y curl gnupg ca-certificates

# WSL競合対策:libnode-dev削除
RUN apt remove -y libnode-dev || true

# Node.js 20.x(Claude対応バージョン)
RUN curl -fsSL https://deb.nodesource.com/setup_20.x | bash - && \
    apt update && \
    apt install -y nodejs

# Claude CLIインストール
RUN npm install -g @anthropic-ai/claude-code

WORKDIR /workspace
CMD [ "bash" ]

2:PowerShellで以下を実行してビルドする

docker build -t claude-code-cli .

3:PowerShellでソースコードが展開されているディレクトリに移動する

そして、以下のコマンドを実行してコンテナーを起動します。

docker run -it --rm -v ${PWD}:/workspace claude-code-cli

4:コンテナーが起動したら、以下のコマンドを実行して対話的にClaude Codeを実行する

claude chat

これで"API Error (Request timed out.)"が出ずに作業できるようになりました。