Claude Media
「Usage Policy refusal」とは — Claude Codeの拒否表示の意味と対処

「Usage Policy refusal」とは — Claude Codeの拒否表示の意味と対処

Claude Codeが「Usage Policy refusal」で応答を拒否したときの意味と、/rewindや/clearでの再開手順、非対話モードでの対処をまとめます。

Claude Codeでプロンプトを送ると、会話がUsage Policyのチェックに引っかかり、応答そのものが拒否されることがあります。通信障害やレート制限とは別種のエラーです。同じ会話を続けると、送り直しても同じ拒否になりやすくなります。

抜け道は2つあります。拒否が起きたターンより前まで巻き戻すか、新しい会話を始めるかです。どちらを選ぶかは、原因のターンを特定できるかで決まります。

Usage Policy refusalとは何が起きているのか

Claude Codeは、Usage Policyに抵触すると判定された会話に対して、モデルの応答を拒否します。エラーメッセージには判定したモデル名が入ります。モデル名が記録されていない場合は、単に Claude と表示されます。

API Error: Opus 4.6 can't help with this. Start a new session to continue.
 
Send feedback with /feedback or learn more: https://www.anthropic.com/legal/aup

メッセージにはRequest IDとMessage IDが含まれます。誤判定だと考えてサポートに問い合わせるときは、この2つを添えます。

表示は版によって違います。v2.1.219より前は「Claude Code is unable to respond to this request, which appears to violate our Usage Policy」で始まる長い文面でした。非対話モード(-p)の文面は、v2.1.172で新しいセッションの開始やモデルの変更を促す内容に改められています。v2.1.142より前の拒否メッセージには、特定のモデルを指定し直す /model の案内が含まれていましたが、現在は表示されません。

なぜ同じ会話で何度も再現するのか

このチェックは直近の1メッセージだけでなく、会話全体を評価します。拒否のあとに言い回しを変えて送り直しても、同じセッションの中では同じ拒否が起きやすくなります。

終了して開き直しても結果は変わりません。--continue や --resume で再開すると、ディスク上のトランスクリプトに引っかかった内容が残っているので、同じチェックが再び走ります。

Amazon Bedrock・Google Cloud's Agent Platform・Microsoft Foundry経由では、事情が少し違います。これらの経路では、モデルの安全機構がサイバーセキュリティの話題としてフラグを立てた場合も、同じUsage Policy refusalのメッセージで表示されます。切り分けは「Safety measures flagged a cybersecurity topic」の意味に詳しくあります。

対話セッションで再開する手順

原因のターンが分かるなら、巻き戻して続けるのが最短です。

手順

拒否から再開するまで

  1. 1

    Escを2回押す、または /rewind を実行

    プロンプト入力欄が空のときに限り、Escの2回押しでも巻き戻しメニューが開きます。入力欄に文字があると、Escの2回押しは入力の消去になります。

  2. 2

    拒否が起きたターンより前のプロンプトを選ぶ

    メニューには、そのセッションで送った各プロンプトが並びます。拒否を引き起こしたターンの1つ前を選びます。

  3. 3

    戻す範囲を決める

    「Restore conversation」なら会話だけ、「Restore code and conversation」ならコードも戻ります。コードの選択肢は、そのチェックポイントに追跡済みのファイル変更があるときだけ表示されます。

  4. 4

    入力欄に戻ったプロンプトを直して送る

    選んだメッセージの元のプロンプトが入力欄に復元されます。表現を変えるか、別のアプローチに書き換えて送信します。

/rewind

/rewind には /checkpoint と /undo という別名もあります。実行中のターンに割り込ませて送ったメッセージは、チェックポイントが作られず、メニューにも並びません。引き金がそうしたメッセージだった場合は、メニューにある一つ前のプロンプトまで戻ることになります。

巻き戻しで戻せるのは、Claudeのファイル編集ツールによる変更です。Bashコマンドで書き換えたファイルは追跡されないため、会話を戻してもコードは戻りません。サブエージェントの編集も、多くの場合は戻せません。拒否の直前にこうした操作があったときは、git などでコード側を自分で確認します。

チェックポイントは会話と一緒に保存されるので、セッションを再開したあとでも /rewind は使えます。ただしファイルのスナップショットは、既定でセッションの最終保存からおよそ30日で削除されます。古いセッションで戻そうとすると「No files were restored」で失敗することがあります。詳しい挙動はClaude Code rewindコマンドで/clear前まで戻るにあります。

原因のターンが分からないとき

どのターンが引き金か特定できないなら、/clear で同じプロジェクトの新しい会話を始めます。/clear には /reset と /new という別名があり、引数に名前を渡すと、前の会話を /resume の一覧でその名前のラベルで見分けられます。それまでの会話はディスク上に残り、/resume から開けます。

/clear のあとで気が変わった場合は、同じClaude Codeプロセスの中であれば、巻き戻しメニューの先頭にある「(previous session)」の項目から、クリア前の会話に戻れます。プロセスを終了するか別のセッションを再開すると、この項目は消えます。

非対話モード(-p)での再開

スクリプトやCIから -p で呼び出している場合、/rewind は使えません。対話セッションとの違いは、次の比較のとおりです。

