Skip to main content

エラー

すべてのAPIエラーコード、その原因、対処法、再試行すべきかどうか。
4 min read

Firecrawl のエラーレスポンスは、すべて同じ JSON 形式です。原因、対処法、またリクエストを安全に再試行できるかどうかを確認するには、以下の表で error の値 (または HTTP ステータス) を参照してください。

Note
この一覧では、ほとんどのエージェントやクライアントが遭遇するエラーを取り上げています。網羅的なものではありません。ここに記載されていないエラーを受け取った場合は、文書化のために issue を作成してください。

エラーレスポンスの形式#

2xx 以外のレスポンスはすべて、トップレベルに success: false と文字列の error を含む JSON を返します。利用可能なコンテキストが多い場合は、一部のエンドポイントで追加のフィールド (detailscode) も含まれます。

フィールド説明
successbooleanエラー時は常に false
errorstring人間が読めるエラーメッセージ。以下の行を参照する際に使用します。
detailsany任意。該当する場合、フィールドごとの構造化されたバリデーションエラー。

エラー#

HTTPerror (一般的なメッセージ)原因対処法リトライ可能
400Bad Request / バリデーションメッセージリクエスト本文がスキーマ検証に失敗しました (フィールドが不足しているか無効です) 。エンドポイントのリファレンスを参照してリクエストのペイロードを修正してください。対象のフィールドは details を確認してください。いいえ
400Invalid URLurl フィールドがない、形式が不正、または未対応のスキームを使用しています。絶対URLの http(s):// を指定してください。いいえ
401Unauthorized: Invalid tokenAPI key がない、形式が不正、または失効しています。ダッシュボード の有効なキーを使って Authorization: Bearer fc-... を送信してください。いいえ
402Payment Required: Insufficient creditsプランのクレジットを使い切っているか、課金が設定されていません。従量課金を有効にするか、プランをアップグレードしてください。いいえ
403Forbiddenこのエンドポイントまたは機能に対する権限がキーにありません。必要なスコープを持つキーを使用するか、この機能が使えるプランにアップグレードしてください。いいえ
403SCRAPE_PROMPT_INJECTION_DETECTEDcheckPromptInjection: true を指定した JSONモードで、スクレイピングしたページコンテンツ内のプロンプトインジェクションの試行が検出されたため、抽出は中止されました。ページコンテンツを手動で確認してください。誤検知の場合は、checkPromptInjection を指定せずにリトライしてください。プロンプトインジェクションの検出 を参照してください。いいえ
404Not Foundjob ID、リソース、またはエンドポイントのパスが存在しません。リソース ID とエンドポイントの URL を確認してください。いいえ
408Request Timeoutページの読み込みに、リクエストの timeout より長い時間がかかりました。timeout を増やす、アクションを簡略化する、または fastMode を使用してください。はい、バックオフ あり
409Conflictリソースがそのオペレーションを実行できない状態にあります (例: すでに削除済み) 。リトライする前に状態を再取得し、整合性を取ってください。いいえ
413Payload Too Largeリクエスト本文が許可されている最大サイズを超えました。ペイロードを小さくしてください (例: schema を短くする、batch ごとの URL 数を減らす) 。いいえ
422Unprocessable Entity / extraction schema errorschema が無効な JSON Schema であるか、モデルがスキーマに準拠した結果を生成できませんでした。schema を検証し、必須フィールドの条件を緩めるか、別の model を試してください。場合による
429Rate limit exceededご利用プランの1分あたりの上限を超える数のリクエストが送信されました。Retry-After 秒待ってから バックオフ してリトライしてください。レート制限 を参照してください。はい、バックオフ あり
429Concurrency limit reachedご利用プランの browser の同時実行上限に達しました。実行中の jobs の完了を待つか、同時実行数 を下げるか、プランをアップグレードしてください。はい、バックオフ あり
500Internal Server Errorサーバー側で未処理の障害が発生しました。指数 バックオフ でリトライしてください。解消しない場合は、request ID を添えてサポートに連絡してください。はい、バックオフ あり
502Bad Gateway上流の proxy または worker が無効なレスポンスを返しました。バックオフ してリトライしてください。はい、バックオフ あり
503Service Unavailableservice が一時的にリクエストを処理できません。バックオフ してリトライしてください。はい、バックオフ あり
504Gateway Timeoutリクエストがゲートウェイの timeout を超えました (通常は長時間のクロール) 。代わりに async の crawl/batch エンドポイント を使い、status を poll してください。はい、バックオフ あり

