Table of contents

エラー コードとエラー処理 | Graph API の概念Error codes and error handling | Graph API concepts

Jimaco Brannian|最終更新日: 2018/06/19
|
2 投稿者

適用対象: Graph API | Azure Active Directory (AD)Applies to: Graph API | Azure Active Directory (AD)

Azure Active Directory (AD) Graph API を使用するクライアント アプリケーションでは、さまざまな状況に可能な限り適切に対応し、顧客にとって最善となるユーザー エクスペリエンスを実現するため、エラー処理ロジックを実装する必要があります。 Client applications that use the Azure Active Directory (AD) Graph API should implement error handling logic to react as gracefully as possible to varying conditions and provide the best experience possible to their customers.このトピックでは、Azure AD Graph API で発生するエラーの種類について説明し、その対処方法の一般的指針を示します。The topic discusses the types of errors that the Azure AD Graph API returns and provides general guidance on how to handle them.

重要

Azure Active Directory のリソースにアクセスするには、Azure AD Graph API ではなく Microsoft Graph を使用することを強くお勧めします。We strongly recommend that you use Microsoft Graph instead of Azure AD Graph API to access Azure Active Directory resources.現在は Microsoft Graph を中心にして開発が進められており、Azure AD Graph API の今後の機能強化は予定されていません。Our development efforts are now concentrated on Microsoft Graph and no further enhancements are planned for Azure AD Graph API.Azure AD Graph API の使用が適切である場合もありますが、非常にまれです。詳細については、Office Dev Center の Microsoft Graph または Azure AD Graph ブログの記事をご覧ください。There are a very limited number of scenarios for which Azure AD Graph API might still be appropriate; for more information, see the Microsoft Graph or the Azure AD Graph blog post in the Office Dev Center.

Graph API エラーの処理 Handling Graph API errors

エラーの種類Types of errors

Graph API に発生するエラーは、以下のカテゴリに分けることができます。Graph API errors occur in the following categories.

  • クライアント エラーClient Errors.クライアント エラーは、HTTP 状態コードの 400 番台に相当します。Client errors are represented by 400-series HTTP status codes.これには、無効な値、オブジェクトに必要なプロパティまたはプロパティの値の不足、存在しないリソースに対するアクセスの試行、読み取り専用プロパティを更新しようとする操作、必要な認証トークンの不足などがあります。They include objects with invalid values, objects that are missing required properties or property values, attempting to access a non-existent resource, attempting to update a read-only property, and omitting the required authorization token.この種のエラーを解決するには、リクエストの再試行に先立って原因となった問題を修正する必要があります。To resolve these errors, fix the underlying issue before retrying the request.
  • サーバー エラーServer Errors.サーバー エラーは、ディレクトリの一時的な障害など、HTTP 状態コードの 500 番台に相当するものです。Server errors are represented by 500-series HTTP status codes, such as a transient directory failure.この種のエラーはほとんどが一時的なものであり、リクエストを再試行することによって解決が可能です。Most of these errors are transient and can be resolved by retrying the request.
  • ネットワーク/プロトコル エラーNetwork/Protocol Errors.リクエストの送信時や応答の受信時には、ホスト名の解決エラー、処理完了前の接続終了、SSL ネゴシエーション エラーなど、ネットワーク関連のさまざまなエラーが発生する可能性があります。A variety of network-related errors can occur while sending a request or receiving a response, such as host name resolution errors, prematurely closed connections, and SSL negotiation errors.この種のエラーはほとんどが、再試行によって解決するものではありません。根底にある問題を解決する必要があります。Most of these errors cannot be resolved by retrying; the underlying issue has to be fixed.ただし、ホスト名の解決エラーやタイムアウトなど、一部のエラーについてはリクエストを再試行することによって解決することがあります。However, some errors, such as host-name resolution failures or timeouts, might be resolved by retrying the request.

エラー メッセージの構造Error message structure

