> ## Documentation Index
> Fetch the complete documentation index at: https://docs.squarecloud.app/llms.txt
> Use this file to discover all available pages before exploring further.

# API-Fehlercodes und wie du sie behebst

> Alle Fehlercodes der Square Cloud API nach Bereich, mit HTTP-Status, Bedeutung und nächstem Schritt, dazu die Regeln für Wiederholungsversuche.

Jede fehlgeschlagene Anfrage an die Square Cloud API antwortet mit einem HTTP-Status und einem JSON-Body, der einen maschinenlesbaren `code` enthält. Diese Seite listet jeden Code nach Bereich geordnet. Jede Endpoint-Seite nennt außerdem die Codes, die dieser Endpoint am häufigsten liefert.

<Note>
  [Blob Storage](/de/blob-reference/errors) hat eine eigene Liste von Codes, und das [AI Gateway](/de/api-reference/ai-gateway#fehler) antwortet im Fehlerformat von OpenAI mit kleingeschriebenen Codes. Beide werden hier nicht behandelt.
</Note>

## Fehlerformat

```json theme={"system"}
{
  "status": "error",
  "code": "APP_NOT_FOUND",
  "message": "Optional explanation for humans."
}
```

| Feld | Beschreibung |
| - | - |
| `status` | Bei einem Fehler immer `"error"`. |
| `code` | Der Fehlercode in `UPPER_SNAKE_CASE`. Verzweige anhand dieses Felds. |
| `message` | Optional. Eine für Menschen lesbare Erklärung, die sich jederzeit ändern kann: Zeige sie an, aber parse sie nie. |

<Info>
  Die Liste der Codes wächst mit der Zeit. Behandle einen unbekannten Code als allgemeinen Fehler des HTTP-Status, mit dem er kam: Korrigiere die Anfrage bei `4xx`, warte bei `429` und versuche es bei `5xx` später erneut.
</Info>

## Wiederholungsversuche

Die API sendet keinen Header `Retry-After`, die Entscheidung liegt also bei dir. Eine sichere Strategie:

| Antwort | Was zu tun ist |
| - | - |
| `400`, `401`, `403`, `404`, `409`, `413`, `415` | Wiederhole nicht dieselbe Anfrage: Sie scheitert auf dieselbe Weise. Korrigiere zuerst die Eingabe, die Zugangsdaten oder den Plan. |
| `429` | Warte vor der nächsten Anfrage. Wiederholungen in einer Schleife halten die Sperre aufrecht. Siehe [Rate Limits](#rate-limits). |
| `503 UPLOAD_BUSY`, `503 ANALYTICS_BUSY` | Nach einer kurzen Pause erneut versuchen, mit exponentiellem Backoff. |
| `503 DATABASE_UNAVAILABLE` | Einen Lesezugriff nach einigen Sekunden wiederholen. Ein Schreibzugriff wurde womöglich schon ausgeführt, prüfe also die Ressource, bevor du ihn wiederholst. |
| `500` und andere `5xx` | Ein- oder zweimal mit Backoff wiederholen. Scheitert es weiter, prüfe den [Dienststatus](/de/api-reference/endpoint/service/status). |

`202 SNAPSHOT_PROCESSING` behält aus Kompatibilitätsgründen die Fehlerhülle, ist aber **kein Fehler**: Der Snapshot wird noch erstellt und erscheint von selbst in der Liste. Fordere ihn nicht erneut an.

## Rate Limits

Zwei Codes antworten mit `429`, und sie bedeuten Verschiedenes:

* **`RATE_LIMITED`**: das Anfragebudget deines Kontos oder API-Schlüssels, gezählt pro 60 Sekunden und von deinem Plan festgelegt (siehe die [Werte pro Plan](/de/api-reference/limitations-and-restrictions#api-limits)). Darüber hinaus lehnt die API deine Anfragen bis zu 30 Minuten lang ab. Einige Endpoints antworten auch bei ihren eigenen Limits mit `RATE_LIMITED`, und eine IP-Adresse, die hartnäckig API-Schlüssel sendet, die zu keinem Konto gehören, wird für kurze Zeit gesperrt.
* **`KEEP_CALM`**: das eigene Limit eines Endpoints, etwa ein Neustart alle paar Sekunden. Warte einen Moment und versuche es erneut. Das Limit jedes Endpoints steht auf seiner Seite.

## Authentifizierung und Berechtigungen

| Code | HTTP | Bedeutung und Lösung |
| - | - | - |
| `ACCESS_DENIED` | 401 | Der API-Schlüssel fehlt, ist falsch geschrieben, widerrufen oder abgelaufen, oder sein Konto existiert nicht mehr. Prüfe den Schlüssel in deinen [Sicherheitseinstellungen des Kontos](https://squarecloud.app/de/account/security) und wiederhole nicht in einer Schleife. |
| `MISSING_SCOPE` | 403 | Der Schlüssel ist gültig, aber ihm fehlt der Scope, den dieser Endpoint braucht. Scopes lassen sich nicht bearbeiten, erstelle also einen Schlüssel mit diesem Scope. Siehe [Scopes](/de/api-reference/authentication#scopes). |
| `RESOURCE_NOT_ALLOWED` | 403 | Der Schlüssel ist auf Anwendungen und Datenbanken beschränkt, zu denen diese nicht gehört, oder der Endpoint ist kontoweit und der Schlüssel beschränkt. Verwende einen Schlüssel, der die Ressource abdeckt. |
| `PERMISSION_DENIED` | 403 | Deine Workspace-Rolle erlaubt diese Aktion auf einer geteilten Anwendung nicht, etwa das Lesen von `.env` ohne die Rolle `admin`. Siehe [Workspace-Rollen](/de/api-reference/endpoint/workspace/members/invite#rollen). |
| `SCOPE_NOT_GRANTABLE` | 403 | Ein beschränkter API-Schlüssel wollte mehr Zugriff vergeben, als er selbst hat, zum Beispiel ein Mitglied mit `admin` hinzufügen mit einem Schlüssel ohne `envs:write`. Verwende einen Schlüssel mit jedem Scope dieser Rolle oder das Dashboard. |
| `UPGRADE_REQUIRED` | 402 / 403 | Die Funktion braucht einen höheren Plan: Datenbanken, Custom Domains und Workspaces brauchen Standard oder höher, Netzwerk-Logs und Performance brauchen Pro oder höher, und das Auflisten der Konto-Snapshots braucht einen aktiven Plan (`402`). Die `message` nennt den Plan, wenn möglich. |

## Validierung der Anfrage

| Code | HTTP | Bedeutung und Lösung |
| - | - | - |
| `INVALID_JSON_BODY` | 400 | Der Body ist kein gültiges JSON. Sende `Content-Type: application/json` und einen wohlgeformten Body. |
| `INVALID_INPUT` | 400 | Ein Feld hat die Validierung nicht bestanden. Die `message` sagt, welches. |
| `INVALID_ID` | 400 | Eine erforderliche ID, meist `workspaceId`, fehlt oder ist fehlerhaft. |
| `INVALID_CONTENT_TYPE` | 415 | Upload und Commit brauchen `multipart/form-data` mit dem Zip im Feld `file`. |
| `PAYLOAD_TOO_LARGE` | 413 | Der Body ist größer, als dieser Endpoint annimmt. |
| `ROUTE_NOT_FOUND` | 404 | Der Pfad oder die HTTP-Methode ist falsch. Vergleiche sie mit der Endpoint-Seite. |

## Kontingente und Verbindungslimits

| Code | HTTP | Bedeutung und Lösung |
| - | - | - |
| `RATE_LIMITED` | 429 | Das Anfragebudget deines Kontos oder Schlüssels wurde erreicht, oder das eigene Limit eines Endpoints. Siehe [Rate Limits](#rate-limits). |
| `KEEP_CALM` | 429 | Zu viele Anfragen an diesen Endpoint in kurzer Zeit. Warte einen Moment und versuche es erneut. |
| `DAILY_SNAPSHOTS_LIMIT_REACHED` | 429 | Das Kontingent deines Plans an manuellen Snapshots pro 24 Stunden ist aufgebraucht. Warte vor dem nächsten oder upgrade für ein größeres Kontingent. |
| `REALTIME_MAX_CONNECTIONS` | 429 | Dein Konto hat bereits 5 [Echtzeit](/de/api-reference/endpoint/apps/realtime)-Verbindungen offen. Schließe zuerst eine. |
| `REALTIME_MAX_CONNECTIONS_APP` | 429 | Die Anwendung hat bereits 30 Echtzeit-Verbindungen offen, über alle Benutzer hinweg. |

## Anwendungen

| Code | HTTP | Bedeutung und Lösung |
| - | - | - |
| `APP_NOT_FOUND` | 404 | Die Anwendung existiert nicht, gehört dir nicht, oder du bist kein Mitglied des Workspace, in dem sie geteilt ist. Prüfe die ID. Workspace-Routen antworten mit `400`, wenn `appId` im Body fehlt. |
| `CONTAINER_ALREADY_STARTED` | 409 | Die Anwendung oder Datenbank läuft bereits. Du kannst das als Erfolg behandeln. |
| `CONTAINER_ALREADY_STOPPED` | 409 | Die Anwendung oder Datenbank ist bereits gestoppt. Du kannst das als Erfolg behandeln. |
| `CONTAINER_TEMPORARILY_SUSPENDED` | 409 | Die Ressource ist gesperrt. Den Grund findest du in den E-Mails des Kontos. |
| `CONTAINER_NOT_FOUND` | 409 | Der Container der Ressource wurde auf ihrem Server nicht gefunden. Versuche es gleich noch einmal und wende dich an den Support, wenn es anhält. |
| `CONTAINER_INSUFFICIENT_DISK_SPACE` | 409 | Für den Start ist nicht genug Speicherplatz frei. Entferne nicht benötigte Dateien und versuche es erneut. |
| `CONTAINER_NETWORK_CONFLICT` | 409 | Ein Netzwerk- oder Portkonflikt hat den Start verhindert. Versuche es gleich noch einmal. |
| `ACTION_FAILED` | 409 | Starten, Stoppen oder Neustarten wurde aus einem anderen Grund abgelehnt, zum Beispiel während eines Deploys. Prüfe den Status und versuche es erneut. |
| `RESTORE_IN_PROGRESS` | 403 | Auf dieser Ressource läuft eine Snapshot-Wiederherstellung. Warte, bis sie fertig ist, bevor du die Anwendung löschst oder die Datenbank startest, stoppst oder löschst. |
| `DELETE_FAILED` | 404 | Der Knoten, der die Ressource hostet, hat das Löschen abgelehnt. Versuche es erneut. Im Dateimanager antwortet derselbe Code mit `400`. |
| `LOGS_UNAVAILABLE` | 404 | Die Logs konnten nicht gelesen werden: Die Anwendung ist offline, wurde nie deployt, oder der Knoten hat nicht geantwortet. Versuche es in Kürze erneut. |
| `METRICS_NOT_SUPPORTED` | 400 | Metriken werden nur für Anwendungen mit mindestens 512 MB RAM erfasst. |

## Upload und Commit

| Code | HTTP | Bedeutung und Lösung |
| - | - | - |
| `INVALID_FILE` | 400 | Das Formular hat keine Datei im Feld `file`. |
| `INVALID_FILENAME` | 400 | Der Dateiname enthält Pfadtrenner, `..` oder Steuerzeichen. |
| `INVALID_PATH` | 400 | Der `path` eines Commits enthält Traversal- oder Shell-Zeichen. |
| `FILE_TOO_LARGE` | 413 | Das Zip ist größer als 100 MB. |
| `UPLOAD_ABORTED` | 400 | Die Verbindung wurde geschlossen, bevor der Upload fertig war. Lade erneut hoch. |
| `UPLOAD_BUSY` | 503 | Auf der Plattform laufen zu viele Uploads. Versuche es nach einer kurzen Pause erneut. |
| `STORAGE_UPLOAD_FAILED` | 400 | Das Zip konnte nicht gespeichert werden. Versuche es später erneut. |
| `UPLOAD_FAILED` | 400 | Der Upload konnte nicht verarbeitet werden. Versuche es erneut und prüfe das Zip, wenn es wieder passiert. |
| `COMMIT_FAILED` | 400 | Der Commit konnte nicht angewendet werden. Versuche es erneut und prüfe das Zip, wenn es wieder passiert. |
| `INSUFFICIENT_MEMORY` | 400 | Dein Plan hat nicht genug freien Arbeitsspeicher für die Anwendung oder Datenbank, oder `MEMORY` liegt unter dem Minimum: 256 MB, oder 512 MB für eine Website mit `SUBDOMAIN`. Passe `MEMORY` an, lösche etwas oder upgrade. |
| `CLUSTER_SELECTION_FAILED` | 400 | Gerade hatte kein Server Platz für die neue Anwendung oder Datenbank. Versuche es später erneut. |
| `CLUSTER_MAINTENANCE_TRY_LATER` | 503 | Neue Anwendungen und Datenbanken sind wegen Wartung pausiert. Versuche es später erneut. |
| `EMPTY_RESPONSE` | 400 | Der Server, der den Upload empfangen hat, lieferte keine brauchbare Antwort, daher wurde die Anwendung nicht erstellt. Lade erneut hoch. |

## Prüfungen von Zip und Konfiguration

Wenn du eine Anwendung [hochlädst](/de/api-reference/endpoint/apps/upload), prüft der Server, der sie ausführen wird, das Zip und seine [Konfigurationsdatei](/de/getting-started/config-file) (`squarecloud.app` oder `squarecloud.config`). Eine fehlgeschlagene Prüfung antwortet mit `400` und einem dieser Codes, und nichts wird deployt. Korrigiere das Zip und lade es erneut hoch. Ein [Commit](/de/api-reference/endpoint/apps/commit) liest die Konfigurationsdatei nicht: Er kann aus dieser Liste nur mit `FAILED_EXTRACT` oder `CONTAINER_INSUFFICIENT_DISK_SPACE` scheitern.

| Code | HTTP | Bedeutung und Lösung |
| - | - | - |
| `FAILED_EXTRACT` | 400 | Das Zip konnte nicht entpackt werden. Erstelle es mit einem gängigen Zip-Werkzeug neu und prüfe, ob es beschädigt ist. |
| `DOWNLOAD_FAILED` | 400 | Der Server konnte das Zip nach dem Empfang nicht abrufen. Lade erneut hoch. |
| `MISSING_CONFIG` | 400 | Das Zip hat im Stammverzeichnis weder `squarecloud.app` noch `squarecloud.config`, oder die Datei ist leer. |
| `MISSING_MEMORY`, `MISSING_DISPLAY_NAME`, `MISSING_VERSION` | 400 | Ein Pflichtfeld der Konfigurationsdatei fehlt oder ist leer. Der Code nennt das erste fehlende. |
| `MISSING_MAIN` | 400 | Die Konfiguration hat weder [`MAIN`](/de/getting-started/config-file#main) noch [`RUNTIME`](/de/getting-started/config-file#runtime). Setze eines von beiden. |
| `INVALID_MAIN` | 400 | `MAIN` enthält andere Zeichen als Buchstaben, Ziffern, `_`, `.`, `/` und `-`, oder mehr als 32 Zeichen. Ohne `RUNTIME` scheitert es auch, wenn die Datei nicht im Zip liegt, leer ist, außerhalb des Projekts zeigt oder keine Endung bzw. eine keiner unterstützten Sprache hat. |
| `INVALID_RUNTIME` | 400 | `RUNTIME` ist keiner der unterstützten Werte aus der Referenz der [Konfigurationsdatei](/de/getting-started/config-file#runtime). |
| `INVALID_VERSION` | 400 | `VERSION` muss `recommended` oder `latest` sein. Eine exakte Versionsnummer wird abgelehnt. |
| `INVALID_START` | 400 | `START` ist länger als 256 Zeichen. |
| `INVALID_DEPENDENCY` | 400 | Die Abhängigkeitsdatei der Sprache fehlt oder ist leer: `package.json` für JavaScript und TypeScript, `requirements.txt` oder `pyproject.toml` für Python, `go.mod` oder `go.work` für Go, `Cargo.toml` für Rust, `Gemfile` für Ruby, `mix.exs` für Elixir. |
| `INVALID_DISPLAY_NAME` | 400 | `DISPLAY_NAME` muss 1 bis 32 Zeichen haben: Buchstaben, Ziffern, Leerzeichen, `_` und `-`. |
| `INVALID_DESCRIPTION` | 400 | `DESCRIPTION` ist länger als 280 Zeichen. |
| `INVALID_SUBDOMAIN` | 400 | `SUBDOMAIN` ist fehlerhaft, reserviert oder bereits vergeben. Wähle eine andere. |
| `CONTAINER_INSUFFICIENT_DISK_SPACE` | 400 | Bei einem Commit ist nicht genug Speicherplatz für die neuen Dateien frei. Lösche nicht benötigte Dateien und committe erneut. |
| `ACCESS_FORBIDDEN` | 400 | Der Server konnte dein Konto für diesen Upload nicht laden. Versuche es erneut und wende dich an den Support, wenn es anhält. |

## Umgebungsvariablen

| Code | HTTP | Bedeutung und Lösung |
| - | - | - |
| `STATIC_APP_ENV_NOT_SUPPORTED` | 400 | Statische Sites unterstützen keine Umgebungsvariablen. |
| `INVALID_ENV_CONTENT` | 400 | `envs` fehlt oder hat die falsche Form: ein Objekt zum Hinzufügen oder Ersetzen, ein Array von Schlüsseln zum Entfernen. |
| `TOO_MANY_ENV_VARS` | 400 | Die Anwendung hätte mehr als 256 Variablen. |
| `ENV_NAME_TOO_LONG` | 400 | Ein Schlüssel ist länger als 1024 Zeichen oder kein String. |
| `ENV_CONTENT_TOO_LONG` | 400 | Ein Wert ist länger als 4096 Zeichen. |
| `READ_FAILED` | 400 | Die Variablen konnten nicht aus der Anwendung gelesen werden. Versuche es erneut. Die Zertifikatsroute verwendet denselben Code. |

## Dateien

| Code | HTTP | Bedeutung und Lösung |
| - | - | - |
| `INVALID_PATH` | 400 | Der Pfad enthält Traversal oder ungültige Zeichen, ist länger als 256 Zeichen, oder Quelle und Ziel einer Verschiebung sind gleich. |
| `BLOCKED_PATH` | 403 | Der Pfad liegt in einem geschützten Verzeichnis, oder deine Workspace-Rolle darf diese Datei nicht schreiben. |
| `INVALID_ENCODING` | 400 | `encoding` akzeptiert nur `base64`. |
| `INVALID_CONTENT` | 400 | `content` fehlt, hat eine nicht unterstützte Form oder ist kein gültiges base64. |
| `FILE_NOT_FOUND` | 404 | Unter diesem Pfad gibt es keine Datei und kein Verzeichnis. |
| `FILE_TOO_LARGE` | 413 | Der Dateimanager liest und schreibt Dateien bis 10 MB. Verwende für größere Dateien [Commit](/de/api-reference/endpoint/apps/commit). |
| `RENAME_FAILED` | 400 | Die Datei konnte nicht verschoben oder umbenannt werden. Versuche es erneut. |
| `DELETE_FAILED` | 400 | Die Datei konnte nicht gelöscht werden. Versuche es erneut. |
| `INVALID_DISPLAY_NAME`, `INVALID_DESCRIPTION`, `INVALID_MEMORY`, `INVALID_AUTORESTART`, `INVALID_SUBDOMAIN` | 400 | Ein Schreibvorgang in die [Konfigurationsdatei](/de/getting-started/config-file) enthält ein Feld, das die Validierung nicht besteht, oder eine bereits vergebene `SUBDOMAIN`. Korrigiere dieses Feld. |
| `CANNOT_SET_SUBDOMAIN` | 400 | Die Konfiguration einer Website hat keine `SUBDOMAIN`. Eine Website behält immer eine, setze sie also wieder. |
| `SAVE_FAILED` | 500 | Die neue Konfiguration konnte nicht gespeichert werden. Versuche es erneut. |

## Deploys und GitHub

| Code | HTTP | Bedeutung und Lösung |
| - | - | - |
| `INVALID_ACCESS_TOKEN` | 400 | Das Webhook-Token ist weder ein GitHub-Token (`ghp_...`, `github_pat_...`) noch `@`. |
| `MISSING_REQUIRED_FIELDS` | 400 | `repositoryName` oder `repositoryBranch` fehlt. |
| `INVALID_BRANCH_LENGTH` | 400 | Der Branch-Name ist länger als 256 Zeichen. |
| `BRANCH_NOT_FOUND` | 400 | Der Branch existiert im Repository nicht. |
| `GIT_ALREADY_CONFIGURED` | 400 | Die Anwendung hat bereits ein verknüpftes Repository. Trenne es zuerst. |
| `GIT_NOT_CONFIGURED` | 400 | Die Anwendung hat kein verknüpftes Repository, das getrennt werden könnte. |
| `GITHUB_NOT_CONNECTED` | 403 | Dein Square Cloud-Konto hat keine funktionierende GitHub-Verbindung. Verbinde GitHub im Dashboard neu. |
| `REPOSITORY_NOT_AVAILABLE` | 403 | Die GitHub App von Square Cloud ist über dein GitHub-Konto nicht im Repository installiert. |
| `REPOSITORY_PERMISSION_REQUIRED` | 403 | Dein GitHub-Konto braucht Schreibzugriff auf das Repository. |
| `REPOSITORY_NOT_FOUND` | 404 | Das Repository existiert nicht, oder dein GitHub-Konto kann es nicht sehen. |
| `REPOSITORY_BRANCH_ALREADY_CONFIGURED` | 409 | Eine andere Anwendung, egal von welchem Konto, verwendet dieses Repository mit diesem Branch bereits. |
| `FAILED_TO_FETCH` | 502 | GitHub hat den Branch nicht bestätigt. Versuche es erneut. |
| `VALIDATION_FAILED` | 500 / 502 | Das Repository konnte nicht validiert werden. Versuche es erneut. |
| `VALIDATION_TIMEOUT` | 504 | Die Validierung des Repositorys hat zu lange gedauert. Versuche es erneut. |

Ein fehlgeschlagener Git-Deploy ist kein HTTP-Fehler: Er erscheint im [Deploy-Verlauf](/de/api-reference/endpoint/apps/deploy/list) als Ereignis mit `state: "error"` und einem `code` wie `DEPLOY_FAILED`.

## Netzwerk und Domains

| Code | HTTP | Bedeutung und Lösung |
| - | - | - |
| `INVALID_TIME_RANGE` | 400 | `start` oder `end` fehlt oder ist fehlerhaft, oder `start` liegt nach `end`. |
| `INVALID_FILTER` | 400 | Ein Filter des Analytics-Endpoints hat das falsche Format. |
| `UNABLE_TO_FETCH_ANALYTICS`, `UNABLE_TO_FETCH_ERRORS`, `UNABLE_TO_FETCH_PERFORMANCE` | 500 | Der Edge-Provider hat die Daten nicht geliefert. Versuche es später erneut. |
| `ANALYTICS_BUSY` | 503 | Die Netzwerkanalysen sind plattformweit ausgelastet. Versuche es nach einer kurzen Pause erneut. |
| `NO_CUSTOM_DOMAIN` | 400 | Die Anwendung hat keine Custom Domain und daher keine DNS-Einträge zum Anzeigen. |
| `INVALID_DOMAIN` | 400 | Der Wert ist kein gültiger Domainname. |
| `RESERVED_DOMAIN` | 400 | Die eigenen Domains von Square Cloud und ihre Subdomains können nicht als Custom Domain verwendet werden. |
| `DOMAIN_ALREADY_EXISTS` | 409 | Ein anderes Konto verwendet diese Domain bereits. Entferne sie dort zuerst. |
| `LOAD_BALANCER_LIMIT_REACHED` | 403 | Dein Plan erlaubt diese Domain nicht auf weiteren Anwendungen. Die `message` nennt das Limit. |
| `DNS_FAILED` | 502 | Der Edge-Provider konnte die Domain nicht anbinden. Deine bisherige Domain bleibt bestehen. Versuche es erneut. |
| `PURGE_CACHE_FAILED` | 500 | Das Leeren des Caches wurde nicht abgeschlossen. Versuche es gleich noch einmal. |

## Snapshots

| Code | HTTP | Bedeutung und Lösung |
| - | - | - |
| `SNAPSHOT_PROCESSING` | 202 | Kein Fehler: Der Snapshot wird noch erstellt. Prüfe die Liste in ein paar Minuten. |
| `SNAPSHOT_FAILED` | 404 | Der Snapshot konnte nicht erstellt werden. Versuche es später erneut. |
| `MISSING_PARAMETERS` | 400 | `snapshotId` oder `versionId` fehlt. |
| `INVALID_SNAPSHOT_ID` | 400 | `snapshotId` ist kein `name` aus der Snapshot-Liste. |
| `INVALID_VERSION_ID` | 400 | `versionId` ist keine `version_id` aus der Snapshot-Liste. |
| `SNAPSHOT_NOT_FOUND` | 404 | Kein Snapshot passt zu dieser ID und Version. |
| `SNAPSHOT_RESTORE_FAILED` | 404 | Die Wiederherstellung ist fehlgeschlagen. Versuche es erneut oder stelle einen anderen Snapshot wieder her. |
| `SNAPSHOT_DATABASE_MISMATCH` | 400 | Der Snapshot stammt von einer anderen Datenbank-Engine als die Zieldatenbank. |
| `INVALID_SCOPE` | 400 | Der `scope` der Snapshot-Liste des Kontos muss `applications` oder `databases` sein. |

## Datenbanken

| Code | HTTP | Bedeutung und Lösung |
| - | - | - |
| `DATABASE_NOT_FOUND` | 404 | Die Datenbank existiert nicht oder gehört dir nicht. |
| `INVALID_NAME` | 400 | Der Name muss 1 bis 32 Zeichen haben. Für Workspaces gilt dieselbe Regel. |
| `INVALID_DATABASE_TYPE` | 400 | `type` muss `mongo`, `mysql`, `postgres` oder `redis` sein. |
| `INVALID_DATABASE_VERSION` | 400 | Die Version ist für diese Engine nicht verfügbar. |
| `INVALID_MEMORY` | 400 | Der Arbeitsspeicher ist für diese Engine oder diesen Plan nicht gültig. |
| `DATABASE_CREATION_FAILED` | 400 / 500 | Die Datenbank konnte nicht erstellt werden. Es blieb nichts zurück, du kannst es also erneut versuchen. |
| `DATABASE_NOT_RUNNING` | 400 | Starte die Datenbank, bevor du ihr Zertifikat liest oder ihre Zugangsdaten zurücksetzt. |
| `INVALID_RESET_TYPE` | 400 | `reset` muss `password` oder `certificate` sein. |
| `RESET_FAILED` | 500 | Die Zugangsdaten konnten nicht zurückgesetzt werden. Versuche es erneut. |
| `NO_UPDATE_DATA` | 400 | Sende `name`, `ram` oder beides, um eine Datenbank zu aktualisieren. |

## Workspaces

| Code | HTTP | Bedeutung und Lösung |
| - | - | - |
| `WORKSPACE_NOT_FOUND` | 404 | Der Workspace existiert nicht, oder du bist weder Eigentümer noch Mitglied. |
| `WORKSPACE_LIMIT_REACHED` | 400 | Dein Konto hat bereits so viele Workspaces, wie sein Plan erlaubt. |
| `WORKSPACE_CREATION_FAILED` | 400 | Der Workspace konnte nicht erstellt werden. Versuche es erneut. |
| `INVALID_CODE` | 400 | Der Einladungscode fehlt, ist fehlerhaft oder abgelaufen. Bitte die Person um einen neuen. |
| `INVALID_GROUP` | 400 | `group` muss `view`, `manager`, `maintain` oder `admin` sein. |
| `CANNOT_INVITE_OWNER` | 400 | Der Einladungscode gehört dir, und du bist bereits Eigentümer des Workspace. |
| `CANNOT_EDIT_OWNER` | 400 | Die Rolle des Eigentümers kann nicht geändert werden. |
| `CANNOT_LEAVE_OWNER` | 400 | Der Eigentümer kann den Workspace nicht verlassen. Lösche ihn stattdessen. |
| `MEMBERS_LIMIT_REACHED` | 400 | Der Workspace hat bereits so viele Mitglieder, wie der Plan des Eigentümers erlaubt. |
| `MEMBER_ALREADY_ADDED` | 400 | Diese Person ist bereits Mitglied. |
| `MEMBER_NOT_FOUND` | 400 / 404 | `memberId` fehlt (`400`), oder diese Person ist kein Mitglied mehr (`404`). |
| `APPLICATIONS_LIMIT_REACHED` | 400 | Der Workspace teilt bereits 100 Anwendungen. |
| `APP_ALREADY_IN_WORKSPACE` | 400 | Die Anwendung ist in diesem Workspace bereits geteilt. |

## Plattform

| Code | HTTP | Bedeutung und Lösung |
| - | - | - |
| `INTERNAL_SERVER_ERROR` | 500 | Ein unerwarteter Fehler. Versuche es einmal erneut und wende dich an den Support, wenn es anhält. |
| `DATABASE_UNAVAILABLE` | 503 | Die Datenbank der Plattform ist kurzzeitig nicht verfügbar. Versuche es in einigen Sekunden erneut. Eine vorhandene Ressource wird in diesem Zustand nie als nicht gefunden gemeldet. |
| `CLUSTER_TIMEOUT` | 400 | Der Server, der die Ressource hostet, hat nicht rechtzeitig geantwortet. Versuche es erneut. |
| `CLUSTER_UNAVAILABLE` | 400 | Der Server, der die Ressource hostet, ist gerade nicht erreichbar. Versuche es in Kürze erneut. |
| `REQUEST_ABORTED` | 400 | Die Anfrage wurde abgebrochen, bevor der Server, der die Ressource hostet, geantwortet hat. Versuche es erneut. |
| `INVALID_PARAMETERS` | 400 | Eine interne Anfrage war fehlerhaft. Versuche es erneut und wende dich an den Support, wenn es anhält. |

<Note>
  Die Codes `AI_*` (`AI_DAILY_LIMIT_REACHED`, `AI_NO_PLAN_LIMIT_REACHED`, `AI_MAX_CONCURRENT_STREAMS`, `AI_UNAVAILABLE`) gehören zum KI-Assistenten des Dashboards, der eine Dashboard-Sitzung braucht. Ein API-Schlüssel erhält sie nie.
</Note>

## Siehe auch

* [Authentifizierung und Scopes](/de/api-reference/authentication)
* [Rate Limits pro Plan](/de/api-reference/limitations-and-restrictions)
* JavaScript SDK: [`SquareCloudAPIError`](/de/sdks/js/errors)
* Python SDK: [`SquareCloudAPIError`](/de/sdks/py/errors)
* Go SDK: [`*APIError`](/de/sdks/go/errors)
