Inleiding
De Odoo JSONRPC‑fout doet zich voor wanneer een verzoek via het JSON‑RPC‑protocol niet correct door Odoo verwerkt wordt. JSON‑RPC vormt de belangrijkste communicatielaag voor de Odoo‑webclient en veel moderne koppelingen.
In tegenstelling tot XML‑RPC wordt JSON‑RPC veelvuldig ingezet voor:
- Interactie met de webfrontend
- Maatwerkintegraties
- Headless‑implementaties van Odoo
- Synchronisatie met externe systemen
Wanneer een JSON‑RPC‑aanroep misloopt, stuurt Odoo een foutantwoord terug dat zich meestal manifesteert als:
RPC_ERROR: Odoo Server Error
Of als een JSON‑object met een foutmelding in API‑antwoorden.
Deze gids verduidelijkt wat JSONRPC‑fouten in Odoo betekenen en hoe je ze correct oplost.
Wat houdt JSON‑RPC in voor Odoo?
JSON‑RPC (JavaScript Object Notation Remote Procedure Call) biedt een manier om Odoo‑methodes via HTTP aan te roepen met JSON‑payloads.
Een standaard JSON‑RPC‑verzoek bevat doorgaans velden zoals:
{
"jsonrpc": "2.0",
"method": "call",
"params": {
"service": "object",
"method": "execute_kw",
"args": [
"database_name",
2,
"password",
"res.partner",
"search",
[[["is_company", "=", true]]]
]
},
"id": 1
}
Wanneer de backend op een uitzondering botst, stuurt Odoo een JSON‑foutantwoord terug met details over de fout.
Veelvoorkomende oorzaken van Odoo JSONRPC‑fouten
1. Authenticatie‑fouten
Dit gebeurt wanneer een verzoek gebruikmaakt van:
- Ongeldige inloggegevens
- Verkeerde databasenaam
- Verlopen sessie
Odoo wijst het verzoek dan af.
Authenticatieproblemen behoren tot de meest voorkomende oorzaken van JSONRPC‑fouten.
2. Ongeldige methodeaanroep
Voorbeelden van problemen in de payload zijn:
- Een model dat niet bestaat
- Een methode die niet bestaat
- Verkeerde argumenten voor de methode
De backend gooit dan een uitzondering die als JSONRPC‑fout terugkomt.
3. Ontbrekende verplichte velden
Laat je bij create of write verplichte velden weg, dan resulteert dat in een validatiefout die in de JSON‑response verschijnt.
Voorbeeld payload:
{
"name": "Order 001"
}
Als partner_id verplicht is → veroorzaakt dit een fout.
4. Toegangsrechten
Als de API‑gebruiker niet voldoende rechten heeft voor de gevraagde actie, stuurt Odoo een toegangsgerelateerde fout in JSON.
Dit gebeurt vaak in productieomgevingen waar integratieaccounts beperkte permissies hebben.
5. Ongeldige relationele IDs
Wanneer een Many2one‑veld een ID krijgt die niet bestaat, zal de backend een uitzondering werpen.
Voorbeeld payload:
{
"partner_id": 99999
}
Bestaat ID 99999 niet → dan volgt een JSONRPC‑fout.
6. Schending van database‑constraints
Voorbeelden van dergelijke fouten zijn:
- Dubbele sleutel: unieke constraint overtreden
- Foreign key‑fout
- Not null‑constraint
Dergelijke fouten verschijnen dikwijls in JSONRPC‑responses.
7. Server‑timeout of zware bewerking
Grote payloads of bulkbewerkingen kunnen timeouts veroorzaken, vooral bij hoogvolume‑integraties.
Stappen om een Odoo JSONRPC‑fout te verhelpen
Stap 1 – Analyseer de JSON‑foutrespons
De meeste JSONRPC‑antwoorden bevatten:
- Fouttype
- Foutboodschap
- Traceback of foutstack
Lees de backend‑exception en stacktrace zorgvuldig om de exacte aanleiding te vinden.
Stap 2 – Controleer authenticatie
Zorg ervoor dat:
- De databasenaam klopt
- De gebruiker of sessietoken geldig is
- Het wachtwoord of API‑sleutel correct is
- De gebruiker actief is
Stap 3 – Valideer de payloadstructuur
Voordat je verzoeken verstuurt:
- Zorg dat alle verplichte velden aanwezig zijn
- Controleer relationele IDs op bestaan
- Vermijd null‑waarden in verplichte velden
- Controleer dat datatypes correct zijn
Een gestructureerde validatielaag vóór verzending voorkomt veel runtime‑fouten.
Stap 4 – Controleer toegangsrechten
Controleer dat de integratiegebruiker over de juiste rechten beschikt:
- Leesrechten
- Schrijfrechten
- Aanmaken
- Verwijderen
Afhankelijk van de uitgevoerde actie.
Stap 5 – Test in de Odoo‑interface
Probeer dezelfde handeling handmatig in Odoo uit te voeren.
Faalt het ook in de UI? Dan is het waarschijnlijk een probleem met data of rechten.
Stap 6 – Bekijk de serverlogs
Als de JSON‑respons te vaag is, raadpleeg dan de Odoo‑serverlogs voor de volledige traceback en aanvullende context.
Hoe je JSONRPC‑fouten voorkomt
- Gebruik speciale API‑accounts
- Valideer data vóór verzending
- Log verzoek‑ en antwoordpayloads
- Implementeer gestructureerde foutafhandeling in je integratie
- Vermijd grote bulkbewerkingen in één enkele oproep
- Test integratiestromen in een stagingomgeving
In API‑gestuurde Odoo‑omgevingen vermindert een tussenlaag voor validatie en transformatie tussen externe systemen en Odoo het aantal JSONRPC‑fouten aanzienlijk.
Hoe Dasolo de JSONRPC‑communicatie robuuster maakt
JSONRPC‑fouten ontstaan vaak door onscherpe sessiebehandeling, foutieve requeststructuren of onvoldoende gevalideerde serverlogica. Omdat JSONRPC het werkpaard is voor de meeste webinteracties in Odoo, kunnen kleine configuratie‑ of datakloven leiden tot terugkerende frontendrechtsproblemen.
Bij Dasolo versterken we JSONRPC‑stabiliteit met maatregelen zoals:
- Gestructureerde requestvalidatie
- Beheer van sessies met duidelijke levensduur en vernieuwing
- Consistente patronen voor exception‑afhandeling
- Beveiligde blootstelling van endpoints
- Uitgebreide logging van API‑calls
Een coherent communicatieframework vermindert onverwachte runtimefouten en verhoogt de betrouwbaarheid van het platform.
Slotwoord
De Odoo‑melding “JSONRPC Error” verschijnt meestal wanneer een backend‑exception de communicatie tussen client en server onderbreekt. Hoewel de fout generiek oogt, duidt ze vaak op dieperliggende problemen in requestopbouw, authenticatie of serverlogica.
Door API‑structuren zorgvuldig te controleren, invoer te valideren en voorspelbare foutafhandeling te implementeren, kun je terugkerende JSONRPC‑storingen voorkomen. Een goed ontworpen communicatie‑laag zorgt voor stabiele en efficiënte interactie binnen Odoo‑omgevingen.