Microsoft Graph-Fehlerantworten und -RessourcentypenMicrosoft Graph error responses and resource types

Fehler in Microsoft Graph werden mithilfe der standardmäßigen HTTP-Statuscodes sowie eines JSON-Fehlerantwortobjekts zurückgegeben.Errors in Microsoft Graph are returned using standard HTTP status codes, as well as a JSON error response object.

HTTP-StatuscodesHTTP status codes

In der folgenden Tabelle werden die HTTP-Statuscodes aufgeführt und beschrieben, die zurückgegeben werden können.The following table lists and describes the HTTP status codes that can be returned.

StatuscodeStatus code StatusmeldungStatus message BeschreibungDescription
4004.0.0 Ungültige Anforderung (Bad Request)Bad Request Die Anforderung kann nicht verarbeitet werden, da sie fehlerhaft oder falsch ist.Cannot process the request because it is malformed or incorrect.
401401 Nicht autorisiert (Unauthorized)Unauthorized Erforderliche Authentifizierungsinformationen fehlen oder sind für die Ressource nicht gültig.Required authentication information is either missing or not valid for the resource.
403403 Forbidden Verboten (Forbidden)Forbidden Der Zugriff auf die angeforderte Ressource wird verweigert. Der Benutzer verfügt möglicherweise nicht über ausreichende Berechtigungen. Access is denied to the requested resource. The user might not have enough permission.

Wichtig: Wenn Richtlinien für bedingten Zugriff auf eine Ressource angewandt werden, wird möglicherweise der Fehler HTTP 403; Forbidden error=insufficent_claims zurückgegeben.Important: If conditional access policies are applied to a resource, a HTTP 403; Forbidden error=insufficent_claims may be returned. Weitere Informationen zur Microsoft Graph und zum bedingten Zugriff finden Sie in der Developer-Leitfaden zum bedingten Zugriff in Azure Active DirectoryFor more details on Microsoft Graph and conditional access see Developer Guidance for Azure Active Directory Conditional Access
404404 errors Nicht gefunden (Not Found)Not Found Die angeforderte Ressource ist nicht vorhanden.The requested resource doesn’t exist.
405405 Methode nicht zulässig (Method Not Allowed)Method Not Allowed Die HTTP-Methode in der Anforderung ist für die Ressource nicht zulässig.The HTTP method in the request is not allowed on the resource.
406406 Nicht zulässig (Not Acceptable)Not Acceptable Dieser Dienst unterstützt nicht das im Accept-Header angeforderte Format.This service doesn’t support the format requested in the Accept header.
409409 Konflikt (Conflict)Conflict Der aktuellen Status steht im Konflikt mit dem, was die Anforderung erwartet. Beispielsweise ist der angegebene übergeordnete Ordner nicht vorhanden.The current state conflicts with what the request expects. For example, the specified parent folder might not exist.
4104.1.0 Nicht vorhanden (Gone)Gone Die angeforderte Ressource ist nicht mehr auf dem Server verfügbar.The requested resource is no longer available at the server.
4114-11 Länge erforderlich (Length Required)Length Required Ein Content-Length-Header ist für die Anforderung erforderlich.A Content-Length header is required on the request.
4124.12 Fehler bei Vorbedingung (Precondition Failed)Precondition Failed Eine in der Anforderung bereitgestellte Vorbedingung (z. B. ein if-match-Header) entspricht nicht dem aktuellen Status der Ressource.A precondition provided in the request (such as an if-match header) does not match the resource's current state.
4134.13 Anforderungseinheit zu groß (Request Entity Too Large)Request Entity Too Large Die Größe der Anforderung überschreitet den zulässigen Höchstwert.The request size exceeds the maximum limit.
4154.15 Nicht unterstützter Medientyp (Unsupported Media Type)Unsupported Media Type Der Inhaltstyp der Anfrage hat ein Format, das vom Dienst nicht unterstützt wird.The content type of the request is a format that is not supported by the service.
4164.16 Angeforderter Bereich kann nicht erfüllt werden (Requested Range Not Satisfiable)Requested Range Not Satisfiable Der angegebene Bytebereich ist ungültig oder nicht verfügbar.The specified byte range is invalid or unavailable.
422422 Einheit kann nicht bearbeitet werden (Unprocessable Entity)Unprocessable Entity Die Anforderung kann nicht verarbeitet werden, da sie semantisch falsch ist.Cannot process the request because it is semantically incorrect.
423423 GesperrtLocked Die Ressource, auf die zugegriffen wird, ist gesperrt.The resource that is being accessed is locked.
429429: Zu viele Anforderungen (Too Many Requests)Too Many Requests Die Clientanwendung wurde gedrosselt und sollte nicht versuchen, die Anforderung zu wiederholen, bis eine bestimmte Zeitspanne abgelaufen ist.Client application has been throttled and should not attempt to repeat the request until an amount of time has elapsed.
500-500% Interner Serverfehler (Internal Server Error)Internal Server Error Beim Verarbeiten der Anforderung ist ein interner Serverfehler aufgetreten.There was an internal server error while processing the request.
501501 Nicht implementiert (Not Implemented)Not Implemented Das angeforderte Feature ist nicht implementiert.The requested feature isn’t implemented.
503HTTP 503 Dienst nicht verfügbar (Service Unavailable)Service Unavailable Der Dienst ist wegen Wartung vorübergehend nicht verfügbar ist oder ist überlastet. Sie können die Anfrage nach einer Verzögerung wiederholen, deren Länge in einem Retry-After-Header angegeben werden kann. 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-TimeoutGateway Timeout Der Server fungiert zwar als Proxy, hat aber keine rechtzeitige Antwort vom Upstreamserver empfangen, die für den Zugriff erforderlich war, um die Anforderung abzuschließen. Kann zusammen mit 503 auftreten.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 Unzureichender Speicher (Insufficient Storage)Insufficient Storage Das maximale Speicherkontingent wurde erreicht.The maximum storage quota has been reached.
509509 Bandbreitengrenze überschritten (Bandwidth Limit Exceeded)Bandwidth Limit Exceeded Die App wurde gedrosselt, da sie die maximale Bandbreite überschritten hat. Die App kann die Anforderung nach einiger Zeit wiederholen.Your app has been throttled for exceeding the maximum bandwidth cap. Your app can retry the request again after more time has elapsed.

