Zo los je INSUFFICIENT_ACCESS_ON_CROSS_REFERENCE_ENTITY op bij Salesforce-deployments

De gebruiker die de deployment uitvoert, mist veld- of objecttoegang tot een record waarnaar tijdens een Apex-test of automatisering wordt verwezen.

Treedt op tijdens: runtime DML, meestal bij het uitvoeren van Apex-tests

Wat het betekent

INSUFFICIENT_ACCESS_ON_CROSS_REFERENCE_ENTITY treedt op wanneer het profiel of de permission set die de deployment uitvoert, meestal tijdens het uitvoeren van Apex-tests, een veld of object niet kan zien of bewerken dat een trigger, flow of goedkeuringsproces onderweg aanraakt. Salesforce handhaaft de veldniveaubeveiliging of sharing-regels precies zoals geconfigureerd; de deploymentgebruiker heeft simpelweg niet de toegang die de automatisering veronderstelt.

De 'cross-reference' in de naam is de aanwijzing: het gaat niet om het object dat je rechtstreeks invoegt of bijwerkt, maar om een gerelateerd object of veld dat automatisering terzijde aanraakt, het bovenliggende record van een lookup, een gerelateerde lijst, of een veld dat het profiel van de uitvoerende gebruiker beperkt.

Diagnose

Veelvoorkomende oorzaken

Ontbrekende veldniveaubeveiliging
Het profiel van de deployende gebruiker mist lees- of bewerktoegang tot een veld waar een Apex-test of trigger tijdens de validatie naar schrijft.
Flow of goedkeuringsproces draait als een specifieke gebruiker
Een 'uitvoeren als'-gebruiker die op een flow of goedkeuringsproces is geconfigureerd, heeft geen object- of veldtoegang tot de records die het verwerkt.
Sharing-regels blokkeren testdata
Org-wide defaults of sharing-regels verhinderen dat de uitvoerende gebruiker records aanraakt die een Apex-test aanmaakt of bijwerkt.

De oplossing

  1. Verleen de ontbrekende machtigingen
    Voeg veldniveaubeveiliging en objectmachtigingen toe aan het profiel of de permission set die aan de deployende gebruiker is toegewezen.
  2. Controleer 'uitvoeren als'-instellingen
    Controleer elke flow of elk goedkeuringsproces dat is geconfigureerd om als een specifieke gebruiker te draaien, en bevestig dat de machtigingen van die gebruiker de betrokken objecten dekken.
  3. Pas sharing aan voor de testcontext
    Gebruik waar passend 'without sharing'-Apex-klassen voor testopzet, of breid sharing-regels uit om het geautomatiseerde testpad te dekken.
In de praktijk

Hoe Serpent dit voorkomt

Serpent AI voert een preflightvalidatie uit tegen de werkelijke doelorganisatie voordat de eigenlijke deployment plaatsvindt, zodat een machtigingsprobleem verschijnt als een leesbaar reviewcommentaar in plaats van een fout halverwege de deploy. Zie de bibliotheek met Salesforce-deploymentfouten.

Goedkeurings- en audittraceerbaarheid in Serpent

Preventie

Geef de deploymentgebruiker een permission set die elk cross-reference-object dekt
Breng elk gerelateerd object dat je triggers en flows aanraken, niet alleen het primaire object, onder in de permission set van de deployment- of CI-gebruiker.
Geef de voorkeur aan declaratieve 'gebruikerscontext' boven hardgecodeerde run-as-gebruikers
Wanneer een flow of goedkeuringsproces als een specifieke gebruiker moet draaien, documenteer en verifieer de toegang van die gebruiker periodiek opnieuw in plaats van aan te nemen dat deze correct blijft.
Test met het minst bevoorrechte profiel dat je in productie verwacht
Voer CI Apex-tests uit met het profiel van de daadwerkelijke deployment- of integratiegebruiker in plaats van een volledige beheerder, zodat een toegangsprobleem al in CI zichtbaar wordt en niet pas op de releasedag.
Veelgestelde vragen

INSUFFICIENT_ACCESS_ON_CROSS_REFERENCE_ENTITY, uitgelegd

Is dit een bug in mijn code, of een configuratieprobleem van de organisatie?
Bijna altijd configuratie. De metadata is geldig; het profiel of de permission set die de deployment uitvoert, heeft in de doelorganisatie gewoon bredere toegang nodig.
Vertelt de fout mij welk object of veld het probleem is?
Niet altijd bij naam. Het bericht noemt de entiteit vaak generiek; controleer elk object dat de triggers en flows van je Apex-test als gerelateerd record aanraken, niet alleen het object dat wordt ingevoegd.
Voorkomt het uitvoeren van Apex-tests als System Administrator deze fout volledig?
Het kan de fout in CI maskeren, maar dat is een valkuil: productie draait nog steeds met het profiel dat de automatisering daadwerkelijk deployt of triggert, dus het maskeren van het probleem in tests stelt de ontdekking alleen uit tot de releasedag.

Start gratis. Geen creditcard, geen installatie, geen verplichting.

Ingericht in minder dan 15 minuten. Geen DevOps-engineer nodig.

Benieuwd naar sneller releasen voordat je instapt? Laten we praten

Vrijblijvend.