Azure Cosmos DB の HTTP 状態コード

この記事では、REST 操作によって返される HTTP 状態コードについて説明します。

コード 説明
200 OK 次のいずれかの REST 操作が成功しました。

- GET リソースに対して。
- PUT リソースに対して。
- POST リソースに対して。
- POST ストアド プロシージャ リソースで ストアド プロシージャを実行します。
201 Created リソースを作成するための POST 操作が成功しました。
204 コンテンツなし DELETE 操作は成功しました。
400 無効な要求 要求本文の JSON、SQL、または JavaScript が正しくありません。

さらに、400 はリソースの必須プロパティが存在しないか、リソースの POST または PUT の本文に設定されていないときにも返されます。

400 は、ある GET 操作の一貫性のあるレベルがアカウントに設定されている GET 操作のより強力な一貫性によりオーバーライドされたときにも返されます。

x-ms-documentdb-partitionkey を必要とする要求に含まれていない場合も、400 が返されます。
401 Unauthorized 要求されたリソースのヘッダーが無効な場合 Authorization 、401 が返されます。
403 Forbidden 認証トークンの有効期限が切れています。

403 コードは、リソース クォータに達したときにリソースを作成する操作中 POST にも返されます。 このシナリオの例として、プロビジョニングされたストレージに達したコレクションにドキュメントを追加する場合があります。

また、ストアド プロシージャ、トリガー、UDF に高リソース使用のフラグが設定され、実行がブロックされたときにも 403 が返されます。

403 Forbidden エラーは、Azure Cosmos DB アカウントで構成されたファイアウォール規則に要求がブロックされている場合に返されます。 許可リストに含まれないマシンからのすべての要求には、403 応答が返されます。

403.3 – この状態コードは、手動フェールオーバー操作中に書き込み要求に対して返されます。 この状態コードは、新しい書き込みリージョンに書き込み要求を転送するためのドライバーによるリダイレクト コードとして使用されます。 Direct REST クライアントは、DatabaseAccount で GET を実行して現在の書き込みリージョンを特定し、書き込み要求をそのエンドポイントに転送する必要があります。
404 見つかりません もう存在していないリソースを操作しようとしています。 たとえば、リソースは既に削除されている可能性があります。
408 要求タイムアウト 操作は、割り当てられた時間内に完了しませんでした。 このコードは、(クエリ内の) ストアド プロシージャ、トリガー、または UDF が、最大実行時間内にその実行を完了しなかった場合に返されます。
409 Conflict PUT または POST 操作で指定されたリソースの ID が、既存のリソースで使用されています。 この問題を解決するには、リソースの別の ID を使用します。 パーティション分割されたコレクションの場合、ID は、同じパーティション キー値を持つすべてのドキュメント内で一意である必要があります。
412 前提条件エラー 操作で、サーバーで利用できるバージョンとは異なる eTag が指定されました。つまり、オプティミスティック同時実行制御エラーです。 リソースの最新バージョンを読み取り、要求の eTag を更新した後、要求を再試行してください。
413 エンティティが大きすぎます 要求のドキュメント サイズが要求の許容ドキュメント サイズを超えています。 許容されるドキュメントの最大サイズは 2 MB です。
423 ロック済み 別のスケール操作が進行中のため、スループット スケール操作を実行できません。
424 依存関係にエラーが発生しました TransactionalBatch 操作のトランザクション スコープ内でドキュメント操作が失敗した場合、バッチ内の他のすべての操作は失敗した依存関係と見なされます。 この状態コードは、同じトランザクション スコープ内で別のエラーが発生したため、現在の操作が失敗したと見なされたことを示します。
429 要求が多すぎます コレクションが、プロビジョニングされたスループットの上限を超過しました。 サーバーで指定された再試行までの期間の後に要求を再試行してください。 詳細については、「 要求ユニット」を参照してください。
449 再試行 操作で一時的なエラーが発生しました。 このコードは、書き込み操作でのみ発生します。 操作を再試行しても問題ありません。
500 Internal Server Error 予期しないサービス エラーのため、操作に失敗しました。 サポートにお問い合せください。 「Azure サポートの問題を報告する」を参照してください。
503 Service Unavailable サービスが利用できないため、操作を完了できませんでした。 この状況は、ネットワーク接続またはサービスの可用性の問題が原因で発生する可能性があります。 操作を再試行しても問題ありません。 問題が解決しない場合は、サポートにお問い合わせください。

HTTP サブステータス コード

Azure Cosmos DB で Customer-Managed キー (CMK) を使用する場合、エラーが発生した場合、Azure Cosmos DB は応答で HTTP サブステータス コードと共にエラーの詳細を返します。 このサブステータス コードを使用して、問題の根本原因をデバッグできます。 現在、Azure Cosmos DB では、次のサブステータス コードがサポートされています。

サーバー側の問題のサブステータス コード

次のサブステータス コードは、サーバー側の問題に対して Azure Cosmos DB でサポートされています。

