何これ?
Claude Codeをstream-jsonフォーマットで使っていたら、突然こんなエラーが出た。
API Error: 400 due to tool use concurrency issues
何これ?
エラーメッセージを信じてみた
「tool use concurrency issues」と言っているので、素直にツールの実行を全拒否してみた。
ダメだった。
GitHubのissue調査
調べてみると、GitHubに同じエラーのissueがいくつかあった。
しかも未解決。
「tool use concurrency」で検索すると出てくるが明確な解決策がない。
これは長期戦になりそうだな、と覚悟した。
ふと思い出した過去の設定
issueを漁りながら、ふと自分の環境を見直していた。
DISABLE_MICROCOMPACT=true
そもそもこれ今必要なのかな?
一時期、Claude Codeの性能が劣化して使いづらかった時期があった。
その頃「この設定で前の動作に戻るよ」という情報を見かけて、試しに入れてみたやつだ。
当時は確かに改善した気がして、そのまま放置していた。
設定したこと自体、完全に忘れていた。
消したら直った
試しに消してみる。
直った。
DISABLE_MICROCOMPACTは、Claude Codeが細かくcompactする動作を無効化する設定の認識。なぜstream-jsonと関係するのかは?不具合なのかな?
ClaudeCodeの使い勝手も変わらない。
教訓
- エラーメッセージが役に立つとは限らない
- 過去の自分は、未来の自分にとって他人である
「試しに入れてみた設定」は、時間が経つと「なぜか入っている謎の設定」に変わる。
そしてある日突然、予想外のタイミングで牙を剥く。
今回の件で改めて思ったこと。
- 実験的な設定を入れたら、どこかにメモを残す
- 問題が起きたら、まず自分の環境を疑う
- 「何も変えてないのに壊れた」は、過去の自分が何か変えている
まとめ
Claude Codeでstream-jsonフォーマット使用時にAPI Error: 400 due to tool use concurrency issuesが出たら、自分の設定を疑って、一旦設定を空にして確認すると良さそう。
そして、過去に色々試した設定はちゃんと見直しましょう。
未来の自分は、今日の「とりあえず試してみた」を覚えていません。