# Fehlercodes: Organisation, Zugang, Beitritt

Die Codes der Bereiche Tenancy, Access, Onboarding und Cloud-Connections: Stammdaten und Marke der Organisation, eigene Domain, Unternehmens-Anmeldung, Rollen und Erteilungen, Einladungen, Registrierung, Beitrittsanfragen und Speicher-Verbindungen.

> **Typ:** nachschlagen
> **Für wen:** Wer Organisation, Rollen, Einladungen oder Speicher-Verbindungen über die API anspricht.
> **Voraussetzung:** das Fehlerformat kennen — siehe [Das Fehlerformat](/de/api/error-format)

## So lesen Sie die Tabellen

Die Tabellen lesen Sie so: **Code** ist der Wert im Feld `code` des Fehlerrumpfs — darauf schaltet Ihre Logik, nie auf `message`. **Bedeutung** und **Typischer Auslöser** ordnen den Fall ein. **HTTP** ist der tatsächlich gesendete Status. **Erwartete Reaktion** ist die Antwort Ihres Clients in einem festen Wortschatz, der auf allen sieben Fehlercode-Seiten gleich ist: „Ausweis prüfen“ (401), „Recht oder Paket prüfen“ (402, 403), „Eingabe korrigieren“ (400, 413, 415, 422), „neu laden, erneut senden“ (Versionskonflikte), „nicht wiederholen, Vorgang prüfen“ (404, 409, 410, 426), „warten (Retry-After)“ (429) und „später erneut, bei Wiederholung Trace-Id melden“ (5xx).

## Die Codes

### Organisation (Tenancy)

Stammdaten, Marke, Anschrift, Unternehmens-Anmeldung samt Domänen und die eigene Adresse des Portals. `Tenant.Frozen` (403) sperrt Änderungen bei offener Zahlung, Lesen und Abrechnung bleiben offen.

| Code | Bedeutung | Typischer Auslöser | HTTP | Erwartete Reaktion |
|---|---|---|---|---|
| `Tenant.NotFound` | Organisation nicht gefunden | Unbekannte Kennung der Organisation | 404 | nicht wiederholen, Vorgang prüfen |
| `Tenant.SlugAlreadyExists` | Kurzname bereits vergeben | Anlage mit belegtem Kurznamen | 409 | nicht wiederholen, Vorgang prüfen |
| `Tenant.SlugReserved` | Kurzname reserviert | Reservierter Kurzname | 422 | Eingabe korrigieren |
| `Tenant.InvalidStatusTransition` | Ungültiger Zustandswechsel der Organisation | Unzulässiger Statuswechsel | 409 | nicht wiederholen, Vorgang prüfen |
| `Tenant.Frozen` | Organisation eingefroren | Änderung bei offener Zahlung. Lesen und Abrechnung bleiben offen | 403 | Recht oder Paket prüfen |
| `Tenant.DeleteConfirmationRequired` | Löschung braucht Bestätigung | Löschung ohne Bestätigung | 422 | Eingabe korrigieren |
| `Branding.ContrastInsufficient` | Kontrast unzureichend | Farbwahl unterschreitet Kontrast-Minimum | 422 | Eingabe korrigieren |
| `Branding.AssetNotFound` | Markenzeichen fehlt | Verweis auf unbekanntes Logo/Favicon | 422 | Eingabe korrigieren |
| `Address.InvalidCountryCode` | Ländercode ungültig | Unbekannter ISO-Ländercode | 422 | Eingabe korrigieren |
| `Sso.ConfigInvalid` | Konfiguration der Unternehmens-Anmeldung ungültig | Fehlerhafte Felder der Unternehmens-Anmeldung, oder der Aussteller antwortet nicht mit einer gültigen Anbieter-Beschreibung | 422 | Eingabe korrigieren |
| `Sso.DefaultRoleInvalid` | Standard-Rolle ungültig | Die Standard-Rolle des Anmeldewegs ist unbekannt oder gehört einer fremden Organisation | 422 | Eingabe korrigieren |
| `Sso.ProviderNotFound` | Anmeldeweg nicht gefunden | Verwaltungs-Aufruf auf eine unbekannte Anbieter-Kennung | 404 | nicht wiederholen, Vorgang prüfen |
| `Sso.DomainNotFound` | Domäne der Unternehmens-Anmeldung nicht gefunden | Nachweis oder Rückzug einer Domäne, die dieser Anbieter nicht beansprucht | 404 | nicht wiederholen, Vorgang prüfen |
| `Sso.DomainAlreadyClaimed` | Domäne der Unternehmens-Anmeldung bereits beansprucht | Domäne gehört plattformweit schon zu einem anderen Anmeldeweg | 409 | nicht wiederholen, Vorgang prüfen |
| `Sso.DomainNotVerified` | Domäne der Unternehmens-Anmeldung nicht nachgewiesen | Aktion setzt eine bestätigte Domäne voraus | 409 | nicht wiederholen, Vorgang prüfen |
| `Sso.EnforcementNotVerified` | Zwang ohne frischen Nachweis | Einschalten ohne erfolgreiche Test-Anmeldung über diesen Anbieter in den letzten 15 Minuten | 422 | Eingabe korrigieren |
| `Sso.BreakGlassInvalid` | Notfallkonto unzulässig | Mehr als zwei Konten, unbekanntes Konto oder eines ohne zweiten Faktor | 422 | Eingabe korrigieren |
| `CustomDomain.AlreadyTaken` | Domain bereits belegt | Domain schon bei einer anderen Organisation | 409 | nicht wiederholen, Vorgang prüfen |
| `CustomDomain.VerificationPending` | Domain-Verifizierung offen | Nutzung vor dem Nachweis des DNS-Eintrags | 409 | nicht wiederholen, Vorgang prüfen |

