Microsoft Graph-Fehlerantworten und -Ressourcentypen

Fehler in Microsoft Graph werden mithilfe von HTTP-status Standardcodes und einem JSON-Fehlerantwortobjekt zurückgegeben.

HTTP-Statuscodes

In der folgenden Tabelle werden die HTTP-Statuscodes aufgeführt und beschrieben, die zurückgegeben werden können.

Statuscode Statusmeldung Beschreibung
400 Ungültige Anforderung (Bad Request) Die Anforderung kann nicht verarbeitet werden, da sie falsch formatiert oder falsch ist.
401 Nicht autorisiert (Unauthorized) Erforderliche Authentifizierungsinformationen fehlen oder sind für die Ressource nicht gültig.
402 Zahlung erforderlich Die Zahlungsanforderungen für die API wurden nicht erfüllt.
403 Forbidden Der Zugriff auf die angeforderte Ressource wird verweigert. Der Benutzer verfügt möglicherweise nicht über ausreichende Berechtigungen oder nicht über eine erforderliche Lizenz.

Wichtig: Wenn Richtlinien für bedingten Zugriff auf eine Ressource angewendet werden, wird möglicherweise eine HTTP 403; Forbidden error=insufficient_claims Meldung zurückgegeben. Weitere Informationen zu Microsoft Graph und bedingtem Zugriff finden Sie unter Entwicklerleitfaden für Microsoft Entra bedingten Zugriff.
404 Nicht gefunden (Not Found) Die angeforderte Ressource ist nicht vorhanden.
405 Methode nicht zulässig (Method Not Allowed) Die HTTP-Methode in der Anforderung ist für die Ressource nicht zulässig.
406 Nicht zulässig (Not Acceptable) Dieser Dienst unterstützt nicht das im Accept-Header angeforderte Format.
409 Conflict Der aktuellen Status steht im Konflikt mit dem, was die Anforderung erwartet. Beispielsweise ist der angegebene übergeordnete Ordner nicht vorhanden.
410 Nicht vorhanden (Gone) Die angeforderte Ressource ist nicht mehr auf dem Server verfügbar.
411 Länge erforderlich (Length Required) Ein Content-Length-Header ist für die Anforderung erforderlich.
412 Fehler bei Vorbedingung (Precondition Failed) Eine in der Anforderung angegebene Vorbedingung (z. B. ein if-match-Header) stimmt nicht mit dem aktuellen Zustand der Ressource überein.
413 Anforderungseinheit zu groß (Request Entity Too Large) Die Größe der Anforderung überschreitet den zulässigen Höchstwert.
415 Nicht unterstützter Medientyp (Unsupported Media Type) Der Inhaltstyp der Anforderung ist ein Format, das vom Dienst nicht unterstützt wird.
416 Angeforderter Bereich kann nicht erfüllt werden (Requested Range Not Satisfiable) Der angegebene Bytebereich ist ungültig oder nicht verfügbar.
422 Einheit kann nicht bearbeitet werden (Unprocessable Entity) Die Anforderung kann nicht verarbeitet werden, da sie semantisch falsch ist.
423 Gesperrt Die Ressource, auf die zugegriffen wird, ist gesperrt.
429 Zu viele Anforderungen (Too Many Requests) Die Clientanwendung wurde gedrosselt und sollte nicht versuchen, die Anforderung zu wiederholen, bis eine bestimmte Zeit verstrichen ist.
500 Interner Serverfehler (Internal Server Error) Beim Verarbeiten der Anforderung ist ein interner Serverfehler aufgetreten.
501 Nicht implementiert (Not Implemented) Das angeforderte Feature ist nicht implementiert.
503 Dienst nicht verfügbar (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.
504 Gateway-Timeout Der Server, der als Proxy fungiert, hat keine rechtzeitige Antwort vom Upstream Server erhalten, auf den er zugreifen musste, um die Anforderung abzuschließen.
507 Unzureichender Speicher (Insufficient Storage) Das maximale Speicherkontingent wurde erreicht.
509 Bandwidth Limit Exceeded Die App wurde gedrosselt, da sie die maximale Bandbreite überschritten hat. Die App kann die Anforderung nach einiger Zeit wiederholen.

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.

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

Fehlerressourcentyp

Die Fehlerressource wird immer dann zurückgegeben, wenn ein Fehler bei der Verarbeitung der Anforderung auftritt.

Fehlerantworten folgen der Definition in den Microsoft-REST-API-Richtlinien.

JSON-Darstellung

Die Fehlerressource besteht aus einer einzelnen Ressource:

{
  "error": {
    "code": "string",
    "message": "string",
    "innererror": { 
      "code": "string"
    },
    "details": []
  }
}
Eigenschaftenname Wert Beschreibung
code string Eine Fehlercode-Zeichenfolge für den aufgetretenen Fehler
meldung string Eine entwicklerbereite Meldung über den aufgetretenen Fehler. Dies sollte dem Benutzer nicht direkt angezeigt werden.
innererror Fehlerobjekt Optional. Ein zusätzliches Fehlerobjekt, das möglicherweise spezifischer ist als der Fehler der obersten Ebene.
details error object Optional. Eine Liste zusätzlicher Fehlerobjekte, die eine Aufschlüsselung mehrerer Fehler bereitstellen können, die bei der Verarbeitung der Anforderung aufgetreten sind.

Eigenschaften

Die Codeeigenschaft enthält einen maschinenlesbaren Wert, von dem Sie eine Abhängigkeit in Ihrem Code annehmen können.

Das innererror-Objekt enthält möglicherweise rekursiv mehr innererror-Objekte mit zusätzlichen, spezifischeren Fehlercodeeigenschaften . Bei der Behandlung eines Fehlers sollten Apps alle verfügbaren geschachtelten Fehlercodes durchlaufen und den detailliertesten Fehlercode verwenden, den sie verstehen.

Die Meldungseigenschaft ist ein lesbarer Wert, der die Fehlerbedingung beschreibt. Nehmen Sie keine Abhängigkeit vom Inhalt dieses Werts in Ihrem Code auf.

Die Meldungseigenschaft im Stamm enthält eine Fehlermeldung, die der Entwickler lesen soll. Fehlermeldungen sind nicht lokalisiert und sollten dem Benutzer nicht direkt angezeigt werden. Bei der Behandlung von Fehlern sollte Ihr Code keine Abhängigkeit von den Nachrichteneigenschaftswerten annehmen, da sie sich jederzeit ändern können und häufig dynamische Informationen enthalten, die für die fehlgeschlagene Anforderung spezifisch sind. Sie sollten nur coden für Fehlercodes, die in Codeeigenschaften zurückgegeben werden.

Die details-Eigenschaft ist ein optionales Array von Fehlerobjekten, die das gleiche JSON-Format wie das Fehlerobjekt der obersten Ebene aufweisen. Bei einer Anforderung, die aus mehreren Vorgängen besteht, z. B. einem Massen- oder Batchvorgang, kann es erforderlich sein, für jeden Vorgang einen unabhängigen Fehler zurückzugeben. In diesem Fall wird die Detailliste mit diesen einzelnen Fehlern aufgefüllt.