Substatus コード 説明
4000 (Azure AD トークンの取得/アクセスに失敗しました) このエラーは、Azure Cosmos DB が Azure Active Directory (Azure AD) アクセス トークンを取得できない場合に発生します。 このトークンは、Azure Cosmos DB がKey Vaultにアクセスするために必要です。 このエラーは、ネットワークの問題またはデータ センターの問題が原因で発生する可能性があり、ユーザーがアクションを実行できるものではありません。 Azure Cosmos DB チームに連絡して問題を解決するための サポート 要求 を作成します。
4001 (Azure AD サービスは利用できません) このエラーは、Azure AD サービスがダウンしているか、問題がある場合に発生します。 Azure 停止ダッシュボードをチェックして、既存の停止があるかどうかを確認できます。 これらの停止は通常、数時間以内に解決されます。 Azure AD チームに連絡して、表示されている問題を知らせるのに最適です。 Azure AD チームが問題がないことを検出した場合は、解決のために Azure Cosmos DB チームに連絡するための サポート 要求 を作成します。
4004 (Key Vault サービスは利用できません) このエラーは、Azure Cosmos DB がKey Vaultへのアクセスを試みたが、サービスが利用できない場合に発生します。 これは、ネットワークの問題がKey Vaultに到達したか、サービス自体がダウンしている可能性があります。 Azure 停止ダッシュボードをチェックして、既存の停止があるかどうかを確認できます。 これらの停止は通常、数時間以内に解決されます。 Key Vault チームに連絡して、表示されている問題を知らせるのに最適です。 Key Vault チームが問題がないことを検出した場合は、解決のために Azure Cosmos DB チームに連絡するためのサポート 要求を作成します。
4007 (内部サーバー エラー) これは内部サーバー エラーであり、入力バイトが base64 形式でない場合に発生します。
4008 (内部サービス エラー Key Vault) このエラーは、Azure Cosmos DB がKey Vaultにアクセスできない場合に発生します。 ネットワークの問題が原因であるか、Key Vault サービス自体がダウンしている可能性があります。 Azure 停止ダッシュボードをチェックして、既存の停止があるかどうかを確認できます。 これらの停止は通常、数時間以内に解決されます。 Key Vault チームに連絡して、表示されている問題を知らせるのに最適です。 Key Vault チームが問題がないことを検出した場合は、Azure Cosmos DB チームに連絡して解決してください。
1013 (コレクションの作成操作が進行中) コレクションの作成時にタイムアウト例外が発生した場合は、コレクションが正常に作成されたかどうかを確認する読み取り操作を実行します。 この読み取り操作では、コレクションの作成操作が成功するまで例外がスローされます。 読み取り操作で状態コード 404、サブ状態コード 1013 の例外がスローされた場合は、コレクションの作成操作がまだ進行中であることを意味します。 200 または 201 の状態コードが表示されるまで、読み取り操作を再試行します。これらのコードにより、コレクションが正常に作成されたことが通知されます。

エンドユーザーの問題のサブステータス コード

エンド ユーザーによって発生する問題については、次のサブステータス コードが Azure Cosmos DB でサポートされています。

Substatus コード 説明
4002 (Key Vaultは Azure AD にアクセス許可を付与しないか、キーが無効になっています) この問題は、Key Vaultアクセス ポリシーから Azure Cosmos DB ID を削除した場合、またはキーを無効にした場合に発生します。 この問題は通常、エンド ユーザーによって発生します。 このエラーが発生した場合は、Azure Cosmos DB がKey Vaultにアクセスでき、キーが有効になっていることを確認します。
4003 (キーが見つかりません) この問題は、キーがKey Vaultから削除された場合に発生します。 この問題は通常、エンド ユーザーによって発生します。 カスタマー マネージド キーで Azure Cosmos DB を使用するための前提条件の 1 つは、Key Vaultで論理的な削除と消去保護が有効になっているということです。 つまり、削除されたキーを回復し、Azure Cosmos DB へのアクセスを復元できます。
4005 (キーをラップまたはラップ解除できません) このエラーは、Key Vaultがキーをラップまたはラップ解除できない場合に発生します。 この問題は通常、エンド ユーザーによって発生します。 このエラーの原因の 1 つは、キーをローテーションしたため、Key Vaultが最新のキーを使用して暗号化された BLOB をデコードできなかったためです。 このエラーを解決するには、最近無効になったキーを有効にすると、約 1 時間で解決されます。 2 時間以上経過しても問題が解決しない場合は、Azure Cosmos DB に問題を渡します。
4006 (キー URL が無効です) このエラーは、Key Vault URL にキーバージョンを含める場合、プロビジョニング中に発生します。 このエラーは、多くの場合、エンド ユーザーによって発生します。 このエラーを解決するには、バージョンを削除してからやり直してください。 たとえば、 という形式 https://<KeyVaultName>.vault.azure.net/keys/<KeyName>/<KeyVersion>で URL を使用している場合は、 に更新します。 https://<KeyVaultName>.vault.azure.net/keys/<KeyName>/
4009 (Key Vault DNS 名を解決できません) このエラーは、正しくないKey Vault名を使用したため、Key Vault DNS 名を解決できなかった場合に発生します。 このエラーは、エンド ユーザーによって発生します。 解決するには、Key Vault名を修正して、もう一度やり直してください。

参照