Introductie
De Odoo XMLRPC-fout duikt op wanneer een extern systeem en Odoo niet correct met elkaar communiceren via het XML‑RPC‑protocol. XML‑RPC is één van de standaard API-mogelijkheden van Odoo die externe applicaties toelaat om in te loggen en records te lezen, aan te maken, bij te werken of te verwijderen.
In tegenstelling tot zichtbare fouten in de gebruikersinterface, verschijnen XMLRPC-fouten meestal in:
- integratielogs
- logs van externe applicaties
- server tracebacks
- API-responses
Deze fouten komen vaak voor in omgevingen waar Odoo gekoppeld is met:
- webshops en e‑commerceplatformen
- andere ERP- of boekhoudsystemen
- CRM‑systemen
- maatwerkapplicaties en middleware
Deze handleiding geeft een praktisch overzicht van de oorzaken van XMLRPC-fouten in Odoo en hoe je ze efficiënt oplost.
Wat is XML-RPC in Odoo?
XML‑RPC (Extensible Markup Language Remote Procedure Call) laat externe applicaties HTTP‑verzoeken sturen naar Odoo om methodes op te roepen en bewerkingen uit te voeren.
De standaardstroom verloopt globaal als volgt:
- authenticatie van de gebruiker
- opvragen van de gebruikers‑ID (uid)
- aanroepen van modelmethodes via execute_kw
Voorbeeld (Python)
import xmlrpc.client
url = "https://jouw-odoo-instance.com"
db = "database_naam"
username = "gebruiker@voorbeeld.be"
password = "wachtwoord"
common = xmlrpc.client.ServerProxy(f"{url}/xmlrpc/2/common")
uid = common.authenticate(db, username, password, {})
models = xmlrpc.client.ServerProxy(f"{url}/xmlrpc/2/object")
models.execute_kw(
db, uid, password,
'res.partner', 'search',
[[['is_company', '=', True]]]
)
Als ergens in die keten iets misgaat, stuurt Odoo een XMLRPC‑fout terug.
Veelvoorkomende oorzaken van Odoo XMLRPC-fouten
1. Authenticatie mislukt
Wanneer de toegangsgegevens niet kloppen:
- verkeerd wachtwoord
- verkeerde database
- gebruiker is gedeactiveerd
weigert Odoo de authenticatie. Een veelvoorkomend resultaat is:
AccessDenied
2. Verkeerde model‑ of methodenaam
Als je een aanroep uitvoert naar:
models.execute_kw(db, uid, password, 'wrong.model', 'search', [])
zal Odoo falen omdat het model niet bestaat.
3. Ongeldig veld of parameter
Wanneer de payload velden bevat die niet bestaan, bijvoorbeeld:
{'non_existing_field': 'waarde'}
gooit Odoo een back‑end uitzondering die als XMLRPC‑fout zichtbaar wordt.
4. Toegangsrechten te beperkend
Als de API‑gebruiker geen rechten heeft om te:
- lezen
- schrijven
- aanmaken
- verwijderen
zal Odoo een toegangsgerelateerde fout teruggeven.
Dit komt bijzonder vaak voor in productieintegraties.
5. Dataintegriteitsproblemen
Fouten zoals:
- unieke constraint overtreding
- foreign key‑fout
- ontbrekend verplicht veld
kunnen zich manifesteren als XMLRPC‑fouten.
6. Server‑timeout of te zware requests
Grote batches of zware bewerkingen overschrijden soms timeout‑limieten.
Een veelvoorkomende foutbron is bulk creatie zonder batching.
Hoe los je een Odoo XMLRPC-fout op
Stap 1 – Controleer authenticatie
Verifieer de volgende gegevens:
- databasenaam
- gebruikersnaam
- wachtwoord
- status van de gebruiker (actief/inactief)
- of de gebruiker de juiste toegangsrechten heeft
Test eerst de authenticatie apart voordat je objectmethodes aanroept.
Stap 2 – Valideer model- en methodenames
Controleer of:
- het model bestaat in Odoo
- de methode oproepbaar is
- en de parameters het juiste formaat hebben
Zet indien nodig de ontwikkelaarsmodus aan om modelnamen te inspecteren.
Stap 3 – Controleer toegangsrechten
Zorg dat de API‑gebruiker in de juiste groepen zit.
Bekijk onder meer:
Instellingen → Gebruikers → Toegangsrechten
Gebruik bij voorkeur een dedicated integratiegebruiker in plaats van een persoonlijk account.
Stap 4 – Valideer de payloadstructuur
Voor je data naar Odoo stuurt:
- zorg dat verplichte velden aanwezig zijn
- controleer relationele IDs
- stuur geen lege of null‑referenties mee
Een grondige validatielaag vóór verzending voorkomt veel XMLRPC‑fouten.
Stap 5 – Bekijk de Odoo‑serverlogs
Als de foutmelding onduidelijk is, leveren de serverlogs vaak de volledige traceback en oorzaak.
De foutmelding aan de integratie‑kant bevat zelden alle technische details.
Stap 6 – Gebruik batching voor grote bewerkingen
Verdeel duizenden records over kleinere batches in plaats van één enkele oproep.
Dat vermindert timeoutproblemen en maakt foutafhandeling beheersbaar.
Hoe voorkom je XMLRPC-fouten
- Gebruik een dedicated API‑gebruiker
- Valideer data voor verzending
- Log alle verzoeken en antwoorden
- Test integraties eerst in een stagingomgeving
- Vermijd directe database‑aanpassingen
- Implementeer robuuste foutafhandeling aan clientzijde
In gestructureerde integratielandschappen voorkomt een tussenschakel die data transformeert en valideert dat veel fouten pas in productie optreden.
Hoe Dasolo XMLRPC-integraties beveiligt
XMLRPC‑fouten ontstaan vaak door verouderde authenticatiemethoden, verkeerd opgebouwde payloads of gebrek aan validatie vóór verzending. Omdat XMLRPC nog veel gebruikt wordt in legacy‑koppelingen, kunnen kleine afwijkingen snel leiden tot terugkerende storingen.
Bij Dasolo brengen we stabiliteit in XMLRPC‑landschappen door het invoeren van de volgende maatregelen:
- Toegewijde technische gebruikers
- Strikte payloadvalidatie
- Heldere authenticatieafhandeling
- Beperkte en gecontroleerde methode‑exposure
- Gestructureerde logging van externe calls
Een consistente integratielaag reduceert merkbaar de instabiliteit van XMLRPC in productieomgevingen.
Conclusie
De Odoo “XMLRPC Error” verschijnt wanneer een externe oproep faalt door authenticatieproblemen, ongeldige gegevens of backend‑exceptions. Wat op het eerste gezicht technisch lijkt, heeft vaak zijn oorsprong in onvoldoende integratieontwerp of ontbrekende validatie.
Door authenticatiestromen te controleren, verzoekpayloads te valideren en permissies correct in te stellen, kun je terugkerende XMLRPC‑fouten voorkomen. Een goed beheerste API‑architectuur zorgt op lange termijn voor stabiele communicatie tussen Odoo en externe systemen.