くらべる

対話セッションと -p の抜け方

/rewind が使える

対話セッション

拒否より前のチェックポイントまで戻して、同じセッションのまま言い換えて続けます。原因が分からなければ /clear で新しい会話にします。

/rewind は使えない

非対話モード(-p)

--continue を付けずに、新しいセッションで言い換えたプロンプトを送ります。モデルによってチェックの結果が変わることがあるため、--model で別のモデルを指定する手もあります。

claude -p "続きの指示" --continue のように --continue を付けた呼び出しは、直前の会話を引き継ぎます。拒否の原因を含むトランスクリプトも一緒に引き継ぐため、同じ拒否が繰り返されます。v2.1.287の claude --help では、関連するフラグは次のように説明されています。

-c, --continue                        Continue the most recent conversation in
                                      the current directory
--fork-session                        When resuming, create a new session ID
                                      instead of reusing the original (use
                                      with --resume or --continue)
--no-session-persistence              Disable session persistence - sessions
                                      will not be saved to disk and cannot be
                                      resumed (only works with --print)

--no-session-persistence は --print(-p)専用のフラグで、会話がディスクに保存されず、再開もできなくなります。毎回まっさらな会話で呼び出すジョブなら、引っかかった履歴を次の実行に持ち越しません。一方で、保存されないぶん、あとからトランスクリプトを見て原因のターンを探すこともできなくなります。

元のセッションを残したまま別の切り口を試す

/rewind は同じセッションの中で過去に戻る操作です。拒否が起きる前の会話をそのまま残して、別の切り口を並行して試したいなら、/branch で新しいセッションに分岐させます。

/branch

/branch は、その時点までの会話をコピーして新しいセッションに切り替えます。元のセッションはそのまま残り、/resume で戻れます。/branch 別の言い回し案 のように名前を渡せるので、複数の案を並べるときも見分けが付きます。コマンドラインからは claude --continue --fork-session でも同じことができます。

ただし、拒否を引き起こした内容より前で分岐しなければ、コピー先でも同じ拒否が起きます。この点は /rewind と変わりません。/branch の使い方はClaude Codeのbranchコマンドで会話を分岐するで扱っています。

似た文言の別エラーとの見分け方

拒否に見えても、原因が違うエラーがあります。メッセージの冒頭と、止まった範囲で見分けます。

見分け方

拒否に似た4つの表示

  • Usage Policy refusal

    API Error: で始まり、モデル名と「Start a new session to continue.」が続きます。応答そのものが止まります。

  • safeguards flagged

    モデルの安全機構がサイバーセキュリティの話題としてフラグを立てた表示です。Cyber Verification Programの案内が付きます。Opus 5.5とSonnet 5.5では、冒頭が「safeguards flagged this session」になります。

  • Auto mode could not evaluate

    auto modeの判定が実行できず、そのツール操作だけが止まる表示です。会話は続けられます。

  • Output blocked by content filtering policy

    Claudeが生成している途中の出力を、APIの出力フィルターが止めた表示です。

サイバーセキュリティのフラグには、拒否と違う挙動もあります。フラグの対象カテゴリに代替モデルがあるときは、Claude Codeがエラーを出さずにモデルを切り替えます。正当なセキュリティ業務なら、Cyber Verification Programへの申請でこの種の中断を減らせます。

auto modeの表示は、さらに2つの原因に分かれます。分類器の応答が解釈できなかった場合は、操作を再試行すれば通ることが多く、claude --debug で詳細を確認できます。もう1つは、以前の会話内容がAPI側の安全チェックに引っかかり、分類器へのリクエストが止まった場合です。この場合は「auto modeの判定とは別の安全チェックが、以前の会話内容を理由にブロックした」という趣旨の文言が付きます。再試行しても同じ内容でまた止まります。対話セッションでは別のパーミッションモードに切り替えると、操作を手動で承認して進められます。

出力フィルターの表示は、v2.1.285以降、Claude Codeが再送や再試行をせず、ブロックを受け取った時点でエラーを出して止まります。v2.1.284以前は、ブロックされたリクエストを数分間再送することがありました。対処は、最後のメッセージを言い換えるか、Esc2回と /rewind で前のチェックポイントまで戻る形です。

Usage Policyの違反が続いたときの扱い

Usage Policyは、違反があった場合の対応として、アクセスの制限(スロットリング)・停止・終了を挙げています。拒否の表示に含まれるのは、モデル名とRequest ID、Message IDです。

誤判定だと思うときは、/feedback でAnthropicにフィードバックを送れます。Request IDとMessage IDを添えると、どのリクエストの判定かを特定する手がかりになります。

まとめ

拒否の原因は会話履歴に残っているので、言い換えて送り直すだけでは抜けられません。拒否より前に戻れるなら /rewind、特定できなければ /clear、元の流れを残したいなら /branch と選びます。

Claude Codeのエラー全般を切り分ける手順は、Claude Codeインストールエラーの切り分けチェックリストにあります。セキュリティ関連の運用はClaude Codeセキュリティ・権限ガイドで扱っています。

この記事を共有:XはてブLinkedIn