Overslaan naar inhoud

Record Bestaat Niet Of Is Verwijderd: Oplossing Für Foutmelding In Odoo

Ontdek hoe je de foutmelding “record does not exist” in Odoo oplost. Dit artikel geeft heldere uitleg over wat die fout betekent, waarom ze vaak voorkomt en welke concrete stappen je als gebruiker of ontwikkelaar kunt zetten om het probleem te onderzoeken en te verhelpen. Je leert hoe je foutbronnen herkent — zoals verkeerde externe id's, verwijderde records, toegangsrechten of synchronisatieproblemen — en krijgt praktisch toepasbare oplossingen: logbestanden raadplegen, databasequery's uitvoeren, access rights en record rules controleren, correcte XML/CSV-imports toepassen en herstelstrategieën voor migratie of replicatie. Met de meegegeven checklist en troubleshooting-stappen kun je zowel acute incidenten snel verhelpen als structurele oorzaken aanpakken zodat de fout minder vaak terugkeert.
17 februari 2026 in
Elisa Van Outrive
| Nog geen reacties

Introductie


De melding “Record does not exist or has been deleted” is een van die berichten in Odoo die gebruikers koud kunnen laten aanvoelen: je klikt iets open en plots klopt de referentie niet meer. Meestal verschijnt deze fout bij het openen van een formulier, het valideren van een document of wanneer een geautomatiseerde taak start.


Achter de theatrale bewoording schuilt zelden corrupte data; vaker gaat het om een verbroken verwijzing — een koppeling naar een id dat Odoo niet meer kan terugvinden.


We leggen in eenvoudige stappen uit wat er echt aan de hand is en hoe je veilig en systematisch tot een oplossing komt.

Wat deze foutmelding aangeeft


Concreet gebeurt het wanneer Odoo probeert een record te laden met een id die:


  • niet meer bestaat
  • verwijderd werd
  • niet zichtbaar is door toegangsrechten
  • of tot een andere bedrijfseenheid behoort

Praktisch voorbeeld:


record = self.env['res.partner'].browse(45)

Als er geen record met id 45 bestaat, werpt Odoo de fout.



Veelvoorkomende oorzaken



1. Verwijderde records die nog ergens genoemd worden

Relatievelden (Many2one) kunnen nog steeds naar records wijzen die intussen verwijderd zijn.


Dit komt vaak voor na acties zoals:


  • handmatige verwijderingen door gebruikers
  • opschonen van testdata
  • mislukte importen

2. Foute externe ID-mapping


Bij koppelingen met externe systemen kan er een ongeldige id meegestuurd worden.

Stel dat Odoo ontvangt:


{ "partner_id": 99999 }

en die id is niet aanwezig in je database — dan krijg je de foutmelding.


3. Multi-company beperkingen


Het record kan wél bestaan, maar niet binnen de huidige bedrijfscontext waarop de gebruiker kijkt.

Als je overschakelt naar een administratieve supergebruiker, zie je het record vaak wel terug.


4. Problemen na migratie of upgrade


Bij module-upgrades of datamigraties kunnen referenties verschuiven of verouderen, waardoor bestaande koppelingen niet meer kloppen.

Hoe je het oplost


Stap 1 – Controleer of het record bestaat

Gebruik de ORM-check: record = self.env['model.name'].browse(record_id) if record.exists(): # veilig om verder te werken

Stap 2 – Controleer toegangsrechten


Probeer dezelfde handeling met een admin-account.

Als de admin het record ziet en de gewone gebruiker niet → dan is er een access rule- of record rule-probleem.


Stap 3 – Repareer relationele velden


Zoek naar verweesde Many2one-koppelingen en zet ze recht of maak ze leeg waar nodig.


Stap 4 – Controleer externe integraties


Bekijk kritisch de volgende onderdelen:


  • API-berichten en payloads
  • mapping- en transformatieregels
  • de synchronisatielaag tussen systemen

Onjuiste id-mapping is een klassieke oorzaak bij geïntegreerde omgevingen.



Hoe je het voorkomt



  • Vermijd het hardcoderen van id’s
  • Gebruik externe ids (XML-ID’s) op de juiste manier
  • Valideer inkomende API-gegevens
  • Draai migraties eerst grondig op een stagingomgeving
  • Verwijder geen records als ze elders nog gebruikt worden


Hoe Dasolo zulke “Record Does Not Exist”-problemen voorkomt


De foutmelding duidt vaak op inconsistenties tussen modellen: niet zozeer dat data verdwenen is, maar dat relaties kapot zijn geraakt. Hoewel de fout zichtbaar kan zijn in de gebruikersinterface, ligt de oorzaak doorgaans bij verwijderde records, gebroken relationele links of onveilige aanpassingen op database-niveau.


Bij Dasolo beschouwen we zo’n fout als een signaal van structurele zwakte in plaats van als op zichzelf staand incident. Vaak wijst de melding op:


  • verweesde relations (orphaned references)
  • onjuist uitgevoerde deletieworkflows
  • mismatch tussen gekoppelde systemen
  • ontbrekende validatie vóór toegang tot records
  • niet consequent beheer van multi-company contexten

Onze aanpak: in plaats van harde deleties kiezen we voor archiveren en duidelijke levenscyclusregels voor data. We bouwen oplossingen met ORM-best practices en referentiële integriteit zodat onverwachte “record not found”-exceptions in productie sterk teruggedrongen worden.



Conclusie


Samengevat: de Odoo-fout ’Record Does Not Exist’ betekent dat het systeem naar een record zoekt dat verwijderd is of nooit correct werd aangemaakt. Meestal is het probleem dieper — gebroken relationele logica of onveilige datahandelingen.


Door consistentie in relaties te bewaren, altijd te controleren of een record bestaat voordat je het gebruikt, en direct sql-manipulaties te vermijden, kun je dit probleem aanzienlijk verminderen. Een goed ontwerp en gecontroleerde workflows houden de database stabiel en voorspelbaar.


Een correcte aanpak lost niet alleen de onmiddellijke fout op, maar versterkt ook de algemene stabiliteit van je database en verhoogt de betrouwbaarheid van het systeem op lange termijn.

Veelgestelde vragen


Niet per se. Het kan zijn dat het record tijdelijk onzichtbaar is of enkel niet bereikbaar vanuit de huidige context.

Ja — vooral geautomatiseerde synchronisaties en batch-jobs kunnen hierdoor vastlopen.

Alleen wanneer je zeker weet dat er geen relationele afhankelijkheden zijn; anders is archiveren of zorgvuldig ontkoppelen de veiligere keuze.


Elisa Van Outrive 17 februari 2026
Deel deze post
Aanmelden om een reactie achter te laten