429 レスポンスでは、利用可能な場合、Firecrawl は Retry-After ヘッダー (秒単位) を含めます。リトライする前に、少なくともその時間だけ待ってください。

Agent#

/agent およびそのステータス、トレース、スナップショット、キャンセルの各エンドポイントに固有のエラーです。トレースおよびスナップショットのエンドポイントは、上流のエラーボディを変更せずに中継するため、この 2 つでは上記の success フィールドを含まないボディが返される場合があります。HTTP ステータスと error 文字列で照合してください。

HTTPerror (一般的なメッセージ)原因対処法リトライ可能
400Invalid job ID format. Job ID must be a valid UUID.jobId パスセグメントが UUID ではありません。POST /v2/agent が返す id を渡してください。いいえ
400Invalid snapshot IDsnapshotId パスセグメントの形式が正しくありません。artifact.updated トレースイベントsnapshotId を使用してください。いいえ
400Trace is only available for Spark 2 extractsこのジョブは、トレースを記録する Spark 2 より前に作成されています。このジョブに対してできることはありません。新しい実行はすべて spark-2 で実行され、トレースが記録されます。いいえ
400Snapshots are only available for Spark 2 extractsこのジョブは、スナップショットを記録する Spark 2 より前に作成されています。このジョブに対してできることはありません。新しい実行はすべて spark-2 で実行され、スナップショットが記録されます。いいえ
400Your team has zero data retention enabled. This is not supported on extract.ゼロデータ保持が強制されている Team では、Agent 実行を利用できません。Team でこの機能を利用できるようにするには、support@firecrawl.com までお問い合わせください。いいえ
404Agent job not foundjob ID が存在しないか、別の Team に属しています。job ID を確認し、実行を開始した Team のキーを使用してください。いいえ
404Snapshot not foundこのジョブには、その ID のスナップショットがありません。トレースを再取得し、artifact.updated トレースイベント の最新の snapshotId を使用してください。いいえ
409Agent already finishedすでに終端状態に達した実行に対してキャンセルが呼び出されました。代わりに GET /v2/agent/{jobId} を poll して結果を確認してください。いいえ
409Agent is already cancelledすでにキャンセル処理中の実行に対してキャンセルが呼び出されました。GET /v2/agent/{jobId} を poll してください。キャンセルされた実行は、キャンセルメッセージとともに failed を返します。いいえ
500Failed to passthrough agent request.Agent サービスが送信時にジョブを拒否しました。バックオフを使用してリトライしてください。解決しない場合は、request ID を添えてサポートにお問い合わせください。はい、バックオフを使用

maxCredits 上限に達した実行は HTTP エラーを返しません。失敗したジョブとして完了します。ステータスエンドポイントを poll すると、クレジット上限に関するエラーメッセージを含む status: "failed"data なし、creditsUsed: 0 が返されます。失敗した実行には課金されないためです。トレースでは、同じ結果が outcome: "credit_limit_reached" を持つ run.finished イベントとして表示されます。

トレースのエラーコード#

Terminal および error.occurred トレースイベントには、5種類の値のいずれかを持つ code を含む構造化された error オブジェクトが含まれます。また、各イベントには retryable boolean が含まれ、上記のリトライ可能列と同様に扱います。

code意味と対処法
cancelled実行をキャンセルしました。作業をやり直す場合は、新しい実行を開始してください。
credit_limit_reached実行が maxCredits の上限に達しました。maxCredits を増やすか、必要な作業量が少なくなるようプロンプトを絞り込んでください。
parent_finished起動元のagentが先に完了したため、サブagentが停止しました。実際の原因は、親agentのTerminalイベントで確認してください。
refusedagentがタスクを拒否しました。プロンプトを言い換えるか、収集する権限のあるURLに対象を絞ってください。
internal実行中に予期しない障害が発生しました。実行をリトライし、問題が続く場合はjob IDを添えてサポートにお問い合わせください。

リトライのガイダンス#

リトライ可能 列を判断基準とし、HTTP ステータスだけで推測しないでください。以下のパターンでは、ジッター付きの指数バックオフを使用し、429 では Retry-After を優先します。

429 レスポンス#

429 レスポンスは、リトライ可能なエラーで最もよく発生します。プランごとのレート制限と同時実行数の上限については、レート制限 を参照してください。Retry-After ヘッダーがある場合は、すぐに再試行せず、必ずその指示に従ってください。