Microsoft Graph のエラー応答とリソースの種類Microsoft Graph error responses and resource types

Microsoft Graph のエラーは、標準の HTTP 状態コード、および JSON エラー応答オブジェクトを使用して返されます。Errors in Microsoft Graph are returned using standard HTTP status codes, as well as a JSON error response object.

HTTP 状態コードHTTP status codes

次の表は、返される可能性のある HTTP ステータス コードの一覧とその説明を示します。The following table lists and describes the HTTP status codes that can be returned.

状態コードStatus code ステータス メッセージStatus message 説明Description
4004.0.0 要求が正しくありません (Bad Request)Bad Request 形式が正しくない、または無効なため、要求を処理できません。Cannot process the request because it is malformed or incorrect.
401401 権限がありません (Unauthorized)Unauthorized リソースの必要な認証情報が見つからないか、無効です。Required authentication information is either missing or not valid for the resource.
403403 禁止されていますForbidden 要求されたリソースへのアクセスが拒否されました。ユーザーに十分なアクセス許可がない可能性があります。 Access is denied to the requested resource. The user might not have enough permission.

重要: 条件付きアクセス ポリシーがリソースに適用される場合、HTTP 403; Forbidden error=insufficent_claims が返される場合があります。Important: If conditional access policies are applied to a resource, a HTTP 403; Forbidden error=insufficent_claims may be returned. Microsoft Graph と条件付きアクセスの詳細は、「Azure Active Directory の条件付きアクセスについての開発者ガイド」を参照してください。For more details on Microsoft Graph and conditional access see Developer Guidance for Azure Active Directory Conditional Access
404404 errors 見つかりません (Not Found)Not Found 要求されたリソースは存在しません。The requested resource doesn’t exist.
405405 メソッドが許可されていません (Method Not Allowed)Method Not Allowed 要求の HTTP メソッドはリソースで許可されていません。The HTTP method in the request is not allowed on the resource.
406406 許容されません (Not Acceptable)Not Acceptable このサービスでは、Accept ヘッダーで要求された形式をサポートしていません。This service doesn’t support the format requested in the Accept header.
409409 競合 (Conflict)Conflict 現在の状態が要求に必要なものと競合しています。たとえば、指定された親フォルダーが存在しない可能性があります。The current state conflicts with what the request expects. For example, the specified parent folder might not exist.
4104.1.0 使用されていないリソース (Gone)Gone 要求されたリソースはサーバーで使用できなくなっています。The requested resource is no longer available at the server.
4114.11 長さが必要 (Length Required)Length Required 要求に Content-Length ヘッダーが必要です。A Content-Length header is required on the request.
4124.12 必須条件に失敗しました (Precondition Failed)Precondition Failed 要求で提供されている必須条件 (If-match ヘッダーなど) がリソースの現在の状態と一致しません。A precondition provided in the request (such as an if-match header) does not match the resource's current state.
4134.13 要求エンティティが大きすぎます (Request Entity Too Large)Request Entity Too Large 要求サイズが上限を超えています。The request size exceeds the maximum limit.
4154.15 メディアの種類がサポートされていません (Unsupported Media Type)Unsupported Media Type 要求のコンテンツの種類がサービスによってサポートされていない形式です。The content type of the request is a format that is not supported by the service.
4164.16 要求された範囲が満たされません (Requested Range Not Satisfiable)Requested Range Not Satisfiable 指定したバイト範囲が正しくない、または利用できません。The specified byte range is invalid or unavailable.
422422 処理できないエンティティです (Unprocessable Entity)Unprocessable Entity 意味的に正しくないため、要求を処理できません。Cannot process the request because it is semantically incorrect.
423423 ロックされていますLocked アクセスしているリソースがロックされています。The resource that is being accessed is locked.
429429: 要求数が多すぎます (Too Many Requests)Too Many Requests クライアント アプリケーションは調整されており、一定の時間が経過するまで要求を繰り返しません。Client application has been throttled and should not attempt to repeat the request until an amount of time has elapsed.
500-500% 内部サーバー エラー (Internal Server Error)Internal Server Error 要求の処理中に内部サーバー エラーが発生しました。There was an internal server error while processing the request.
501501 実装されていません (Not Implemented)Not Implemented 要求された機能は実装されていません。The requested feature isn’t implemented.
503HTTP 503 サービスは利用できませんService Unavailable メンテナンスまたは過負荷のため、このサービスは一時的に利用できません。後で要求を繰り返すことができます。期間については、Retry-After ヘッダーで指定されている可能性があります。The service is temporarily unavailable for maintenance or is overloaded. You may repeat the request after a delay, the length of which may be specified in a Retry-After header.
504504 ゲートウェイ タイムアウトGateway Timeout プロキシとして動作しているサーバーが、要求を完了しようとするときにアクセスが必要なアップストリーム サーバーからの応答を時間内に受信しませんでした。503 と同時に発生する場合があります。The server, while acting as a proxy, did not receive a timely response from the upstream server it needed to access in attempting to complete the request. May occur together with 503.
507507 ms 記憶域の不足 (Insufficient Storage)Insufficient Storage 記憶域の最大クォータに達しました。The maximum storage quota has been reached.
509509 帯域幅の上限を超えました (Bandwidth Limit Exceeded)Bandwidth Limit Exceeded 帯域幅の上限を超えたため、アプリケーションが調整されました。さらに時間が経過すると、アプリは要求を再試行できます。Your app has been throttled for exceeding the maximum bandwidth cap. Your app can retry the request again after more time has elapsed.

