Skip to main content
失敗はひとつのエンベロープを共有します。
code は安定しており、分岐に使って安全です。message は人間向けで変わることがあります。details は 問題のフィールドを特定できるときに含まれます。

コード

400 は解析や理解ができないリクエストに使います。422 は形式は完全に正しいものの、指定された地域では 提供できないリクエスト専用です。ステータスより error.code で分岐するほうが長く安定します。

地域による拒否

2つの地域コードはいずれもタスクをキューに入れる前に判定されます。タスクが再試行予算を使い切って 症状だけのエラーで失敗するのを待つ必要はなく、すぐに分かります。 REGION_UNSUPPORTED は恒久的です。そのエンジンは指定された国を提供できません。
提供できない組み合わせの表を参照してください。 REGION_UNAVAILABLE は一時的です。経路はありますが、今は提供できるものがありません。 GET /capacity で各地域が現在提供できる範囲を確認してください。

バッチの失敗は項目ごと

正しい形式のバッチは、中のタスクがすべて失敗しても常に 200 を返します。HTTPステータスはリクエストを、 results[].success は各タスクを表します。
リクエスト全体が不正な場合(JSONでない、配列でない、空、500件超、8 MB超、認証失敗)にのみ、バッチ自体が4xxを返します。
バッチ項目は REGION_UNAVAILABLE または ENQUEUE_ERROR で失敗することがありますが、どちらもこのAPIが 実装する非同期タスク契約の項目別エラーenumにはありません。いずれも置き換えではなく追加であり、 VALIDATION_ERROR と RESOURCE_ALREADY_EXISTS は変わりません。

タスクレベルの失敗

キューに入った後に失敗したタスクは、HTTPエラーを一切生みません。終了ステータスで分かります。
形の違いに注意してください。このトップレベルの error は、リクエストレベルのエラーが使う {code, message, timestamp} オブジェクトではなく文字列です。コードで始まり、そのコードごとに決まった 文が続くため、コードで分岐してください。ENGINE_TIMEOUT、ENGINE_NO_RESULT、ENGINE_FAILED のほか、時間内に 処理枠が空かなかった場合は NO_IP_AVAILABLE または NO_ACCOUNT_AVAILABLE です(通常は後で再試行すれば成功します)。 BAD_PAYLOAD と PAGE_UNAVAILABLE(匿名では読めないNAVERのページ)は、何を変えればよいかを示すメッセージを そのまま返します。同じタスクは task.status === "FAILED" のWebhookも配信します。