### Rollen und Erteilungen (Access)

Rollen, Erteilungen und Rechte-Schlüssel. Eingebaute Rollen sind unveränderlich. Eine Rolle kann nie Rechte tragen, die die handelnde Person selbst nicht hat.

| Code | Bedeutung | Typischer Auslöser | HTTP | Erwartete Reaktion |
|---|---|---|---|---|
| `Role.NotFound` | Rolle nicht gefunden | Unbekannte Rollen-Kennung | 404 | nicht wiederholen, Vorgang prüfen |
| `Role.BuiltInImmutable` | System-Rolle unveränderlich | Änderung einer eingebauten Rolle | 409 | nicht wiederholen, Vorgang prüfen |
| `Role.InUse` | Rolle in Verwendung | Löschung einer Rolle, die noch jemand trägt oder die ein Anmeldeweg als Standard führt | 409 | nicht wiederholen, Vorgang prüfen |
| `Role.PermissionNotInCatalog` | Recht nicht im Katalog | Rolle mit einem unbekannten Rechte-Schlüssel | 422 | Eingabe korrigieren |
| `Role.PermissionEscalationBlocked` | Rechte über dem eigenen Set | Rolle mit Rechten, die der Handelnde nicht trägt | 403 | Recht oder Paket prüfen |
| `Grant.NotFound` | Erteilung nicht gefunden | Unbekannte Erteilungs-Kennung | 404 | nicht wiederholen, Vorgang prüfen |
| `Grant.AllowDenyConflict` | Erlauben-Verbieten-Konflikt | Widersprüchliche Erteilungs-Regeln | 422 | Eingabe korrigieren |
| `Grant.ResourceNotOwned` | Ressource nicht im Besitz | Erteilung auf eine fremde Ressource | 403 | Recht oder Paket prüfen |
| `PermissionKey.InvalidSyntax` | Aufbau des Rechte-Schlüssels ungültig | Fehlerhaft aufgebauter Rechte-Schlüssel | 422 | Eingabe korrigieren |

### Einladungen und Registrierung (Onboarding)

Einladungen, Einrichtungsassistent, Anlage einer Organisation, Selbst-Registrierung und Beitrittsanfragen. Zwei Abweichungen von der Bereichsregel sind Absicht: `Signup.TicketInvalid` antwortet 401, weil das Ticket der Nachweis ist, und `Signup.Disabled` 403 — scharf wird die Abschaltung erst, wo ein Ticket vorliegt. Die Registrierung gibt bewusst keine Auskunft über den Bestand: Ein unbekannter, ein verbrauchter und ein abgelaufener Bestätigungscode antworten identisch mit `Signup.TicketInvalid`.

