Inledning
Ett Odoo JSONRPC‑fel uppstår när ett anrop mot Odoo via JSON‑RPC-protokollet inte går igenom. JSON‑RPC är den huvudsakliga kommunikationsvägen för Odoos webbklient och många moderna integrationer.
Till skillnad från XML‑RPC används JSON‑RPC ofta för:
- Interaktioner i webbgränssnittet
- Skräddarsydda integrationer
- Headless‑implementationer av Odoo
- Synkronisering med externa system
När ett JSON‑RPC‑anrop misslyckas returnerar Odoo ett felobjekt som ofta syns som:
RPC_ERROR: Odoo Server Error
Eller i API‑svar som ett JSON‑felobjekt.
Den här guiden beskriver vad JSONRPC‑fel betyder i Odoo och hur du felsöker dem på ett korrekt sätt.
Vad är JSON‑RPC i Odoo?
JSON‑RPC (JavaScript Object Notation Remote Procedure Call) låter klienter anropa Odoo‑metoder över HTTP med JSON‑paket.
Ett typiskt JSON‑RPC‑anrop innehåller fält som anger version, metod, parametrar och ett id.
{
"jsonrpc": "2.0",
"method": "call",
"params": {
"service": "object",
"method": "execute_kw",
"args": [
"database_name",
2,
"password",
"res.partner",
"search",
[[["is_company", "=", true]]]
]
},
"id": 1
}
Om backend kastar ett undantag returnerar Odoo ett JSON‑fel i svaret.
Vanliga orsaker till Odoo JSONRPC‑fel
1. Autentiseringsfel
Detta händer om anropet använder:
- Felaktiga inloggningsuppgifter
- Fel databas
- Utgången session
Odoo avvisar anropet.
Autentiseringsproblem är en av de vanligaste orsakerna till JSONRPC‑fel.
2. Ogiltigt metodanrop
Om JSON‑paketet refererar till:
- Ett icke‑existerande modellnamn
- En icke‑existerande metod
- Felaktiga metoddargument
kastar backend ett undantag som syns som ett JSONRPC‑fel.
3. Saknade obligatoriska fält
Om ett create‑ eller write‑anrop saknar obligatoriska fält genererar Odoo ett valideringsfel som visas i JSON‑svaret.
Exempel:
{
"name": "Order 001"
}
Om partner_id krävs → fel.
4. Behörighetsbegränsningar
Om API‑användaren saknar rättigheter för åtgärden returnerar Odoo ett accessrelaterat fel i JSON.
Det här är vanligt i produktionsmiljöer där integrationskonton har begränsade rättigheter.
5. Ogiltiga relationella id
Om ett Many2one‑fält får ett id som inte finns så kastar backend ett undantag.
Exempel:
{
"partner_id": 99999
}
Om id 99999 inte finns → JSONRPC‑fel.
6. Databas‑ och integritetsbegränsningar
Fel som:
- Dubblettnyckel bryter unikhetsbegränsning
- Främmande nyckelkonflikt
- Not null‑begränsning
kan dyka upp i JSONRPC‑svar.
7. Server‑timeout eller tunga operationer
Stora payloads eller massoperationer kan överskrida timeout‑gränser, särskilt vid hög belastning.
Så åtgärdar du Odoo JSONRPC‑fel
Steg 1 – Granska JSON‑felsvaret
De flesta JSONRPC‑svar innehåller:
- Feltyp
- Felmeddelande
- Traceback
Läs backendens undantagsuppgifter noggrant.
Steg 2 – Kontrollera autentisering
Säkerställ att:
- Databasnamnet är korrekt
- Användar‑ID eller sessionstoken är giltig
- Lösenord eller API‑nyckel stämmer
- Användaren är aktiv
Steg 3 – Validera payloadens struktur
Innan du skickar anrop:
- Kontrollera att obligatoriska fält finns med
- Validera relationella id
- Undvik null‑värden i obligatoriska fält
- Säkerställ rätt datatyper
Strukturerad validering före sändning förhindrar många fel i körning.
Steg 4 – Granska behörigheter
Kontrollera att integrationsanvändaren har:
- Läsrättigheter
- Skrivrättigheter
- Skapar‑rättigheter
- Raderingsrättigheter
beroende på åtgärd.
Steg 5 – Testa i Odoo‑gränssnittet
Återskapa samma åtgärd manuellt i Odoo.
Om den misslyckas i UI är problemet sannolikt data‑ eller behörighetsrelaterat.
Steg 6 – Kontrollera serverloggar
Om JSON‑svaret är vagt, titta i Odoo‑loggarna för full traceback och kontext.
Hur du undviker JSONRPC‑fel
- Använd dedikerade API‑konton
- Validera data innan du skickar
- Logga request/response‑payloads
- Implementera strukturerad felhantering i integrationen
- Undvik att skicka massoperationer i ett enda anrop
- Testa integrationsflöden i stagingmiljö
I API‑styrda Odoo‑lösningar minskar en mellanliggande validerings‑ och transformationsnivå mellan externa system och Odoo avsevärt antalet JSONRPC‑fel.
Hur Dasolo förbättrar JSONRPC‑kommunikationen
Många JSONRPC‑fel har sina rötter i ostadig sessionhantering, felbyggda förfrågningar eller otillräcklig server‑validering. Eftersom JSONRPC driver större delen av webbkontakten i Odoo kan små glapp i konfigurationen ge återkommande problem i frontend.
På Dasolo stärker vi JSONRPC‑stabiliteten med:
- Strukturerad request‑validering
- Kontrollerad sessionhantering
- Tydliga undantagshanteringsmönster
- Säker exponering av endpoints
- Omfattande loggning av API‑anrop
Ett konsekvent kommunikationsramverk minskar oväntade runtime‑fel och ökar plattformens tillförlitlighet.
Sammanfattning
Odoo‑felet ”JSONRPC Error” uppstår vanligen när ett backend‑undantag avbryter kommunikationen mellan klient och server. Trots att meddelandet kan verka generellt speglar det ofta underliggande problem med anropsformat, autentisering eller serverlogik.
Genom att granska API‑strukturer, validera indata och införa förutsägbar felhantering kan utvecklare undvika återkommande JSONRPC‑störningar. Ett välbyggt kommunikationslager ger stabilare och effektivare samspel i Odoo‑miljöer.