Introduction
L’erreur Odoo JSONRPC survient quand une requête envoyée via le protocole JSON‑RPC est rejetée ou plante côté serveur. Ce mécanisme constitue la colonne vertébrale des échanges entre le client web d’Odoo et la plupart des intégrations modernes.
À la différence d’XML‑RPC, JSON‑RPC est privilégié pour :
- les interactions du front‑end web
- les intégrations sur mesure
- les déploiements headless d’Odoo
- la synchronisation avec des systèmes externes
Quand un appel JSON‑RPC échoue, Odoo renvoie généralement une réponse d’erreur structurée qui apparaît sous la forme suivante :
RPC_ERROR: Odoo Server Error
Ou comme un objet d’erreur JSON dans les réponses d’API.
Ce guide décrit ce que signifie une erreur JSONRPC dans Odoo et les étapes concrètes pour la diagnostiquer et la corriger.
Qu’est-ce que JSON-RPC dans Odoo ?
JSON‑RPC (JavaScript Object Notation Remote Procedure Call) permet d’exécuter des méthodes Odoo via HTTP en transmettant des charges utiles JSON.
Un appel JSON‑RPC standard contient plusieurs champs indispensables, dont l’identifiant de la requête, la méthode et les paramètres d’appel.
{
"jsonrpc": "2.0",
"method": "call",
"params": {
"service": "object",
"method": "execute_kw",
"args": [
"database_name",
2,
"password",
"res.partner",
"search",
[[["is_company", "=", true]]]
]
},
"id": 1
}
Si le traitement côté serveur déclenche une exception, Odoo renvoie une réponse d’erreur au format JSON reprenant les détails de l’exception.
Causes fréquentes des erreurs JSONRPC dans Odoo
1. Échec d’authentification
Ce type d’erreur survient lorsque la requête présente des problèmes d’accès tels que :
- identifiants invalides
- nom de base de données erroné
- session expirée
Dans ces cas, Odoo refuse l’appel.
Les problèmes d’authentification comptent parmi les causes les plus fréquentes d’erreurs JSONRPC.
2. Appel de méthode invalide
Une erreur apparaît si le payload JSON fait référence à :
- un modèle inexistant
- une méthode absente
- des arguments mal formés pour la méthode
Dans ces situations, le backend lève une exception renvoyée dans la réponse JSONRPC.
3. Champs requis manquants
Si une opération create ou write omet des champs obligatoires, Odoo retourne une erreur de validation visible dans la réponse JSON.
Exemple :
{
"name": "Order 001"
}
Si partner_id est requis → erreur.
4. Restrictions de droits d’accès
Si l’utilisateur d’API n’a pas les permissions nécessaires pour l’action demandée, Odoo renvoie une erreur liée aux droits dans le format JSON.
Ce cas se rencontre souvent en production lorsque les comptes d’intégration ont des permissions trop limitées.
5. IDs relationnels invalides
Un identifiant Many2one pointant vers un enregistrement inexistant provoque une exception côté serveur.
Exemple :
{
"partner_id": 99999
}
Si l’ID 99999 n’existe pas → erreur JSONRPC.
6. Violation de contraintes en base
Certaines erreurs proviennent de contraintes SQL, par exemple :
- doublon violant une contrainte d’unicité
- échec de contrainte sur clé étrangère
- contrainte NOT NULL
Ces messages peuvent remonter dans la réponse JSONRPC.
7. Timeout serveur ou opérations lourdes
Des charges importantes ou des traitements en masse peuvent dépasser les limites de temps, surtout dans des intégrations à fort volume.
Comment corriger une erreur JSONRPC dans Odoo
Étape 1 – Inspecter la réponse d’erreur JSON
La plupart des réponses JSONRPC fournissent :
- le type d’erreur
- le message d’erreur
- la trace d’exécution (traceback)
Lisez attentivement ces détails pour identifier la source de l’exception.
Étape 2 – Vérifier l’authentification
Assurez‑vous que :
- le nom de base de données est exact
- l’ID utilisateur ou le token de session est valide
- le mot de passe ou la clé API est correct
- l’utilisateur est actif
Étape 3 – Valider la structure du payload
Avant d’envoyer une requête :
- vérifiez que tous les champs obligatoires sont présents
- validez les identifiants relationnels
- évitez les valeurs null pour les champs requis
- contrôlez les types de données
Une validation structurée côté client réduit fortement les erreurs d’exécution.
Étape 4 – Contrôler les droits d’accès
Vérifiez que l’utilisateur d’intégration dispose des accès nécessaires :
- droit de lecture
- droit d’écriture
- droit de création
- droit de suppression
selon les actions à réaliser.
Étape 5 – Tester dans l’interface Odoo
Reproduisez manuellement la même opération depuis l’interface web d’Odoo.
Si l’action échoue dans l’UI, il s’agit probablement d’un problème de données ou de permissions.
Étape 6 – Consulter les logs serveur
Quand la réponse JSON est trop générique, consultez les logs d’Odoo pour obtenir la trace complète de l’erreur.
Comment éviter les erreurs JSONRPC
- Bonnes pratiques : utilisez des utilisateurs d’API dédiés
- validez les données avant envoi
- journalisez les payloads de requête/réponse
- implémentez une gestion structurée des erreurs dans l’intégration
- évitez d’envoyer des opérations massives en une seule requête
- testez les flux d’intégration en environnement de pré‑production
Dans les environnements pilotés par API, placer une couche de validation et de transformation entre les systèmes externes et Odoo diminue fortement le nombre d’erreurs JSONRPC.
Comment Dasolo renforce la communication JSONRPC
Les erreurs JSONRPC découlent souvent d’une gestion de session incohérente, d’appels mal formés ou d’une logique serveur non validée. Comme JSONRPC gère la plupart des interactions web d’Odoo, de petites lacunes de configuration peuvent provoquer des défaillances répétées côté front.
Chez Dasolo, nous stabilisons les échanges JSONRPC via :
- une validation stricte des requêtes
- une gestion des sessions maîtrisée
- des conventions claires de gestion des exceptions
- une exposition sécurisée des endpoints
- un logging détaillé des appels API
Un cadre de communication cohérent réduit les erreurs imprévues à l’exécution et améliore la fiabilité globale de la plateforme.
Conclusion
L’« erreur JSONRPC » dans Odoo apparaît lorsque le serveur rencontre une exception interrompant la communication avec le client. Même si le message peut sembler générique, il traduit le plus souvent des problèmes de format de requête, d’authentification ou de logique serveur.
En révisant les structures d’API, en validant les entrées et en mettant en place une gestion des erreurs prévisible, les équipes peuvent éviter les interruptions récurrentes liées à JSONRPC. Une couche de communication bien pensée garantit des échanges stables et performants au sein des environnements Odoo.