新規登録でプレミアムプランが割引に割引を受け取る

ブログ/guides·2026年9月9日·2分·執筆:eroqチーム

レンダリングがブロックされた理由:コンテンツポリシーエラーの読み方

content_blockedの意味、ブロックされたリクエストが無料な理由、上流でモデレーションされるエンジン、拒否と失敗の見分け方を解説します。


「生成」を押したら、クリップの代わりに一文が返ってきた。The engine declined this prompt. Rephrase it and retry — you have not been charged.(エンジンがこのプロンプトを拒否しました。言い換えて再試行してください。課金はされていません。)短いメッセージで、まったく異なる4つの状況のうちどれに当てはまるのかまでは教えてくれません。この記事は、その足りない説明を、大げさにせず補うものです。

エラーの正体

ブロックのコードはcontent_blockedの1つだけです。レンダリングエンジンを呼び出す2つの窓口、つまり画像と動画のどちらからも、同じ形で届きます。

画像の場合、呼び出しは標準のエラー形式でHTTP 422を返します。

{
  "error": {
    "message": "The engine declined this prompt. Rephrase it and retry — you have not been charged.",
    "type": "invalid_request_error",
    "code": "content_blocked"
  }
}

動画は非同期なので、ブロックはジョブを送信したときではなく、ポーリングしたときに届きます。

{
  "id": "…",
  "object": "video.generation",
  "status": "failed",
  "model": "seedance-1-pro",
  "duration": "5s",
  "error": { "type": "invalid_request_error", "code": "content_blocked" },
  "usage": { "credits_spent": 0, "credits_remaining": 4820 }
}

typeに注目してください。ブロックはinvalid_request_error、つまりリクエストそのものについての判定です。一方、エンジンが試みて失敗した場合はupstream_errorが返ります。このフィールド1つで、拒否と単なるハズレを最も早く見分けられます。video.generation.failedのWebhookを受け取っている場合も、同じコードが含まれます。

課金はされないが、2行表示されることがある

credits_spentはゼロで、残高は元のままです。ただ、その裏の仕組みは知っておく価値があります。利用明細を見て驚く人がいるからです。

動画は送信時に課金され、ジョブが失敗に終わると返金されます。そのため、ブロックされたクリップは、同じ1分の間に課金の行と、それに対応するマイナスの返金の行を生みます。差し引きはゼロです。画像はバッチ分を前払いで課金し、空で返ってきたテイクごとに返金します。どちらの場合も、支払うのは納品された成果物の分だけです。ただし利用明細は、その順序を隠さずありのままに記録します。詳しくは利用明細の読み方で解説しています。

決して動かない3つの制限

eroqのどこでも、恒久的に拒否されるプロンプトがあります。どう書き直しても変わりません。それらは利用ポリシーに明記されていて、リストは短いものです。

未成年者が関わるあらゆるコンテンツ。実在・架空・イラスト調・ほのめかしのいずれであっても同じです。本人の同意のない、実在する特定可能な人物。これにはディープフェイクや著名人へのなりすましも含まれます。違法なもの全般と、嫌がらせ。これらはリクエスト単位だけでなくアカウント単位で取り締まられるため、回避を試みるべきフィルターではありません。

プロンプトがこの領域にあるなら、ブロックは正しい結果であり、あなたにとってこの記事はここまでです。以下はそれ以外のケースについての話で、こちらのほうがはるかによくあります。

窓口ごとに、壁は実際どこにあるのか

ほとんどの人が当てはまるのはこのケースで、これはポリシーの問題ではなく、振り分けの問題です。

1つを除くすべての動画エンジンは、eroqの上流で、それぞれのプロバイダーによってモデレーションされています。Seedance 2.5、Seedance 1.0 ProとLite、Kling、Hailuo、Veoはいずれもプロバイダーのルールを適用し、拒否しているのはプロバイダーです。Motion Oneはeroq独自の検閲なしの動画エンジンで、無料プランを含むすべてのアカウントで使えます。シーンが禁止されているのではなく、プロバイダーにシーンを拒否されたことが問題なら、答えはMotion Oneです。

チャットとボイスには、このような区別はありません。どちらもeroq独自のモデルで動いており、同じ明文化されたポリシーの範囲内で検閲なしです。画像では、Eroq UncensoredとAnimaが検閲なしのモデルで、Flash ImageとFlux Imageは、動画エンジンと同じく上流でモデレーションされるサードパーティのエンジンです。画像も特定のプロンプトを拒否しうるエンジンでレンダリングされるため、content_blockedにときどき出会うことがあります。その場合は、上記の3つの厳格な制限のどれかか、単語による誤検知のどちらかです。チャットとボイスには、エンジン側にこの種のコンテンツチェックはありません。厳格な制限は、何かが実行される前にテキストに対してチェックされ、アカウント単位で適用されます。

