/loginコマンド実行後の400エラー修正(thinking blocks含む場合)
原文(日本語に翻訳)
会話にthinking blocksが含まれている状態で /login コマンドを実行した後に発生する400エラーを修正しました。
原文(英語)
Fixed 400 errors that could occur after running /login when the conversation contained thinking blocks
概要
Claude CodeでExtended Thinkingが有効な会話において、/login コマンド(Anthropic APIへのログイン)を実行すると API 400 Bad Request エラーが発生する問題が修正されました。この問題は、thinking blocks を含む会話履歴がAPI に正しくシリアライズされていなかったことが原因でした。
基本的な使い方
/login コマンドの正常な使用
# Extended Thinking有効のセッション
claude
> "複雑な問題を解決して"
# (内部的にthinking blocksが生成される)
# Anthropic APIにログイン
/login
# 以前: API 400 Bad Request エラー
# 現在: 正常にログイン完了APIキーの更新
# 既存のセッションでAPIキーを変更したい場合
claude --continue
# セッション内でログインし直す
/login
# 新しいAPIキーを入力
# thinking blocksがあっても正常に動作実践例
Extended Thinking セッションでの再認証
長時間のセッションで認証情報を更新:
# 午前: セッション開始(Extended Thinking有効)
claude --thinking
> "この大規模なリファクタリングを計画して"
# Claudeは内部的に思考プロセスをthinking blocksに記録
# 午後: APIキーの期限切れに気づく
/login
# 以前の問題:
# Error: 400 Bad Request
# "thinking blocks in assistant message cannot be modified"
# 修正後:
# 正常にログインし、セッションが継続チーム間でのAPIキー切り替え
異なるAPIキー(組織)間での切り替え:
# 個人アカウントで作業開始
claude
> "プロトタイプを作成して"
# thinking blocks付きで応答
# チームアカウントに切り替え
/login
# チームのAPIキーを入力
# エラーなく切り替え完了
> "本番環境用の実装を進めて"
# 同じセッションで継続作業デバッグセッションでの認証問題解決
# デバッグモードで作業中
claude --thinking
> "このバグの原因を分析して"
# 詳細な思考プロセスが記録される
# 認証エラーが発生
# Error: 401 Unauthorized
/login
# 正しいAPIキーで再認証
# 以前: thinking blocksが原因で400エラー
# 現在: 正常に認証され、作業継続セッション移行時の問題回避
# ローカルセッションをリモート(claude.ai)に移行
claude
> "複雑なアルゴリズムを実装して"
# thinking blocks生成
# セッションをクラウドに移行
/teleport
# 内部的に /login が実行される
# 以前: thinking blocksがあると失敗
# 現在: 正常に移行完了注意点
Thinking Blocksとは: Extended Thinking機能により、Claudeの内部思考プロセスがthinking blocksとして記録されます。
--thinkingフラグで有効化できます。400エラーの原因: API仕様では、thinking blocksを含むメッセージは変更できません。以前は
/login実行時に会話履歴を再送信する際、このルールに違反していました。修正内容: thinking blocksを適切に処理し、API仕様に準拠した形で会話履歴を送信するようになりました。
影響範囲: この修正は以下のコマンドにも適用されます:
/login- API再認証/teleport- セッション移行(内部的に /login を使用)- API プロバイダー切り替え時
Extended Thinkingの有効化:
bash# セッション開始時 claude --thinking # または設定ファイルで常に有効化 { "extendedThinking": true }関連する修正: v2.1.30では、他のthinking blocks関連の問題も修正されています:
- Phantom "(no content)" blocks
- Context command errors with thinking enabled
トラブルシューティング:
/loginでまだ問題が発生する場合:bash# デバッグモードで詳細を確認 /debug > "ログインエラーの原因を調査して"