エラー応答は、エラーという名前の 1 つのプロパティを含む 1 つの JSON オブジェクトです。このオブジェクトには、すべてのエラーの詳細が含まれます。HTTP 状態コードの代わりに、またはこれに加えて、ここに返される情報を使用することができます。完全な JSON エラー本体の例を以下に示します。The error response is a single JSON object that contains a single property named error. This object includes all the details of the error. You can use the information returned here instead of or in addition to the HTTP status code. The following is an example of a full JSON error body.

{
  "error": {
    "code": "invalidRange",
    "message": "Uploaded fragment overlaps with existing data.",
    "innerError": {
      "requestId": "request-id",
      "date": "date-time"
    }
  }
}

エラー リソースの種類Error resource type

要求の処理中にエラーが発生するたびに、エラー リソースが返されます。The error resource is returned whenever an error occurs in the processing of a request.

エラー応答は、エラー応答に対する OData v4 仕様の定義に従います。Error responses follow the definition in the OData v4 specification for error responses.

JSON 表記JSON representation

エラー リソースは、これらのリソースで構成されます。The error resource is composed of these resources:

{
  "error": { "@odata.type": "odata.error" }  
}

odata.error のリソースの種類odata.error resource type

エラー内で、応答は次のプロパティを含むエラー リソースです。Inside the error response is an error resource that includes the following properties:

{
  "code": "string",
  "message": "string",
  "innererror": { "@odata.type": "odata.error" }
}
プロパティ名Property name Value 説明\Description\
codecode stringstring 発生したエラーのエラー コード文字列An error code string for the error that occured
messagemessage stringstring 発生したエラーに関する開発者用メッセージ。これはユーザーには直接表示されません。A developer ready message about the error that occured. This should not be displayed to the user directly.
innererrorinnererror error objecterror object 省略可能。最上位レベルのエラーよりも詳細である可能性のある追加のエラー オブジェクト。Optional. Additional error objects that may be more specific than the top level error.

コードのプロパティCode property

code プロパティには次のいずれかの値が含まれます。アプリは、これらのエラーのいずれかを処理するように準備する必要があります。The code property contains one of the following possible values. Your apps should be prepared to handle any one of these errors.

コードCode 説明Description
accessDeniedaccessDenied 呼び出し元にアクションを実行するアクセス許可がありません。The caller doesn't have permission to perform the action.
activityLimitReachedactivityLimitReached アプリまたはユーザーが調整されました。The app or user has been throttled.
generalExceptiongeneralException 不明なエラーが発生しました。An unspecified error has occurred.
invalidRangeinvalidRange 指定したバイト範囲が正しくない、または利用できません。The specified byte range is invalid or unavailable.
invalidRequestinvalidRequest 要求は形式が正しくないか、無効です。The request is malformed or incorrect.
itemNotFounditemNotFound リソースが見つかりませんでした。The resource could not be found.
malwareDetectedmalwareDetected 要求されたリソースでマルウェアが検出されました。Malware was detected in the requested resource.
nameAlreadyExistsnameAlreadyExists 指定されたアイテム名は既に存在します。The specified item name already exists.
notAllowednotAllowed このアクションはシステムで許容されません。The action is not allowed by the system.
notSupportednotSupported 要求はシステムでサポートされていません。The request is not supported by the system.
resourceModifiedresourceModified 呼び出し元による最後の読み取り以降に、更新されるリソースが変更されました。通常、eTag の不一致です。The resource being updated has changed since the caller last read it, usually an eTag mismatch.
resyncRequiredresyncRequired デルタ トークンは無効になりました。アプリが同期状態をリセットする必要があります。The delta token is no longer valid, and the app must reset the sync state.
serviceNotAvailableserviceNotAvailable サービスが利用できません。後で要求をもう一度お試しください。Retry-After ヘッダーがある可能性があります。The service is not available. Try the request again after a delay. There may be a Retry-After header.
quotaLimitReachedquotaLimitReached ユーザーがクォータ制限に達しました。The user has reached their quota limit.
unauthenticatedunauthenticated 呼び出し元が認証されていません。The caller is not authenticated.