Graph API のエラーには、HTTP 状態コード、メッセージ、および値から成る本文があります。Graph API errors have a formatted body that consists of an HTTP status code, a message, and values.エラー処理のロジックでは、エラー本文のプロパティを使用します。Use the properties of the error body in your error handling logic.

: 一部の HTTP 応答では、コード/メッセージ/値の形式の応答本文がないことがあります。これは、リクエストがプロキシおよびゲートウェイのサービスによりルーティングされていることによるものです。Note: Some HTTP responses might not include the code/message/values response body because the request is routed through proxy and gateway services.既定のロジックは、HTTP 状態コードのみに基づいてエラーを処理できるものにしてください。Be sure to include default logic that can handle errors based on the HTTP status code alone.

以下の例は、HTTP 400 Request_BadRequest エラーの例です。The following is an example of an HTTP 400 Request_BadRequest error.

 HTTP/1.1 400 Bad Request
 Content-Type: application/json;odata=minimalmetadata;charset=utf-8
 request-id: ddca4a7e-02b1-4899-ace1-19860901f2fc
 Date: Tue, 02 Jul 2013 01:48:19 GMT
 …
 
 {
     "odata.error" : {
         "code" : "Request_BadRequest",
         "message" : {
             "lang" : "en",
             "value" : "A value is required for property 'mailNickname' of resource 'Group'."
         },
     "values" : null
    }
 }

エラー メッセージの本文には、code、message、および values のプロパティがあります。Each message body has code, message, and values properties.

  • code: コードに応じて分岐するようなエラー処理ロジックを設計します。Code: Design your error-handling logic to branch based on the code.

    "code" : "Request_BadRequest"
    
  • message: 人間が読むことができるエラー メッセージを表す言語と値の組み合わせです。Message: A language/value tuple that represents a human-readable error message.内容は、value フィールドにあります。The content is in the value field.以下の例では、mailNickname プロパティに値が存在しないためにリクエストがエラーとなっています。In the following example, the request fails because the value of the mailNickname property is missing.

    "message" : {
         "lang" : "en",
         "value" : "A value is required for property 'mailNickname' of resource 'Group'."
    }
    
  • Values: エラーの性質に関する詳細を示すための名前と値のペアの集合です。Values: A collection of name/value pairs that provide more information about the nature of the failure.以下の例に値は含まれていません。In the following example no values are included.

    "values" : null
    

エラー コード リファレンス Error code reference

HTTP エラー コード HTTP error codes

次の表に、Graph API のエラー コード、エラー メッセージ、およびエラーを修正するときに検討すべきアクションを一覧します。The following table lists Graph API error codes, error messages, and actions to consider when correcting errors.

一般に、HTTP 500 番台のエラーは、徐々に長くなる時間間隔にわたって分布し ("バックオフ間隔のある再試行")、ランダムな分布係数を持つ再試行に応答します。In general, HTTP 500-series errors respond to retries, preferably distributed over increasingly long time intervals ("retry with a back-off interval") and with a random distribution factor.400 番台のエラーは再試行する前に解決する必要がある問題を示しています。400-series errors indicate a problem that must be fixed before retrying.

