はじめに
エラーと再試行
標準のJSONエラーエンベロープを解析し、再試行しても安全なタイミングを判断します。
エラーエンベロープ
JSON APIの失敗時には、トップレベルにerrorオブジェクトが1つ返されます。このオブジェクトには、人が読めるmessage、数値のHTTP status、および任意の安定したcodeが含まれます。OpenAPIの仕様では、想定内・想定外の失敗の両方でこのスキーマを参照しています。
{
"error": {
"code": "invalid_request",
"message": "A verified From domain is required",
"status": 403
}
}クライアントエラー
400の入力エラーは、修正してから再試行してください。401の後は、無効な認証情報を差し替えるか失効させてください。402は有料の利用権が必要であること、403はポリシーまたは権限の境界、404はテナント単位のリソースが存在しないこと、409は状態または冪等性の競合、413は添付ファイルの上限超過を示し、422はバリデーションまたはサプレッションに該当します。
再試行の判断
認証、バリデーション、サプレッション、競合による失敗は自動的に再試行しないでください。423は、該当するFromの送信者IDが一時停止されていることを意味します。そのストリームを停止して受信者を修正し、ローリング指標が回復してから再試行してください。一時的な429、502、503レスポンスは、上限付きの指数バックオフとジッターを使って再試行できます。1つの論理的な送信を再試行する際は、同じIdempotency-Keyと同一のJSONペイロードを維持してください。
サポートに必要な情報
リクエスト時刻、ルート、HTTPステータス、SendHQのリソースID、秘密でないエラーフィールドを記録してください。サポートへの報告には、APIキー、セッションCookie、メッセージ本文、受信者リストを絶対に含めないでください。