For the complete documentation index, see llms.txt. This page is also available as Markdown.

エラーとステータスコード

CLI の終了コード、SDK 例外、REST API エラーレスポンスのリファレンス。

Roboflowの開発者向けツールは、少数のエラーカテゴリを共有しており、各ツールで異なる形で表示されます。このページは、それらを横断的に参照するためのものです。

CLIの終了コード

CLIは4つの明確に定義された終了コードを使用するため、スクリプトやAIエージェントは出力を解析せずに結果に応じて分岐できます:

終了コード
意味

0

成功

1

一般エラー(不正な入力、ネットワーク障害、予期しないサーバー応答)

2

認証失敗(APIキーがない、または無効、ワークスペースが選択されていない)

3

リソースが見つかりません(project、version、workflow、deployment などが存在しない、またはキーから見えない)

では、 --json モードでは、CLIは成功時に構造化された出力をstdoutへ書き込み、失敗時にJSONエラーオブジェクトをstderrへ書き出します。そのためstdoutは空のままになり、パイプラインを安全に解析できます:

roboflow --json project get nonexistent 2>error.json
echo $?       # 3
cat error.json
# {"error": {"message": "Project 'nonexistent' not found", "hint": "'roboflow project list' を実行してプロジェクトを確認してください。"}}

SDKの例外

Python SDKは失敗時にPython例外を送出します。最もよく遭遇する型は次のとおりです:

例外
発生条件

RuntimeError

操作が論理的に不正です - たとえば、 restore() Trash にないプロジェクトに対して呼び出す場合や、まだ生成されていない version でトレーニングする場合など。

ValueError

渡された引数が不正な形式です - たとえば、認識されない model_formatVersion.download().

roboflow.adapters.rfapi.RoboflowError

REST APIが2xx以外の応答を返しました。例外の文字列にはサーバーのエラー本文が含まれます。

roboflow.adapters.deploymentapi.DeploymentApiError

に相当します RoboflowError 専用デプロイメントサービス向けのものです。

requests.exceptions.HTTPError / ConnectionError

ネットワークレベルの障害(DNS、TLS、タイムアウト)。

経験則としては、 RuntimeError は論理的な問題に対して、 RoboflowError はサーバー側の拒否に対してキャッチし、それ以外はすべてそのまま伝播させます。

参照 ログ記録とデバッグ 例外だけでは不十分な場合に、基盤となるHTTPリクエストを確認する方法について。

REST APIのステータスコード

REST APIは標準のHTTPステータスコードを使用します。Roboflow固有の動作:

ステータス
意味

200

成功。レスポンス本文はJSONです。

204

成功、本文なし(いくつかの PATCH / DELETE エンドポイントで使用されます)。

400

不正なリクエスト - 必須フィールドの欠落、形状の不正、無効な値。

401

認証失敗。 api_key、無効なもの、またはその操作に必要なスコープを持たないキーです。

402

支払いが必要です。ワークスペースのプランでは要求された操作をサポートしていません。推論の場合、モデルまたはアーキテクチャがクレジットベースのプランでのみ利用可能であるか、ワークスペースの月次Hosted API推論クォータに達したことを意味します。レスポンス本文には AccessException のエラー型が含まれます。

403

禁止されています。キーは認証されましたが、対象のワークスペースまたはリソースへのアクセス権がありません。

404

見つかりません。ワークスペース、project、version、workflow、その他のリソースが存在しないか(またはキーから見えません)。

409

競合。リソースが、要求された操作を妨げる状態にあります(たとえば、親プロジェクトもTrashにあるversionを復元しようとした場合など)。

423

ロックされています。ワークスペースの請求が一時停止されています - 理由はレスポンス本文を参照してください。

429

レート制限されています。減速し、指数バックオフで再試行してください。

5xx

サーバーエラー。バックオフ付きで安全に再試行できます。

標準のエラー本文

エラーは、少なくともトップレベルの error フィールドを含むJSONで返されます:

一部のエンドポイントには hint または構造化されたエラーオブジェクトも含まれます - 詳細は REST API の各エンドポイントのドキュメントを参照してください。

必須スコープ

APIキーにはリソースごとのスコープがあります。書き込み操作での401は、多くの場合、キーに対応する *:update または *:write スコープがないことを意味します。たとえリソースを読み取れる場合でも同様です。参照先は スコープ付き API キー スコープの説明です。

ツール間のエラーマッピング

状況
CLI終了
SDK
REST

APIキーがない / 無効

2

RoboflowError ("401")

401

リソースが見つからない

3

RoboflowError ("404") / RuntimeError

404

プラン制限 / クォータ超過

1

RoboflowError ("402")

402

不正な入力 / 不正なリクエスト

1

ValueError / RoboflowError ("400")

400

サーバーエラー / 一時的

1

RoboflowError ("5xx")

5xx

リトライを設定する際はこの表を使ってください: 2 / 401 は自動再試行してはいけません(キーがさらに有効になることはありません)、a 3 / 404 は再試行してはいけませんが、a 1 5xxレスポンスからのものは、バックオフ付き再試行の候補です。

最終更新

役に立ちましたか?