Introduksjon
En Odoo JSONRPC‑feil oppstår når en forespørsel sendt til Odoo via JSON‑RPC‑protokollen ikke kan behandles. JSON‑RPC er kjernen i hvordan Odoo‑nettklienten og mange moderne integrasjoner snakker med serveren.
I motsetning til XML‑RPC er JSON‑RPC særlig utbredt innenfor:
- Interaksjon fra webgrensesnittet
- Skreddersydde integrasjoner
- Headless‑oppsett av Odoo
- Synkronisering mot eksterne systemer
Når en JSON‑RPC‑kall feiler, sender Odoo tilbake et feilsvar som ofte vises som:
RPC_ERROR: Odoo Server Error
Eller som et JSON‑objekt med feildetaljer i API‑svaret.
Denne guiden forklarer hva JSONRPC‑feil i Odoo betyr og gir konkrete fremgangsmåter for å rette dem.
Hva er JSON‑RPC i Odoo?
JSON‑RPC (JavaScript Object Notation Remote Procedure Call) gjør det mulig for klienter å påkalle Odoo‑metoder over HTTP ved å sende JSON‑data.
Et typisk JSON‑RPC‑kall består av et standardisert JSON‑objekt med metadata, tjenestenavn og parametere.
{
"jsonrpc": "2.0",
"method": "call",
"params": {
"service": "object",
"method": "execute_kw",
"args": [
"database_name",
2,
"password",
"res.partner",
"search",
[[["is_company", "=", true]]]
]
},
"id": 1
}
Hvis Odoo møter en feil under behandling, returneres informasjon om unntaket i JSON‑format i svaret.
Vanlige årsaker til Odoo JSONRPC‑feil
1. Feil ved autentisering
Det skjer når forespørselen bruker:
- Feil legitimasjon eller brukernavn
- Feil database
- Utløpt eller ugyldig sesjon
I slike tilfeller avvises kallene av Odoo.
Autentiseringsfeil er blant de vanligste årsakene til JSONRPC‑feil.
2. Ugylidig metodekall
Feil oppstår når nyttelasten refererer til:
- En modell som ikke finnes
- En metode som ikke eksisterer
- Feilaktige argumenter til metoden
Backend gir da et unntak som kommer tilbake som en JSONRPC‑feilmelding.
3. Manglende obligatoriske felt
Ved opprettelse eller oppdatering vil Odoo kaste valideringsfeil hvis obligatoriske felter mangler, og dette vises i JSON‑svaret.
Eksempel på innhold som mangler felt:
{
"name": "Order 001"
}
Dersom partner_id er obligatorisk → vil forespørselen feile.
4. Begrensede tilgangsrettigheter
Hvis API‑brukeren ikke har rettighetene som kreves for handlingen, returnerer Odoo en tilgangsrelatert feil i JSON‑format.
Dette skjer ofte i produksjon hvor integrasjonsbrukere har for stramme tillatelser.
5. Feil relasjons‑IDer
Dersom et Many2one‑felt mottar en ID som ikke finnes, kaster backend et unntak.
Eksempel på innhold som mangler felt:
{
"partner_id": 99999
}
Hvis ID 99999 ikke eksisterer → JSONRPC‑feil.
6. Brudd på databasebegrensninger
Typiske databasefeil inkluderer:
- Duplikatverdi som bryter unik‑konstrainten
- Feil på utenlandsnøkkel (foreign key)
- Not null‑konstraint som brytes
Slike feil dukker ofte opp i JSONRPC‑svarene.
7. Server‑timeout eller tunge operasjoner
Store datasett eller bulkoperasjoner kan overskride tidsgrenser, særlig i høy‑volum integrasjoner.
Slik løser du Odoo JSONRPC‑feil
Steg 1 – Les JSON‑feilmeldingen nøye
De fleste JSONRPC‑svar inneholder:
- Feiltype
- Feilmelding
- Traceback eller stakkspor
Gå gjennom backend‑unntaket for å finne rotårsaken.
Steg 2 – Sjekk autentisering
Kontroller at:
- Databasenavnet er korrekt
- Bruker‑ID eller sesjonstoken er gyldig
- Passord eller API‑nøkkel stemmer
- Brukeren er aktiv og ikke sperret
Steg 3 – Valider forespørselsstrukturen
Før du sender forespørsler bør du:
- Sikre at alle obligatoriske felt er med
- Validere relasjons‑IDer mot eksisterende oppføringer
- Unngå nullverdier i felt som krever verdi
- Sikre korrekte datatyper
Strukturert validering før sending forhindrer mange runtime‑feil.
Steg 4 – Gå gjennom tilgangsrettigheter
Sjekk at integrasjonsbrukeren har de nødvendige rettighetene for å:
- Lese (read)
- Skrive (write)
- Opprette (create)
- Slette (delete)
Avhengig av hvilken operasjon som utføres.
Steg 5 – Test samme handling i Odoo‑UI
Prøv å gjenskape operasjonen manuelt i Odoo‑grensesnittet.
Feiler det i UI også, er sannsynligvis årsaken relatert til data eller rettigheter, ikke til API‑koden.
Steg 6 – Sjekk serverloggene
Hvis JSON‑svaret er generisk, finn full traceback i Odoo‑serverloggene for mer informasjon.
Slik forebygger du JSONRPC‑feil
- Anbefalte praksiser inkluderer å bruke dedikerte API‑brukere
- Validere data før sending
- Logge forespørsler og svar
- Implementere strukturert feilhåndtering i integrasjonen
- Unngå å sende store bulkoperasjoner i ett eneste kall
- Teste integrasjonsflyter i stagingmiljø før produksjon
I API‑styrte Odoo‑oppsett reduserer et mellomlag for validering og transformasjon mellom eksterne systemer og Odoo betraktelig antall JSONRPC‑feil.
Hvordan Dasolo styrker JSONRPC‑kommunikasjonen
JSONRPC‑problemer kommer ofte av uensartet sesjonshåndtering, feilformatert forespørselsdata eller manglende server‑validering. Fordi JSONRPC håndterer de fleste nettinteraksjoner i Odoo, kan små konfigurasjonsfeil skape stadige brukerproblemer.
Hos Dasolo styrker vi JSONRPC‑stabilitet gjennom:
- Strukturert validering av innkommende forespørsler
- Kontrollert håndtering av sesjoner og autentisering
- Tydelige mønstre for unntaks‑ og feilhåndtering
- Sikring og begrensning av eksponerte endepunkter
- Omfattende logging av API‑kall for enkel feilsøking
Et enhetlig kommunikasjonsrammeverk reduserer uventede runtime‑feil og øker plattformens pålitelighet.
Oppsummering
Odoo‑feilmeldingen “JSONRPC Error” dukker opp når et backend‑unntak avbryter kommunikasjonen mellom klient og server. Selv om meldingen kan virke vag, peker den som regel på problemer i forespørselsformatet, autentisering eller serverlogikk.
Ved å gjennomgå API‑strukturer, validere input og innføre forutsigbar feilhåndtering kan utviklere unngå gjentatte JSONRPC‑avbrudd. Et godt designet kommunikasjonslag gir mer stabil og effektiv samhandling i Odoo‑miljøet.