はっきり言えば、eroqのポリシーの範囲内でもKlingのプロバイダーのルールの範囲外にあるシーンは、ポリシー違反ではありません。間違ったエンジンに向けたショットにすぎず、いくら言い換えても通りません。エンジンを切り替えましょう。この境界については、検閲なしAIでより広い視点から解説しています。

拒否と失敗を見分ける

4つの状態は画面上では似て見えますが、挙動はまったく異なります。全体の分類はAI動画のレンダリングが失敗する理由で解説しています。ここでは、切り分けのための短縮版を紹介します。

  • content_blocked:内容に関する判断です。再試行しても同じ結果になります。書き直すか、エンジンを変えましょう。
  • generation_failed:エンジンはジョブを受け付けましたが、何も返しませんでした。運の問題です。再試行しましょう。
  • generation_timeout:レンダリングが戻ってきませんでした。10分を過ぎて止まったジョブは、最初にポーリングした時点で失敗扱いになり、返金されます。
  • 事前チェックでの拒否は、そもそもブロックではありません。403 plan_required(エンジンが現在のプランより上位)、503 model_unavailable(そのエンジンがまだ提供開始されていない)、402 insufficient_credits(ウォレットが空)、403 role_forbidden(ワークスペースのロールではクレジットを使えない)、429 rate_limit_exceeded(何秒待てばよいかを示すRetry-Afterヘッダー付き)です。これらはすべてジョブがキューに入る前に判定されるため、何も課金されず、返金するものもありません。

書くべき再試行ロジックは1行で済みます。content_blockedは決して再試行せず、失敗とタイムアウトは再試行し、それ以外はすべて人に知らせることです。

誤検知だった場合

厄介なのは、無害な内容を書いたのに、ある単語がフィルターに引っかかったケースです。フィルターが読むのは意図ではなく名詞なので、解決策は出来事ではなく映像を描写することです。行為ではなくショット、光、服装を書き、実在の人物の名前はすべて外しましょう。書き直しの手順の全体は上でリンクした記事にあり、ブックマークしておく価値があります。

もう1つ、費用のかからない診断方法があります。同じプロンプトをMotion Oneで実行してみることです。そこではレンダリングされ、プレミアムエンジンではブロックされたなら、プロンプトに問題はなく、プロバイダーが厳しいだけだとわかります。Motion Oneでもブロックされるなら、思っていた以上に3つの厳格な制限のどれかに近づいています。

動画スタジオを開いて、適切なエンジンでもう一度ショットを試しましょう。

よくある質問

レンダリングがブロックされたら課金されますか?

いいえ。ブロックされた作業でクレジットが消費されることはありません。動画は送信時に課金され、ジョブがブロックされて戻ってくるとすぐに返金されます。画像は空のテイクごとに返金され、レスポンスではcredits_spentがゼロと報告されます。残高が動いていた場合は、課金されたと判断する前に、リクエストログで対応するマイナスの行を探してください。

同じプロンプトが、あるエンジンではレンダリングされ、別のエンジンではされないのはなぜですか?

Motion Oneを除くすべての動画エンジンは、上流のプロバイダーが自社のルールでモデレーションしているからです。Motion Oneは明文化されたポリシーの範囲内で検閲なしのeroq独自のエンジンなので、プロバイダーに拒否されたシーンでもレンダリングできます。チャットとボイスはeroq独自のモデルで動き、画像ではEroq UncensoredとAnimaが検閲なしの選択肢なので、この区別が最も重要になるのは動画です。

ブロックされたプロンプトで、アカウントにフラグが付きますか?

厳格な制限(未成年者、実在する特定可能な人物、違法なもの)は、リクエスト単位ではなくアカウント単位で適用されるため、これらは問題になります。キーワードによる通常の誤検知はそれとは別で、書き直して再試行するのはツールを使ううえでごく普通のことです。プロジェクトが境界線のどちら側にあるか不安なら、まず利用ポリシーを読んでください。

プログラムでブロックを処理するには?

メッセージのテキストではなく、エラーコードで分岐させます。content_blockedはinvalid_request_errorとして届き、決して再試行してはいけません。一方、generation_failedとgeneration_timeoutはupstream_errorとして届き、2回まで試す価値があります。それ以外のもの(プランの制限、空のウォレット、レート制限)は、ループではなく人の対応が必要な設定上の問題です。

タグtroubleshootingcontent-policyerror-codesmoderation

この記事で使ったモデルで作ってみましょう。無料の50クレジットで始めるか、全エンジンと料金をご覧ください。