So beheben Sie PORTAL_USER_ALREADY_EXISTS_FOR_CONTACT bei Salesforce-Deployments
Ein Contact hat bereits einen aktiven Experience-Cloud-Benutzer, daher kann kein neuer Portalbenutzer dafür erstellt werden.
Tritt auf bei: Laufzeit-DML, in Benutzer-Provisioning-Skripten und DatenmigrationenWas das bedeutet
PORTAL_USER_ALREADY_EXISTS_FOR_CONTACT bedeutet, dass ein Versuch, einen Experience-Cloud-Benutzer (Community/Portal) für einen Contact zu erstellen, fehlgeschlagen ist, weil dieser Contact bereits einen besitzt. Salesforce erlaubt nur einen aktiven Portalbenutzer pro Contact und Portal, daher wird ein zweiter Erstellungsversuch abgelehnt, statt eine doppelte Identität anzulegen.
Die Einschränkung gilt pro Portal, nicht pro Org: Ein Contact kann über mehrere unterschiedliche Experience-Cloud-Sites hinweg separate Portalbenutzer haben, und dieser Fehler tritt nur auf, wenn das konkrete Zielportal bereits einen aktiven, mit diesem Contact verknüpften Benutzer hat.
Häufige Ursachen
Die Lösung
- Vor dem Erstellen nach einem bestehenden Portalbenutzer suchenPrüfen Sie den Contact auf einen bestehenden aktiven User-Datensatz, der mit dem Zielportal verknüpft ist, bevor Sie den Erstellungsschritt ausführen.
List<User> existing = [ SELECT Id FROM User WHERE ContactId = :contactId AND IsActive = true AND IsPortalEnabled = true ]; - Bestehende Benutzer reaktivieren oder aktualisieren, statt sie neu zu erstellenVerwenden Sie eine Upsert-Logik, die den vorhandenen Portalbenutzer eines Contacts aktualisiert, statt immer einen neuen Insert zu versuchen.
- Contacts vor der Massen-Benutzerprovisionierung deduplizierenBereinigen Sie doppelte Contact-Datensätze, damit ein Provisioning-Skript nicht versucht, zwei Portalbenutzer für eigentlich eine Person zu erstellen.
Wie Serpent das verhindert
Die Pipeline von Serpent führt die Datenkonfiguration über denselben Task-Workflow aus wie alles andere, sodass ein Reprovisioning-Skript, das nicht auf vorhandene Portalbenutzer prüft, sichtbar am Task fehlschlägt statt während eines Live-Onboarding-Laufs. Siehe die Bibliothek der Salesforce-Deployment-Fehler.

Prävention
Verwandte Fehler
PORTAL_USER_ALREADY_EXISTS_FOR_CONTACT, beantwortet
Kostenlos starten. Keine Kreditkarte, keine Installation, keine Verpflichtung.
In unter 15 Minuten eingerichtet. Keine DevOps-Fachkraft nötig.