Die Fehlerantwort ist ein einzelnes JSON-Objekt, das eine einzige Eigenschaft mit dem Namen error enthält. Dieses Objekt enthält alle Fehlerdetails. Sie können die hier zurückgegebenen Informationen anstelle von oder zusätzlich zu dem HTTP-Statuscode verwenden. Nachfolgend finden Sie ein Beispiel für einen vollständigen JSON-Fehlertext.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"
    }
  }
}

FehlerressourcentypError resource type

Die Fehlerressource wird immer dann zurückgegeben, wenn ein Fehler bei der Verarbeitung der Anforderung auftritt.The error resource is returned whenever an error occurs in the processing of a request.

Fehlerantworten entsprechen der Definition der OData v4-Spezifikation für Fehlerantworten.Error responses follow the definition in the OData v4 specification for error responses.

JSON-DarstellungJSON representation

Die Fehlerressource besteht aus den folgenden Ressourcen:The error resource is composed of these resources:

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

Ressourcentyp „odata.error“odata.error resource type

In der Fehlerantwort befindet sich eine Fehlerressource, die die folgenden Eigenschaften umfasst:Inside the error response is an error resource that includes the following properties:

{
  "code": "string",
  "message": "string",
  "innererror": { "@odata.type": "odata.error" }
}
EigenschaftennameProperty name WertValue BeschreibungDescription\
codecode stringstring Eine Fehlercode-Zeichenfolge für den aufgetretenen FehlerAn error code string for the error that occured
messagemessage stringstring Eine für Entwickler bereitgestellte Meldung über den aufgetretenen Fehler. Diese sollte dem Benutzer selbst nicht direkt angezeigt werden.A developer ready message about the error that occured. This should not be displayed to the user directly.
innererrorinnererror error objecterror object Optional. Zusätzliche Fehlerobjekte, die eventuell spezifischer als der Fehler der obersten Ebene sind.Optional. Additional error objects that may be more specific than the top level error.