HTTP 状態コードHTTP Status Codeエラー コードError codeエラー メッセージError message説明Details
400400Directory_ExpiredPageTokenDirectory_ExpiredPageToken指定したページのトークンの値は有効期限が切れており、要求に含めることはできません。The specified page token value has expired and can no longer be included in your request.
400400Directory_ResultSizeLimitExceededDirectory_ResultSizeLimitExceeded結果のサイズの制限を超えましたResult Size Limit was Exceeded要求が関連付けられている結果が多すぎるため、要求を処理できません。The request cannot be fulfilled because it is associated with too many results.このエラーはめったに発生しません。This error occurs very infrequently.
400400DomainVerificationCodeNotFoundDomainVerificationCodeNotFound一致する確認コードを持つ TXT レコードが確認プロセスで検出できないため、ドメインの確認が失敗します。Domain verification fails because the verification process cannot find the TXT record with matching verification code.
400400ObjectConflictObjectConflictこの会社の未確認のドメインにこのドメイン名が既に存在します。The domain name already exists in an unverified domain in this company.
400400ObjectConflictObjectConflictこの会社の確認済みドメインにこのドメイン名が既に存在します。The domain name already exists in a verified domain in this company.
400400ObjectInUseObjectInUseユーザー、グループ、またはマルチテナント アプリケーションで現在参照されているドメインを削除できません。Cannot delete the domain currently referenced by a user, group or multi-tenant application
400400ObjectPendingDeletionObjectPendingDeletion削除が保留になっている既存のドメインを確認できません。Cannot verify a an existing domain which is pending deletion.
400400ObjectPendingTakeoverObjectPendingTakeoverテナント引き継ぎのプロセスでドメインを削除することができません。Cannot delete a domain in the process of a tenant takeover
400400Request_BadRequestRequest_BadRequest正しくない要求です。Bad request.再試行前に要求を修正してください。Please fix the request before retrying.無効なプロパティ値やサポートされていないクエリの引数など、要求に含まれるエラーを示します。Indicates an error in the request, such as an invalid property value or an unsupported query argument.再試行する前に、要求を修正してください。Fix the request before retrying.
400400Request_DataContractVersionMissingRequest_DataContractVersionMissingデータ コントラクト バージョン パラメーターがありません。Data contract version parameter is missing.すべての要求にクエリ パラメーターとして api-version を含めてください。Include api-version as a query parameter with all your requests.
400400Request_InvalidDataContractVersionRequest_InvalidDataContractVersion指定した api-version は無効です。The specified api-version is invalid.値はサポートされているバージョンと正確に一致する必要があります。The value must exactly match a supported version.
400400Request_InvalidRequestUrlRequest_InvalidRequestUrl要求 URL が無効でした。Request url was invalid.要求は /tenantdomainname/Entity または /$metadata のようにする必要があります。The request should be like /tenantdomainname/Entity or /$metadata.テナントのドメイン名は、確認済みまたは未確認のドメイン名かコンテキスト ID にすることができます。Tenant domain name can be any of the verified, unverified domain names or context id.
400400Request_UnsupportedQueryRequest_UnsupportedQueryGET 要求はサポートされていません。The GET request is unsupported.要求パラメーターを修正し、もう一度実行してください。Fix the request parameters and try again.
401401Authentication_ExpiredTokenAuthentication_ExpiredTokenアクセス トークンの有効期限が切れています。Your access token has expired.要求を送信する前にトークンを更新してください。Please renew it before submitting the request.アクセス トークンの有効期限が切れています。Access token has expired.トークンを更新し、再実行してください。Renew the token and then resubmit.
401401Authentication_MissingOrMalformedAuthentication_MissingOrMalformedアクセス トークンがないか、または正しくありません。Access Token missing or malformed.承認ヘッダーの access_token 値がないか、正しくありません。The access_token value in the authorization header is missing or malformed.この値は必須です。This value is required.認証トークンの値を使用します。Use the value in the authentication token.
401401Authorization_IdentityDisabledAuthorization_IdentityDisabled呼び出し元アプリケーションのプリンシパルが無効になっています。The calling application principal is disabled.アクセス トークンで指定されたプリンシパルがディレクトリにありますが、無効になっています。The principal specified in the access token is in the directory, but is it disabled.ディレクトリ内のアカウントを再度有効にし、もう一度やり直してください。Re-enable the account in the directory, and try again.
401401Authorization_IdentityNotFoundAuthorization_IdentityNotFound呼び出し元アプリケーションの ID を確立できませんでした。The identity of the calling application could not be established.アクセス トークンで指定されたプリンシパルが、ディレクトリ内に見つかりませんでした。The principal specified in the access token was not found in the directory.これは、トークンが古いとき、プリンシパルがディレクトリから削除されたとき、またはディレクトリの同期が遅れているときに発生する可能性があります。This might occur because the token is stale, the principal was deleted from the directory, or directory synchronization is delayed.
403403Authentication_UnauthorizedAuthentication_Unauthorized許可されていない要求です。Unauthorized request.トークンに、無効な要求またはサポートされていない要求が含まれています。The token contains invalid or unsupported claims.要求トークンを再度取得し、要求を再試行してください。Get the request token again and then retry the request.
403403Authorization_RequestDeniedAuthorization_RequestDenied指定された資格情報に、この要求を行うための十分な特権がありません。The specified credentials do not have sufficient privileges to make this request.十分な特権がないために、要求が拒否されます。The request is denied due to insufficient privileges.たとえば、管理者以外のプリンシパルにリソースを削除する権限がありません。For example, a non-administrative principal does not have permission to delete a resource.
403403Directory_QuotaExceededDirectory_QuotaExceeded{tenantName} のディレクトリ オブジェクトのクォータ制限を超えました。The directory object quota limit for the {tenantName} has been exceeded.クォータ制限を増やすか、オブジェクトを削除して使用済みのクォータを減らすように、管理者に依頼してください。Please ask your administrator to increase the quota limit or delete objects to reduce the used quota.ディレクトリ クォータを超えました。A directory quota has been exceeded.テナントにあるオブジェクトが多すぎるか、オブジェクトが持つ値が多すぎます。The tenant might have too many objects or the objects might have too many values.これは、プリンシパル用に作成されるオブジェクトが多すぎるときにも発生します。This also occurs when too many objects are created on for the principal.テナントまたはプリンシパルの最大許容オブジェクト数を増やすか、作成/更新要求に含まれる値の数を減らしてください。Increase the maximum allowed object count for the tenant or principal, or reduce the number of values included in the create/update request.
404404Directory_ObjectNotFoundDirectory_ObjectNotFoundディレクトリから会社情報を読み取ることができません。Unable to read the company information from the directory.
404404Request_ResourceNotFoundRequest_ResourceNotFoundリソース {resource} が存在しないか、クエリ対象の参照プロパティ オブジェクトの 1 つがありません。Resource {resource} does not exist or one of its queried reference-property objects are not present.URI で識別されたリソースが存在しません。The resource identified by the URI does not exist.値を修正し、要求を再試行してください。Revise the value and retry the request.
409409Request_MultipleObjectsWithSameKeyValueRequest_MultipleObjectsWithSameKeyValue予期されていた結果は 1 つのリソースでしたが、複数のリソースが見つかりました。A single resource was expected for the result, but multiple resources were found.競合を解決するためにオブジェクトを更新してください。Please update the object(s) to resolve the conflict.このエラーは、同じキー値を持つ 2 つ以上のオブジェクトがある場合に発生することがあります。たとえば、同じ UserPrincipalName のユーザーが 2 人いる場合です。This error can occur when there are two or more objects that have the same key value, e.g. when two users have the same UserPrincipalName.
429429要求が多すぎます。Too Many Requests.要求に対してスロットルが発生している場合に、このエラーが発生します。This error occurs when requests are being throttled.応答ヘッダーの Retry-After 値で、推奨される待機時間が返されます。A suggested wait time is returned in the Retry-After value of the response header.推奨される秒数を待機した後に、要求を再試行してください。Retry the request after waiting the recommended number of seconds.
500500Service_InternalServerErrorService_InternalServerError内部サーバー エラーが発生しました。Encountered an internal server error.要求の処理中の内部サーバー エラーです。Internal server error while processing the request.
502502[All][All]“...サービスを利用できません..."“... Service Unavailable...”ゲートウェイまたはプロキシとして動作しているサーバーで、要求の処理中に別のサーバーからのエラーが発生しました。A server acting as a gateway or proxy encountered an error from another server while processing the request.数分待ってから、要求を再試行してください。Wait a few minutes and then retry the request.
503503Directory_ConcurrencyViolationDirectory_ConcurrencyViolationテナントに同時実行要求が発生した場合のエラーです。Error due to concurrent requests being made to the tenant.しばらくしてから、再試行してください。Please wait briefly and retry.
503503DNS の確認中にエラーが発生しました (注: DNS が現在ダウンしているなど、さまざまな理由で発生することがあります)。Error encountered during DNS verification (note: Can be caused by various reasons such as DNS is currently down).
Authentication_UnknownAuthentication_Unknown内部サーバー エラーです。Internal server error.このエラー コードは、他のエラー コードが適用されない場合に使用されます。This error code is used when other error codes do not apply.
Authentication_UnsupportedTokenTypeAuthentication_UnsupportedTokenType提示されたトークンの型は処理されません。The type of token presented is not handled.ベアラー トークンだけがサポートされます。Only bearer tokens are supported.トークンの型がサポートされていません。The token type is not supported.要求を再試行する前に、トークンの型を修正してください。Revise the token type before trying the request again.
Directory_BindingRedirectionDirectory_BindingRedirectionテナント情報をローカルで入手できません。Tenant information is not available locally.次の URL を使用して情報を入手してください。Use the following Urls to get the information.テナントのパーティションがデータセンターで入手できない場合、クライアントは応答で返される URL に接続する必要があります。When the tenant partition is not available in the datacenter, clients must connect to the URl returned in the response.
Directory_BindingRedirectionInternalServerErrorDirectory_BindingRedirectionInternalServerErrorテナント情報をローカルで入手できません。Tenant information is not available locally.最も近いデータセンターのエンドポイントの設定中に、サーバーで内部エラーが発生しました。The server encountered an internal error while trying to populate the nearest datacenter endpoints.バインド リダイレクト例外が発生したとき、サービスの最も近いデータセンターのエンドポイントの一覧が設定されます。When a binding redirection exception occurs, the list of nearest datacenter endpoints for the service is populated.このエラーは、一覧を設定するときの例外を示しています。This error indicates an exception when populating the list.クエリを再試行してください。Try the query again.
Directory_CompanyNotFoundDirectory_CompanyNotFoundディレクトリから会社情報を読み取ることができません。Unable to read the company information from the directory.ディレクトリ サービスから会社情報を読み込み中に、エラーが発生しました。An error occurred while loading company information from the directory service.
Directory_ReplicaUnavailableDirectory_ReplicaUnavailable優先されるレプリカを使用できません。The preferred replica is unavailable.レプリカ セッション キー ヘッダーなしで再試行してください。Please retry without any replica session key header.x-ms-replica-session-key ヘッダーを省略し、再試行してください。Omit the x-ms-replica-session-key header and then retry.
Headers_DataContractVersionMissingHeaders_DataContractVersionMissingデータ コントラクト バージョン ヘッダーがありません。The data contract version header is missing.要求に x-ms-dirapi-data-contract-version を含めてください。Include x-ms-dirapi-data-contract-version in your request.要求にクライアント コントラクト バージョンがありません。The client contract version is missing from the request.
Headers_HeaderNotSupportedHeaders_HeaderNotSupported現在、ヘッダー {0} はサポートされていません。Header {0} is not currently supported.要求に、サポートされていない HTTP ヘッダーが含まれています。The request contains an unsupported HTTP header.ヘッダーを変更し、要求を再試行してください。Change the header and try the request again.
Request_InvalidReplicaSessionKeyRequest_InvalidReplicaSessionKey指定されたレプリカ セッション キーが無効です。The replica session key provided is not valid.レプリカ セッション キーを修正し、要求を再試行してください。Fix the replica session key and try the request again.
Request_ThrottledPermanentlyRequest_ThrottledPermanently要求は永続的に調整されます。Your request is throttled permanently.問題に対処するためにサポートに電話してください。Please call support to address the issue.テナントは、何度もトークンの要求レートの制限を超えました。The tenant repeatedly and persistently exceeded the token request rate limit.このテナントからの要求は、サービスが再ネゴシエートされるまで拒否されます。Requests from the tenant are rejected until the service is renegotiated.支援が必要な場合は、Microsoft サポートに連絡してください。For help, contact Microsoft Support.

その他のリソースAdditional resources

© 2018 Microsoft