Auf dieser Seite werden Spanner-Fehlercodes und empfohlene Maßnahmen
Fehler beheben können. Google APIs, einschließlich Spanner, verwenden die Methode
kanonische Fehlercodes, die durch google.rpc.Code
definiert sind.
Wenn eine Spanner-Anfrage erfolgreich ist, gibt die API eine HTTP-
200 OK
-Statuscode zusammen mit den angeforderten Daten im Text der Antwort.
Wenn eine Anfrage fehlschlägt, gibt die Spanner API eine HTTP-
4xx
- oder 5xx
-Statuscode, der den Fehler allgemein identifiziert, sowie ein
, die spezifischere Informationen zu dem/den Fehler(n) enthält, der/die verursacht wurde(n)
Fehler.
Das Antwortobjekt enthält ein einzelnes Feld error
, dessen Wert die folgenden Elemente umfasst:
Element | Beschreibung |
---|---|
code |
Ein HTTP-Statuscode, der den Anfragefehler allgemein identifiziert. |
message |
Spezifische Informationen zum Anfragefehler. |
status |
Die kanonischen Fehlercode (google.rpc.Code ) für Google APIs. Codes, die von der Spanner API zurückgegeben werden können, sind unter Fehlercodes aufgeführt. |
Wenn eine Anfrage mit dem Inhaltstyp application/x-protobuf
zu einem Fehler führt, wird als Nutzlast die serialisierte Meldung google.rpc.Status
zurückgegeben.
Fehlercodes
Die empfohlene Methode zur Klassifizierung von Fehlern besteht darin, den Wert des Parameters
kanonischen Fehlercode (google.rpc.Code
) verwendet. Bei JSON-Fehlern wird dieser Code
im Feld status
ein. Bei Fehlern vom Typ application/x-protobuf
wird er im Feld code
angezeigt.
Fehlercode | Beschreibung | Empfohlene Maßnahmen |
---|---|---|
ABORTED |
Der Vorgang wurde abgebrochen, in der Regel aufgrund eines Gleichzeitigkeitsproblems wie einer fehlgeschlagenen Sequencer-Überprüfung oder einer abgebrochenen Transaktion. Gibt an, dass ein Konflikt mit einer anderen Anfrage bestand. | Bei einem nicht transaktionalen Commit: Wiederholen Sie die Anfrage oder strukturieren Sie Ihre Entitäten, um Konflikte zu reduzieren. Bei Anfragen, die Teil eines transaktional Commits sind: Wiederholen Sie die gesamte Transaktion oder strukturieren Sie Ihre Entitäten, um Konflikte zu reduzieren. |
ALREADY_EXISTS |
Die Entität, die ein Client erstellen wollte, ist bereits vorhanden (z. B. Einfügen einer Zeile mit einem vorhandenen Primärschlüssel). | Wiederholen Sie den Vorgang erst, wenn das Problem behoben ist. |
CANCELLED |
Der Vorgang wurde abgebrochen, üblicherweise vom Aufrufer. | Wiederholen Sie den Vorgang. |
DEADLINE_EXCEEDED |
Die Frist ist abgelaufen, bevor der Vorgang abgeschlossen werden konnte. | Prüfen Sie, ob die Frist ausreicht. Verwenden Sie eine Frist, die der tatsächlichen Zeit entspricht, in der eine Antwort nützlich ist. Bei Vorgängen, die den Systemstatus ändern, kann ein Fehler zurückgegeben werden, auch wenn der Vorgang erfolgreich abgeschlossen wurde. Weitere Informationen finden Sie unter Fehlerbehebung bei Fristüberschreitungen. |
FAILED_PRECONDITION |
Der Vorgang wurde abgelehnt, weil eine Voraussetzung für die Anfrage nicht erfüllt war. Das Nachrichtenfeld der Fehlerantwort enthält Informationen zu der nicht erfüllten Vorbedingung. Beispiel: Lesen oder Abfragen von einem Zeitstempel, der die maximale Zeitstempelveralterung überschritten hat. | Wiederholen Sie den Vorgang erst, wenn das Problem behoben ist. |
INTERNAL |
Der Server hat einen Fehler zurückgegeben. Einige vom zugrunde liegende System erwartete Invarianten wurden beschädigt. | Wiederholen Sie den Vorgang nur, wenn Sie die genauen Umstände und die Ursache des Fehlers im Klaren sind. |
INVALID_ARGUMENT |
Der Kunde hat einen ungültigen Wert angegeben. Im Nachrichtenfeld der Fehlerantwort ist angegeben, welcher Wert ungültig war. | Wiederholen Sie den Vorgang erst, wenn das Problem behoben ist. |
NOT_FOUND |
Gibt an, dass eine angeforderte Entität nicht vorhanden ist, z. B. das Aktualisieren einer Entität oder das Abfragen einer Tabelle oder Spalte. | Wiederholen Sie den Vorgang erst, wenn das Problem behoben ist. |
OUT_OF_RANGE |
Beim Vorgang wurde versucht, den gültigen Bereich zu überschreiten. | Wiederholen Sie den Vorgang erst, wenn das Problem behoben ist. |
PERMISSION_DENIED |
Der Nutzer war zu dieser Anfrage nicht berechtigt. | Wiederholen Sie den Vorgang erst, wenn das Problem behoben ist. |
RESOURCE_EXHAUSTED |
Eine Ressource ist erschöpft. Möglicherweise wurde das Kontingent des Projekts überschritten oder das gesamte Dateisystem hat keinen Speicherplatz mehr. | Achten Sie darauf, dass Sie Ihr Spanner- oder Projektkontingent nicht überschritten haben. Wenn Sie ein Kontingent überschritten haben, wiederholen Sie den Vorgang erst, wenn das Problem behoben ist. Andernfalls sollten Sie den Vorgang mit exponentiellem Backoff wiederholen. |
UNAUTHENTICATED |
Die Anfrage enthält keine gültigen Authentifizierungsdaten für diesen Vorgang. | Wiederholen Sie den Vorgang erst, wenn das Problem behoben ist. |
UNAVAILABLE |
Der Server ist nicht verfügbar. | Wiederholen Sie den Vorgang mit exponentiellem Backoff. Es ist nicht immer sicher, nicht idempotente Vorgänge zu wiederholen. |
UNIMPLEMENTED |
Dieser Vorgang ist nicht implementiert oder wird bei diesem Dienst nicht unterstützt bzw. ist bei diesem Dienst nicht aktiviert. | Wiederholen Sie den Vorgang erst, wenn das Problem behoben ist. |
UNKNOWN |
Der Server hat einen unbekannten Fehler zurückgegeben. Fehler, die von APIs ausgegeben werden, die nicht genügend Fehlerinformationen liefern, können in diesen Fehler umgewandelt werden. | Prüfen Sie, ob Ihre Anfrage sicher ist. Wiederholen Sie den Vorgang dann mit exponentiellem Backoff. |