Innledning
XML-RPC-feilen i Odoo oppstår når en ekstern løsning ikke lykkes med å kommunisere med Odoo via XML-RPC-protokollen. XML-RPC er et av Odoos faste grensesnitt som gjør det mulig for eksterne systemer å logge inn, hente, opprette, oppdatere eller slette data i systemet.
I motsetning til vanlige brukervennlige feilmeldinger dukker XMLRPC-feil ofte opp i tekniske kanaler som:
- integrasjonslogger
- logger fra eksterne applikasjoner
- serverens traceback-logger
- API-responser
Disse feilene er særlig vanlige i miljøer hvor Odoo er koblet mot andre systemer som:
- nettbutikker og e‑handelsplattformer
- andre ERP‑systemer
- CRM‑løsninger
- skreddersydde applikasjoner eller interne verktøy
Denne guiden går gjennom hvorfor XMLRPC-feil oppstår i Odoo, og viser praktiske trinn for å identifisere og rette dem.
Hva er XML-RPC i Odoo?
Kort fortalt: XML-RPC (Extensible Markup Language Remote Procedure Call) lar et eksternt system kjøre metoder i Odoo over HTTP, slik at handlinger kan utføres på tvers av tjenester.
En typisk sekvens ser normalt slik ut:
- Autentisere brukeren
- Få brukernes ID (uid)
- Kalle modellmetoder via execute_kw
Eksempel (Python):
import xmlrpc.client
url = "https://din-odoo-instans.no"
db = "database_navn"
username = "bruker@eksempel.no"
password = "passord"
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]]]
)
Hvis ett av trinnene i kjeden feiler, svarer Odoo med en XMLRPC‑feilmelding som typisk inneholder en teknisk feilmelding og eventuell traceback.
Vanlige årsaker til Odoo XMLRPC-feil
1. Autentiseringsfeil
Ved feil i legitimacene kan autentiseringen stoppe opp, for eksempel:
- Feil passord
- Feil database
- Brukeren er deaktivert
Odoo avviser påloggingsforsøket. Vanlig feilkode/feilmelding:
AccessDenied
2. Feil modell- eller metodenavn
Dersom du prøver å kalle en ikke-eksisterende modell eller metode, for eksempel:
models.execute_kw(db, uid, password, 'wrong.model', 'search', [])
vil Odoo kaste feil fordi modellen/metoden ikke finnes.
3. Ugyldig felt eller parameter
Når nyttelasten inneholder felt som ikke finnes i modellen,
for eksempel {'non_existing_field': 'value'},
kaster backenden en unntaksfeil som dukker opp som XMLRPC‑feil.
4. Rettighetsbegrensninger
Hvis API‑brukeren mangler tillatelser for å utføre operasjoner som:
- lese (read)
- skrive (write)
- opprette (create)
- slette (delete),
vil Odoo returnere et tilgangsrelatert unntak.
Dette er særlig vanlig i produksjonsmiljøer med strenge tilgangskontroller.
5. Dataintegritetsbrudd
Feil som kan oppstå inkluderer:
- Brudd på unike felt (unique constraint)
- Ugyldig fremmednøkkel (foreign key)
- Manglende obligatorisk felt
slike problemer kan også manifestere seg som XMLRPC‑feil.
6. Server‑timeout eller for tunge forespørsler
Store operasjoner kan overskride timeout‑grenser på serveren.
Å sende enorme datasett i én kall er en vanlig årsak til dette.
Slik fikser du Odoo XMLRPC-feil
Steg 1 – Kontroller autentisering
Sjekk følgende:
- Databasenavn er korrekt
- Brukernavn er riktig
- Passordet stemmer
- Brukeren er aktiv i Odoo
- Brukeren har riktige rettigheter
Test autentisering separat (f.eks. kun /common.authenticate) før du kaller objekthandlinger.
Steg 2 – Valider modell‑ og metodenavn
Bekreft at:
- Modellen faktisk finnes i Odoo‑instansen
- Metoden er tilgjengelig og tillater ekstern kall
- Parametrene følger forventet format
Aktiver utviklermodus i Odoo for å sjekke nøyaktige modellnavn og metoder ved behov.
Steg 3 – Gjennomgå tilgangsrettigheter
Sørg for at API‑brukeren er medlem av de riktige gruppene.
Kontroller følgende sti i Odoo:
Innstillinger → Brukere → Tilgangsrettigheter
Bruk en dedikert integrasjonsbruker i stedet for en personlig konto for stabilitet og oversikt.
Steg 4 – Valider nyttelasten
Før du sender data mot Odoo, bør du:
- Sikre at alle påkrevde felt er med
- Sjekke at relasjons‑IDer er gyldige
- Unngå å sende tomme eller null‑referanser
Strukturert validering på klientsiden reduserer betydelig antall XMLRPC‑feil.
Steg 5 – Inspiser Odoo‑serverlogger
Dersom feilmeldingen fra klienten er vag, sjekk serverloggene for full traceback og kontekst.
Feilmeldinger som dukker opp i integrasjonslaget inneholder ofte ikke hele diagnosen.
Steg 6 – Del store operasjoner i batcher
I stedet for å sende tusenvis av rader i ett kall, del opp i mindre bunter.
Det reduserer sannsynligheten for timeout og minneproblemer.
Slik forebygger du XMLRPC-feil
- Bruk en dedikert API‑bruker
- Valider data før sending
- Loggfør alle forespørsler og svar grundig
- Test integrasjoner i staging før produksjon
- Unngå direkte endringer i databasen uten API
- Implementer god unntakshåndtering på klienten
I større integrasjonslandskap er det ofte best å bruke et mellomlag som validerer og transformerer data mellom eksterne systemer og Odoo. Det stopper mange XMLRPC‑feil før de når produksjon.
Hvordan Dasolo sikrer XMLRPC-integrasjoner
XMLRPC‑problemer kommer ofte av foreldet autentiseringsbruk, dårlig formaterte payloads eller manglende validering før forespørselen treffer Odoo. Siden XMLRPC fortsatt brukes i mange eldre integrasjoner, kan små uoverensstemmelser fort gi vedvarende feil.
Hos Dasolo jobber vi målrettet for å stabilisere XMLRPC‑integrasjoner ved å innføre følgende praksiser:
- Egne tekniske brukere for integrasjoner
- Streng validering av payload
- Tydelig og sikker autentiseringsflyt
- Kontrollert eksponering av metoder
- Strukturerte logger for eksterne kall
Et disiplinert integrasjonslag gir ofte dramatisk færre XMLRPC‑problemer i produksjon.
Konklusjon
Odoo‑feilen «XMLRPC Error» oppstår når en ekstern forespørsel svikter på grunn av autentisering, ugyldige data eller backend‑unntak. Selv om feilmeldingen virker teknisk, ligger årsaken ofte i selve integrasjonsdesignet eller manglende validering av forespørsler.
Ved å gjennomgå autentiseringsflyter, validere payloads og sette riktige tillatelser kan utviklere eliminere mange gjentakende XMLRPC‑feil. God API‑arkitektur og et mellomlag for validering sikrer stabil kommunikasjon mellom Odoo og andre systemer over tid.