CodeeigenschaftCode property

Die code-Eigenschaft enthält einen der folgenden möglichen Werte. Ihre Apps müssen in der Lage sein, diese Fehler behandeln zu können.The code property contains one of the following possible values. Your apps should be prepared to handle any one of these errors.

CodeCode BeschreibungDescription
accessDeniedaccessDenied Der Aufrufer hat nicht die Berechtigung zum Ausführen der Aktion.The caller doesn't have permission to perform the action.
activityLimitReachedactivityLimitReached Die App oder der Benutzer wurde gedrosselt.The app or user has been throttled.
generalExceptiongeneralException Ein nicht angegebener Fehler ist aufgetreten.An unspecified error has occurred.
invalidRangeinvalidRange Der angegebene Bytebereich ist ungültig oder nicht verfügbar.The specified byte range is invalid or unavailable.
invalidRequestinvalidRequest Die Anforderung ist fehlerhaft oder falsch.The request is malformed or incorrect.
itemNotFounditemNotFound Die Ressource konnte nicht gefunden werden.The resource could not be found.
malwareDetectedmalwareDetected In der angeforderten Ressource wurde Schadsoftware erkannt.Malware was detected in the requested resource.
nameAlreadyExistsnameAlreadyExists Der angegebene Elementname ist bereits vorhanden.The specified item name already exists.
notAllowednotAllowed Diese Aktion ist im System nicht zulässig.The action is not allowed by the system.
notSupportednotSupported Die Anforderung wird vom System nicht unterstützt.The request is not supported by the system.
resourceModifiedresourceModified Die zu aktualisierende Ressource wurde geändert, seit der Aufrufer sie zuletzt gelesen hat.Dies ist in der Regel ein eTag-Konflikt.The resource being updated has changed since the caller last read it, usually an eTag mismatch.
resyncRequiredresyncRequired Das Deltatoken ist nicht mehr gültig, und die App muss den Synchronisierungszustand zurücksetzen.The delta token is no longer valid, and the app must reset the sync state.
serviceNotAvailableserviceNotAvailable Der Dienst ist nicht verfügbar. Wiederholen Sie die Anforderung nach einer Weile. Es ist möglicherweise ein Retry-After-Header vorhanden.The service is not available. Try the request again after a delay. There may be a Retry-After header.
quotaLimitReachedquotaLimitReached Der Benutzer hat sein Kontingent erschöpft.The user has reached their quota limit.
unauthenticatedunauthenticated Der Anrufer konnte nicht authentifiziert werden.The caller is not authenticated.

Das innererror-Objekt kann rekursiv mehrere innererror-Objekte mit weiteren, spezifischeren Fehlercodes enthalten. Bei der Behandlung eines Fehlers sollten Apps alle verfügbaren Fehlercodes durchlaufen und den detailliertesten Fehlercode, den sie interpretieren können, verwenden. Einige der detaillierteren Codes sind unten auf dieser Seite aufgeführt.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.

Um zu überprüfen, ob es sich bei einem Fehlerobjekt um einen erwarteten Fehler handelt, müssen Sie die innererror-Objekte durchlaufen und dabei nach den erwarteten Fehlercodes suchen. Beispiel: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;
}

Ein Beispiel, wie Fehler ordnungsgemäß behandelt werden, finden Sie unter Fehlercodebehandlung.For an example that shows how to properly handle errors, see Error Code Handling.