innererror オブジェクトには、さらに詳細な追加のエラー コードを持つ別の複数の innererror オブジェクトが再帰的に含まれる可能性があります。エラーを処理する際に、アプリは使用可能なすべてのエラー コード間をループして、アプリが理解する最も詳細なコードを使用する必要があります。より詳細なコードの一部は、このページの下部に一覧表示されています。The innererror object might recursively contain more innererror objects with additional, more specific error codes. When handling an error, apps should loop through all the error codes available and use the most detailed one that they understand. Some of the more detailed codes are listed at the bottom of this page.

エラー オブジェクトが予期したとおりのエラーであることを確認するには、innererror オブジェクト全体をループして、予期したエラー コードを検索する必要があります。次に例を示します。To verify that an error object is an error you are expecting, you must loop over the innererror objects, looking for the error codes you expect. For example:

public bool IsError(string expectedErrorCode)
{
    OneDriveInnerError errorCode = this.Error;
    while (null != errorCode)
    {
        if (errorCode.Code == expectedErrorCode)
            return true;
        errorCode = errorCode.InnerError;
    }
    return false;
}

エラーを正しく処理する方法を示す例については、「エラー コードの処理」を参照してください。For an example that shows how to properly handle errors, see Error Code Handling.

ルートにある message プロパティには、開発者が読み取ることを目的としたエラー メッセージが含まれます。エラー メッセージはローカライズされておらず、直接ユーザーに表示すべきではありません。エラーを処理する際に、コードは message 値を入力するべきではありません。これらの値はいつでも変更でき、多くの場合失敗した要求に固有の動的情報が含まれるためです。code プロパティで返されるエラー コードに対してのみ、コードを記述する必要があります。The message property at the root contains an error message intended for the developer to read. Error messages are not localized and shouldn't be displayed directly to the user. When handling errors, your code should not key off of message values because they can change at any time, and they often contain dynamic information specific to the failed request. You should only code against error codes returned in code properties.

詳細なエラー コードDetailed error codes

入れ子になった innererror オブジェクト内でアプリが検出する可能性のある他のエラーの一部を、以下に示します。アプリでこれらの処理を行うことは必須ではありませんが、処理することもできます。サービスでは常に新しいエラー コードが追加されたり、以前のコードが返されなくなったりすることがあります。そのため、基本のエラー コードをすべてのアプリが処理できることが重要です。The following are some additional errors that your app might encounter within the nested innererror objects. Apps are not required to handle these, but can if they choose. The service might add new error codes or stop returning old ones at any time, so it is important that all apps be able to handle the basic error codes.

