So beheben Sie CANT_DISABLE_LAST_ADMIN bei Salesforce-Deployments

Salesforce verhindert das Deaktivieren oder Einfrieren des letzten aktiven Benutzers mit System-Administrator-Zugriff, um eine Aussperrung aus der Org zu verhindern.

Tritt auf bei: Laufzeit-DML für die Benutzerverwaltung, kein Metadaten-Deployment

Was das bedeutet

CANT_DISABLE_LAST_ADMIN tritt auf, wenn ein Vorgang versucht, dem letzten verbleibenden aktiven Benutzer mit Adminrechten diese zu entziehen, ihn einzufrieren oder zu deaktivieren. Salesforce erzwingt dies als Schutzmechanismus: Eine Org ohne aktive Admins kann nicht über die Benutzeroberfläche wiederhergestellt werden, daher verweigert die Plattform die Änderung von vornherein, statt sie versehentlich zuzulassen.

Dies gilt für jeden Benutzer mit einem Zugriff, der System-Administrator-Rechten entspricht, nicht nur für das Profil, das wörtlich so heißt. Ein individuelles Profil oder eine Kombination aus Permission Sets, die "Modify All Data" plus "Manage Users" gewährt, kann denselben Schutz auslösen.

Diagnose

Häufige Ursachen

Massen-Deprovisioning deaktiviert Admins ohne Prüfung der Anzahl
Ein Offboarding-Skript deaktiviert eine Gruppe von Benutzern, einschließlich Admins, ohne zu prüfen, wie viele aktive Admins danach noch übrig bleiben.
Alter Admin wird deaktiviert, bevor der neue vollständig aktiv ist
Ein Übergabeprozess deaktiviert den Zugriff des ausscheidenden Admins, bevor das Konto und die Berechtigungen des Ersatz-Admins als aktiv bestätigt sind.
Änderungen an Permission Sets entfernen adminäquivalenten Zugriff org-weit
Ein Deployment aktualisiert Permission-Set-Zuweisungen so, dass "Modify All Data" allen verbleibenden aktiven Benutzern gleichzeitig entzogen wird.

Die Lösung

  1. Bestätigen, dass ein weiterer aktiver Admin existiert, bevor einer deaktiviert wird
    Prüfen Sie die Anzahl aktiver Benutzer mit System-Administrator- oder gleichwertigem Zugriff, bevor ein Deprovisioning-Schritt läuft.
    SELECT COUNT(Id) FROM User
    WHERE IsActive = true AND Profile.PermissionsModifyAllData = true
  2. Zuerst den Ersatz-Admin aktivieren
    Ordnen Sie das Offboarding so, dass Konto und Berechtigungen des neuen Admins als funktionsfähig bestätigt sind, bevor der alte deaktiviert wird.
  3. Admin-Anzahl-Prüfung in Pre-Deploy- oder Pre-Deprovisioning-Skripte einbauen
    Bauen Sie einen Schutzmechanismus direkt in die Automatisierung ein, damit sie keine Änderung einreichen kann, die null aktive Admins zurücklassen würde.
In der Praxis

Wie Serpent das verhindert

Der Org-Zugriff in Serpent ist an den Task- und Deployment-Verlauf gebunden, sodass ein Deprovisioning-Skript, das eine Org ohne aktiven Admin zurücklassen würde, klar fehlschlägt, statt eine Sandbox oder Scratch-Org stillschweigend zu sperren. Siehe die Bibliothek der Salesforce-Deployment-Fehler.

Freigabe- und Audit-Nachverfolgbarkeit in Serpent

Prävention

Immer mindestens zwei aktive Admins pro Org vorhalten
Behandeln Sie eine Org mit nur einem Admin als einen Vorfall in Wartestellung; ein zweites aktives Admin-Konto ist die günstigste Versicherung gegen diesen Fehler und gegen Aussperrung im Allgemeinen.
Offboarding als geordnete Schritte automatisieren, nicht als einzelnen Batch
Trennen Sie "neuen Admin gewähren" und "alten Admin widerrufen" in eigenständige, aufeinanderfolgende Schritte mit einer Prüfung dazwischen.
Permission-Set-Deployments auf org-weite Zugriffsänderungen prüfen
Markieren Sie jedes Deployment, das Modify All Data oder Manage Users bei mehreren Benutzern gleichzeitig ändert, zur manuellen Prüfung vor der Ausführung.
Häufige Fragen

CANT_DISABLE_LAST_ADMIN, beantwortet

Blockiert dies auch das Einfrieren eines Admin-Kontos, nicht nur dessen Deaktivierung?
Ja. Derselbe Schutz gilt für das Einfrieren des letzten aktiven Admins, da sich ein eingefrorener Benutzer ebenfalls nicht anmelden kann.
Spielt es eine Rolle, welches Profil der Admin nutzt, oder nur die Berechtigungsstufe?
Entscheidend ist die Berechtigungsstufe. Jeder aktive Benutzer, dessen Profil oder Permission Sets adminäquivalenten Zugriff gewähren, allen voran Modify All Data, zählt zum Minimum, unabhängig vom Namen des Profils.
Was, wenn ich den einzigen Admin tatsächlich entfernen muss, etwa um eine Org stillzulegen?
Deaktivieren Sie zuerst alle anderen Benutzer und lassen Sie den Admin bis zuletzt aktiv, oder wenden Sie sich an den Salesforce-Support, wenn die Org selbst vollständig stillgelegt wird.

Kostenlos starten. Keine Kreditkarte, keine Installation, keine Verpflichtung.

In unter 15 Minuten eingerichtet. Keine DevOps-Fachkraft nötig.

Neugierig auf schnelleres Shipping, bevor Sie einsteigen? Sprechen wir

Unverbindlich.