Die message-Eigenschaft im Stamm enthält eine Fehlermeldung, die für den Entwickler vorgesehen ist. Fehlermeldungen werden nicht lokalisiert und sollten dem Benutzer nicht direkt angezeigt werden. Bei der Behandlung von Fehlern sollte der Code keine message-Werte als Schlüsselwerte verwenden, da sie sich jederzeit ändern können und sie häufig dynamischen Informationen enthalten, die für die fehlerhafte Anforderung spezifisch sind. Sie sollten den Code nur in Bezug auf Fehlercodes schreiben, die in code-Eigenschaften zurückgegeben werden.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.

Detaillierte FehlercodesDetailed error codes

Nachfolgend sind einige weitere Fehler aufgeführt, denen Ihre App in den geschachtelten innererror-Objekten möglicherweise begegnet. Apps müssen diese Fehler nicht behandeln können, können dies jedoch tun, falls erwünscht. Der Dienst kann neue Fehlercodes hinzufügen oder die Rückgabe alter Fehlercodes jederzeit beenden. Daher ist es wichtig, dass alle Apps in der Lage sind, die grundlegenden Fehlercodes zu behandeln.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.

CodeCode BeschreibungDescription
accessRestrictedaccessRestricted Der Zugriff ist auf den Besitzer des Elements beschränkt.Access restricted to the item's owner.
cannotSnapshotTreecannotSnapshotTree Fehler beim Abrufen eines konsistenten Deltasnapshots. Versuchen Sie es später erneut.Failed to get a consistent delta snapshot. Try again later.
childItemCountExceededchildItemCountExceeded Höchstwert für die Anzahl der untergeordneten Elemente wurde erreicht.Max limit on the number of child items was reached.
entityTagDoesNotMatchentityTagDoesNotMatch Das ETag stimmt nicht mit dem aktuellen Wert des Elements überein.ETag does not match the current item's value.
fragmentLengthMismatchfragmentLengthMismatch Die deklarierte Gesamtgröße für dieses Fragment unterscheidet sich von der Uploadsitzung.Declared total size for this fragment is different from that of the upload session.
fragmentOutOfOrderfragmentOutOfOrder Hochgeladenes Fragment funktioniert nicht ordnungsgemäß.Uploaded fragment is out of order.
fragmentOverlapfragmentOverlap Hochgeladenes Fragment überschneidet sich mit den vorhandenen Daten.Uploaded fragment overlaps with existing data.
invalidAcceptTypeinvalidAcceptType Ungültiger Accept-Typ.Invalid accept type.
invalidParameterFormatinvalidParameterFormat Ungültiges Parameterformat.Invalid parameter format.
invalidPathinvalidPath Name enthält ungültige Zeichen.Name contains invalid characters.
invalidQueryOptioninvalidQueryOption Ungültige Abfrageoption.Invalid query option.
invalidStartIndexinvalidStartIndex Ungültiger Startindex.Invalid start index.
lockMismatchlockMismatch Sperrtoken entspricht nicht der vorhandenen Sperre.Lock token does not match existing lock.
lockNotFoundOrAlreadyExpiredlockNotFoundOrAlreadyExpired Das Element hat derzeit keine nicht abgelaufene Sperre.There is currently no unexpired lock on the item.
lockOwnerMismatchlockOwnerMismatch Die ID des Sperrenbesitzers entspricht nicht der angegebenen ID.Lock Owner ID does not match provided ID.
malformedEntityTagmalformedEntityTag ETag-Heder ist fehlerhaft. ETags müssen in Anführungszeichen eingeschlossene Zeichenfolgen sein.ETag header is malformed. ETags must be quoted strings.
maxDocumentCountExceededmaxDocumentCountExceeded Höchstwert für die Anzahl der Dokumente wurde erreicht.Max limit on number of Documents is reached.
maxFileSizeExceededmaxFileSizeExceeded Die maximale Dateigröße wurde erreicht.Max file size exceeded.
maxFolderCountExceededmaxFolderCountExceeded Die maximale Anzahl von Ordnern wurde erreicht.Max limit on number of Folders is reached.
maxFragmentLengthExceededmaxFragmentLengthExceeded Die maximale Dateigröße wurde erreicht.Max file size exceeded.
maxItemCountExceededmaxItemCountExceeded Die maximale Anzahl von Elementen wurde erreicht.Max limit on number of Items is reached.
maxQueryLengthExceededmaxQueryLengthExceeded Die maximale Abfragelänge wurde überschritten.Max query length exceeded.
maxStreamSizeExceededmaxStreamSizeExceeded Die maximale Streamgröße wurde überschritten.Maximum stream size exceeded.
parameterIsTooLongparameterIsTooLong Der Parameter überschreitet die maximale Länge.Parameter Exceeds Maximum Length.
parameterIsTooSmallparameterIsTooSmall Der Parameter ist kleiner als der Mindestwert.Parameter is smaller then minimum value.
pathIsTooLongpathIsTooLong Der Pfad überschreitet die maximale Länge.Path exceeds maximum length.
pathTooDeeppathTooDeep Die maximale Tiefe der Ordnerhierarchie wurde erreicht.Folder hierarchy depth limit reached.
propertyNotUpdateablepropertyNotUpdateable Die Eigenschaft kann nicht aktualisiert werden.Property not updateable.
resyncApplyDifferencesresyncApplyDifferences Erneute Synchronisierung erforderlich. Ersetzen Sie alle lokalen Elemente durch die Serverversion (einschließlich gelöschter Elemente), wenn Sie sicher sind, dass der Dienst bei der letzten Synchronisierung mit den lokalen Änderungen aktualisiert wurde. Laden Sie alle lokalen Änderungen hoch, die dem Server noch nicht bekannt sind.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 Erneute Synchronisierung erforderlich.Resync is required.
resyncUploadDifferencesresyncUploadDifferences Erneute Synchronisierung erforderlich. Laden Sie alle lokalen Elemente hoch, die der Dienst nicht zurückgegeben hat, und laden Sie alle Dateien hoch, die sich von der Version auf dem Server unterscheiden (wobei Sie beide Kopien beibehalten, wenn Sie nicht sicher sind, welche die aktuelle ist).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 Der Server kann die aktuelle Anforderung nicht verarbeiten.The server is unable to process the current request.
serviceReadOnlyserviceReadOnly Ressource ist vorübergehend schreibgeschützt.Resource is temporarily read-only.
throttledRequestthrottledRequest Zu viele Anforderungen.Too many requests.
tooManyResultsRequestedtooManyResultsRequested Zu viele Ergebnisse angefordert.Too many results requested.
tooManyTermsInQuerytooManyTermsInQuery Zu viele Ausdrücke in der Abfrage.Too many terms in the query.
totalAffectedItemCountExceededtotalAffectedItemCountExceeded Vorgang ist nicht zulässig, da die Anzahl der betroffenen Elemente den Schwellenwert überschreitet.Operation is not allowed because the number of affected items exceeds threshold.
truncationNotAllowedtruncationNotAllowed Datenkürzung ist nicht zulässig.Data truncation is not allowed.
uploadSessionFaileduploadSessionFailed Fehler beim der Uploadsitzung.Upload session failed.
uploadSessionIncompleteuploadSessionIncomplete Uploadsitzung ist nicht vollständig.Upload session incomplete.
uploadSessionNotFounduploadSessionNotFound Uploadsitzung nicht gefunden.Upload session not found.
virusSuspiciousvirusSuspicious Dieses Dokument ist verdächtig und hat möglicherweise ein Virus.This document is suspicious and may have a virus.
zeroOrFewerResultsRequestedzeroOrFewerResultsRequested Es wurden null oder weniger Ergebnisse angefordert.Zero or fewer results requested.