コードCode 説明Description
accessRestrictedaccessRestricted アイテムの所有者に限定されたアクセス。Access restricted to the item's owner.
cannotSnapshotTreecannotSnapshotTree 一貫性のあるデルタ スナップショットを取得できませんでした。後でもう一度お試しください。Failed to get a consistent delta snapshot. Try again later.
childItemCountExceededchildItemCountExceeded 子アイテムの上限数に達しました。Max limit on the number of child items was reached.
entityTagDoesNotMatchentityTagDoesNotMatch eTag が現在のアイテムの値と一致しません。ETag does not match the current item's value.
fragmentLengthMismatchfragmentLengthMismatch このフラグメントの宣言された合計サイズは、アップロード セッションのものとは異なります。Declared total size for this fragment is different from that of the upload session.
fragmentOutOfOrderfragmentOutOfOrder アップロードされたフラグメントが順不同です。Uploaded fragment is out of order.
fragmentOverlapfragmentOverlap アップロードされたフラグメントが既存のデータと重複しています。Uploaded fragment overlaps with existing data.
invalidAcceptTypeinvalidAcceptType 承諾の種類が正しくありません。Invalid accept type.
invalidParameterFormatinvalidParameterFormat パラメーターの書式が正しくありません。Invalid parameter format.
invalidPathinvalidPath 名前に使用できない文字が含まれています。Name contains invalid characters.
invalidQueryOptioninvalidQueryOption クエリのオプションが正しくありません。Invalid query option.
invalidStartIndexinvalidStartIndex 開始インデックスが正しくありません。Invalid start index.
lockMismatchlockMismatch ロック トークンが既存のロックと一致しません。Lock token does not match existing lock.
lockNotFoundOrAlreadyExpiredlockNotFoundOrAlreadyExpired 現在、期限切れでないロックがアイテムにありません。There is currently no unexpired lock on the item.
lockOwnerMismatchlockOwnerMismatch ロック所有者の ID が提供された ID と一致しません。Lock Owner ID does not match provided ID.
malformedEntityTagmalformedEntityTag eTag ヘッダーの形式が正しくありません。eTag は、引用符で囲まれた文字列である必要があります。ETag header is malformed. ETags must be quoted strings.
maxDocumentCountExceededmaxDocumentCountExceeded ドキュメントの上限数に達しました。Max limit on number of Documents is reached.
maxFileSizeExceededmaxFileSizeExceeded ファイル サイズの上限を超えました。Max file size exceeded.
maxFolderCountExceededmaxFolderCountExceeded フォルダーの上限数に達しました。Max limit on number of Folders is reached.
maxFragmentLengthExceededmaxFragmentLengthExceeded ファイル サイズの上限を超えました。Max file size exceeded.
maxItemCountExceededmaxItemCountExceeded アイテムの上限数に達しました。Max limit on number of Items is reached.
maxQueryLengthExceededmaxQueryLengthExceeded クエリの長さの上限を超えました。Max query length exceeded.
maxStreamSizeExceededmaxStreamSizeExceeded ストリーム サイズの上限を超えました。Maximum stream size exceeded.
parameterIsTooLongparameterIsTooLong パラメーターの長さが上限を超えています。Parameter Exceeds Maximum Length.
parameterIsTooSmallparameterIsTooSmall パラメーターの値が最小値未満です。Parameter is smaller then minimum value.
pathIsTooLongpathIsTooLong パスの長さが上限を超えています。Path exceeds maximum length.
pathTooDeeppathTooDeep フォルダー階層の深さの限度に達しました。Folder hierarchy depth limit reached.
propertyNotUpdateablepropertyNotUpdateable プロパティを更新できません。Property not updateable.
resyncApplyDifferencesresyncApplyDifferences 再同期が必要です。最後に同期したときに、サービスをローカル変更に対して最新の状態にしたことが確実な場合、すべてのローカル項目をサーバーのバージョンと置き換えます (削除を含む)。サーバーが把握していないすべてのローカル変更をアップロードします。Resync required. Replace any local items with the server's version (including deletes) if you're sure that the service was up to date with your local changes when you last sync'd. Upload any local changes that the server doesn't know about.
resyncRequiredresyncRequired 再同期が必要です。Resync is required.
resyncUploadDifferencesresyncUploadDifferences 再同期が必要です。サービスが返さないすべてのローカル アイテムをアップロードして、サーバーのバージョンと異なるすべてのファイルをアップロードします (どちらがより最新の状態であるかわからない場合は、両方のコピーを保持する)。Resync required. Upload any local items that the service did not return, and upload any files that differ from the server's version (keeping both copies if you're not sure which one is more up-to-date).
serviceNotAvailableserviceNotAvailable サーバーが現在の要求を処理できません。The server is unable to process the current request.
serviceReadOnlyserviceReadOnly リソースが一時的に読み取り専用になっています。Resource is temporarily read-only.
throttledRequestthrottledRequest 要求数が多すぎます。Too many requests.
tooManyResultsRequestedtooManyResultsRequested 要求された結果が多すぎます。Too many results requested.
tooManyTermsInQuerytooManyTermsInQuery クエリ内のアイテムが多すぎます。Too many terms in the query.
totalAffectedItemCountExceededtotalAffectedItemCountExceeded 影響を受けるアイテム数がしきい値を超えているため、操作は許可されません。Operation is not allowed because the number of affected items exceeds threshold.
truncationNotAllowedtruncationNotAllowed データの切り捨ては許可されていません。Data truncation is not allowed.
uploadSessionFaileduploadSessionFailed アップロード セッションが失敗しました。Upload session failed.
uploadSessionIncompleteuploadSessionIncomplete アップロード セッションが完了していません。Upload session incomplete.
uploadSessionNotFounduploadSessionNotFound アップロード セッションが見つかりません。Upload session not found.
virusSuspiciousvirusSuspicious このドキュメントは疑わしいドキュメントであり、ウイルスを含んでいる可能性があります。This document is suspicious and may have a virus.
zeroOrFewerResultsRequestedzeroOrFewerResultsRequested ゼロ個以下の結果が要求されました。Zero or fewer results requested.