| Code | Bedeutung | Typischer Auslöser | HTTP | Erwartete Reaktion |
|---|---|---|---|---|
| `Invitation.NotFound` | Einladung nicht gefunden | Unbekannte Einladungs-Kennung | 404 | nicht wiederholen, Vorgang prüfen |
| `Invitation.TokenInvalid` | Einladungs-Token ungültig | Fehlerhaftes Token | 400 | Eingabe korrigieren |
| `Invitation.Expired` | Einladung abgelaufen | Abgelaufenes Token | 410 | nicht wiederholen, Vorgang prüfen |
| `Invitation.AlreadyAccepted` | Einladung bereits angenommen | Doppelte Annahme | 409 | nicht wiederholen, Vorgang prüfen |
| `Invitation.Revoked` | Einladung widerrufen | Eingelöste, aber widerrufene Einladung | 410 | nicht wiederholen, Vorgang prüfen |
| `Invitation.RoleNotInTenant` | Rolle nicht in der Organisation | Einladung mit fremder Rolle | 422 | Eingabe korrigieren |
| `SetupStep.Unknown` | Einrichtungsschritt unbekannt | Ungültiger Schritt des Einrichtungsassistenten | 422 | Eingabe korrigieren |
| `Provisioning.SagaFailed` | Anlage der Organisation fehlgeschlagen | Fehler in der mehrstufigen Anlage einer Organisation | 500 | später erneut, bei Wiederholung Trace-Id melden |
| `Provisioning.OwnerEmailAlreadyExists` | Adresse des Inhabers vergeben | Anlage einer Organisation mit belegter Adresse | 409 | nicht wiederholen, Vorgang prüfen |
| `Signup.Disabled` | Selbst-Registrierung abgeschaltet | Der Betrieb hat den Plattform-Schalter aus, während eine Registrierung fortgesetzt wird | 403 | Recht oder Paket prüfen |
| `Signup.TicketInvalid` | Bestätigungscode oder Ticket ungültig | Unbekannter, verbrauchter oder abgelaufener Code — alle drei antworten gleich | 401 | Ausweis prüfen |
| `Signup.DomainClaimedBySso` | Domäne gehört zu einem Unternehmens-Anmeldeweg | Abschluss einer Neuanlage, obwohl die Weiche `sso` ergab | 409 | nicht wiederholen, Vorgang prüfen |
| `Signup.JoinRequired` | Organisation zu dieser Domäne existiert bereits | Abschluss einer Neuanlage, obwohl die Weiche `join` ergab | 409 | nicht wiederholen, Vorgang prüfen |
| `Signup.OrganizationNotEligible` | Organisation nicht wählbar | Beitrittsanfrage an eine Organisation außerhalb der Ticket-Menge | 403 | Recht oder Paket prüfen |
| `JoinRequest.NotFound` | Beitrittsanfrage nicht gefunden | Unbekannte ID oder Anfrage einer fremden Organisation | 404 | nicht wiederholen, Vorgang prüfen |
| `JoinRequest.AlreadyDecided` | Beitrittsanfrage bereits entschieden | Zweite Entscheidung über dieselbe (nicht mehr offene) Anfrage | 409 | nicht wiederholen, Vorgang prüfen |

### Speicher-Verbindungen (Cloud-Connections)

Die Vollmachten auf fremde Speicher-Konten, aus denen die Mediathek ihre Orte speist. Die 409-Codes teilen eine Aussage: Die Verbindung gibt es, ihr Zustand trägt nur nicht — die Antwort darauf ist ein neuer Rundlauf, keine Fehlersuche.

| Code | Bedeutung | Typischer Auslöser | HTTP | Erwartete Reaktion |
|---|---|---|---|---|
| `CloudConnection.NotFound` | Verbindung nicht gefunden | Trennen, Reparieren oder Token-Bezug mit unbekannter oder fremder Verbindungs-Kennung — fremd und erfunden sind absichtlich ununterscheidbar | 404 | nicht wiederholen, Vorgang prüfen |
| `CloudConnection.ProviderUnavailable` | Anbieter nicht eingerichtet | Verbindungsaufbau zu einem Speicher-Anbieter, für den dieser Betrieb keine Konfiguration hinterlegt hat | 404 | nicht wiederholen, Vorgang prüfen |
| `CloudConnection.StateInvalid` | Rücksprung-Zustand unbekannt | Der Rücksprung trägt keinen `state`, den dieser Server begonnen hat: unbekannt, abgelaufen oder schon eingelöst — alle drei antworten gleich | 401 | Ausweis prüfen |
| `CloudConnection.CallbackFailed` | Rücksprung ohne Vollmacht | Code-Tausch gescheitert, Anbieter gewährt keinen Offline-Zugriff, oder die Kontoabfrage schlug fehl | 401 | Ausweis prüfen |
| `CloudConnection.AccountMismatch` | Anderes Konto zurückgekommen | Reparatur-Rundlauf, bei dem die Anmeldung mit einem anderen Konto erfolgt als dem der Verbindung. Eigener Fehler statt stiller Neuanlage — sonst stünden zwei Einträge da, von denen einer nie wieder trägt | 409 | nicht wiederholen, Vorgang prüfen |
| `CloudConnection.Broken` | Vollmacht trägt nicht mehr | Der Anbieter lehnt die Vollmacht ab. Erst ein neuer Rundlauf macht die Verbindung brauchbar. Auch die Mediathek wirft diesen Code, damit das Portal an einer Stelle denselben Knopf baut | 409 | nicht wiederholen, Vorgang prüfen |
| `CloudConnection.Revoked` | Verbindung getrennt | Zugriff, Auffrischen oder Reparieren einer getrennten Verbindung — ihr Geheimnis ist gelöscht, es gibt nichts mehr aufzufrischen | 409 | nicht wiederholen, Vorgang prüfen |

## Zählsatz

Diese Seite führt **51 Codes**. Zusammen mit den übrigen sechs Fehlercode-Seiten ergeben sich 493 fachliche Codes (4xx) und 119 Serverfehler (5xx), also 612 Codes — der vollständige Katalog der Plattform.

## Weiterführendes

- [Das Fehlerformat](/de/api/error-format)
- [Handbuch: Organisation](https://szenera.com/de/docs/organization)
