So beheben Sie CANNOT_UPDATE_CONVERTED_LEAD in Salesforce-Deployments
Apex- oder API-Code versucht, einen Lead zu aktualisieren, nachdem dieser bereits konvertiert wurde, und Salesforce blockiert den Schreibvorgang.
Tritt auf bei: DML zur Laufzeit, meist innerhalb eines Triggers, Batch-Jobs oder Apex-TestsWas das bedeutet
CANNOT_UPDATE_CONVERTED_LEAD tritt auf, wenn Apex oder ein API-Aufruf versucht, einen bereits konvertierten Lead-Datensatz zu aktualisieren. Nach der Konvertierung wird ein Lead schreibgeschützt, mit Ausnahme einiger weniger Felder, die Salesforce weiterhin zulässt, sodass jede andere Aktualisierung abgelehnt statt stillschweigend ignoriert wird.
Es handelt sich um einen Laufzeitfehler, keinen Deployment-Fehler: Der Trigger oder Batch-Job selbst wird problemlos deployt, und der Fehler tritt erst auf, wenn der Code tatsächlich gegen einen konvertierten Datensatz ausgeführt wird, häufig innerhalb der Apex-Tests, die ein Produktions-Deployment erfordert.
Häufige Ursachen
Die Lösung
- Datensätze mit IsConverted = true vor dem Aktualisieren von Leads herausfilternFügen Sie IsConverted = false zu jeder Abfrage oder WHERE-Klausel hinzu, die eine Massenaktualisierung von Leads steuert.
List<Lead> leads = [ SELECT Id, Status FROM Lead WHERE IsConverted = false AND Id IN :leadIds ]; update leads; - IsConverted-Prüfungen in die Trigger-Logik einbauenSichern Sie Lead-Trigger-Handler so ab, dass konvertierte Datensätze übersprungen werden, statt an die Aktualisierungslogik weitergereicht zu werden.
- Stattdessen den resultierenden Datensatz aktualisierenSobald ein Lead konvertiert wurde, aktualisieren Sie den daraus entstandenen Contact, Account oder die Opportunity statt des ursprünglichen Leads.
Wie Serpent das verhindert
Da Serpent vor jedem Merge die vollständige Apex-Testsuite für jede Aufgabe ausführt, schlägt ein Trigger, der konvertierte Leads nicht herausfiltert, als Testfehler auf dem Branch fehl, der ihn eingeführt hat, nicht erst bei einem Produktions-Release. Siehe die Bibliothek der Salesforce-Deployment-Fehler.

Prävention
Verwandte Fehler
CANNOT_UPDATE_CONVERTED_LEAD, beantwortet
Kostenlos starten. Keine Kreditkarte, keine Installation, keine Verpflichtung.
Einrichtung in unter 15 Minuten. Keine DevOps-Einstellung nötig.
