Introduction
L'Erreur JSONRPC d'Odoo se produit lorsqu'une requête envoyée à Odoo en utilisant le protocole JSON-RPC échoue. JSON-RPC est la couche de communication principale utilisée par le client web d'Odoo et de nombreuses intégrations modernes.
Contrairement à XML-RPC, JSON-RPC est largement utilisé dans :
- Interactions avec le frontend web
- Intégrations personnalisées
- Implémentations Odoo sans tête
- Synchronisations de systèmes externes
Lorsque quelque chose ne va pas lors d'un appel JSON-RPC, Odoo renvoie une réponse d'erreur qui apparaît souvent comme :
ERREUR_RPC : Erreur du serveur Odoo
Ou dans les réponses API sous forme d'un objet d'erreur JSON.
Ce guide explique ce que signifient les erreurs JSONRPC dans Odoo et comment les corriger correctement.
Qu'est-ce que JSON-RPC dans Odoo ?
JSON-RPC (JavaScript Object Notation Remote Procedure Call) permet aux clients d'appeler des méthodes Odoo via HTTP en utilisant des charges utiles JSON.
Une requête JSON-RPC typique ressemble à ceci :
{
"jsonrpc": "2.0",
"method": "call",
"params": {
"service": "object",
"method": "execute_kw",
"args": [
"nom_de_base_de_données",
2,
"mot_de_passe",
"res.partner",
"search",
[[["is_company", "=", true]]]
]
},
"id": 1
}
Si le backend rencontre une exception, Odoo renvoie une réponse d'erreur JSON.
Causes courantes des erreurs JSONRPC dans Odoo
1. Échec de l'authentification
Si la requête utilise :
- Identifiants invalides
- Base de données incorrecte
- Session expirée
Odoo rejette l'appel.
Les problèmes d'authentification sont l'une des erreurs JSONRPC les plus fréquentes.
2. Appel de méthode invalide
Si la charge utile JSON fait référence à :
- Un modèle inexistant
- Une méthode inexistante
- Arguments de méthode incorrects
Le backend lève une exception renvoyée sous forme d'erreur JSONRPC.
3. Champs requis manquants
Si un appel de création ou d'écriture omet des champs requis, Odoo lève une erreur de validation qui apparaît dans la réponse JSON.
Exemple :
{
"name": "Commande 001"
}
Si partner_id est requis → erreur.
4. Restrictions des droits d'accès
Si l'utilisateur de l'API n'a pas la permission pour l'action demandée, Odoo renvoie une erreur liée à l'accès au format JSON.
Cela se produit couramment en production lorsque les utilisateurs d'intégration ont des permissions limitées.
5. Identifiants relationnels invalides
Si un champ Many2one reçoit un ID qui n'existe pas, le backend lève une exception.
Exemple :
{
"partner_id": 99999
}
Si l'ID 99999 n'existe pas → erreur JSONRPC.
6. Violations des contraintes de la base de données
Erreurs telles que :
- La valeur de clé dupliquée viole la contrainte d'unicité
- Échec de la contrainte de clé étrangère
- Contrainte non nulle
Peut apparaître dans les réponses JSONRPC.
7. Délai d'attente du serveur ou opération lourde
Des charges utiles importantes ou des opérations en masse peuvent dépasser les limites de délai d'attente, en particulier dans les intégrations à fort volume.
Comment corriger l'erreur JSONRPC dans Odoo
Étape 1 – Inspecter la réponse d'erreur JSON
La plupart des réponses JSONRPC incluent :
- Type d'erreur
- Message d'erreur
- Traceback
Lisez attentivement les détails de l'exception du backend.
Étape 2 – Vérifier l'authentification
Assurez-vous :
- Le nom de la base de données est correct
- L'ID utilisateur ou le jeton de session est valide
- Le mot de passe ou la clé API est correct
- L'utilisateur est actif
Étape 3 – Valider la structure de la charge utile
Avant d'envoyer des requêtes :
- Confirmez que les champs requis sont inclus
- Validez les ID relationnels
- Évitez les valeurs nulles dans les champs requis
- Assurez-vous que les types de données sont corrects
La validation structurée avant l'envoi des données prévient de nombreux échecs d'exécution.
Étape 4 – Vérifier les droits d'accès
Vérifiez que l'utilisateur d'intégration a :
- Accès en lecture
- Accès en écriture
- Accès à la création
- Accès à la suppression
selon l'action.
Étape 5 – Tester dans l'interface Odoo
Reproduisez la même action manuellement dans Odoo.
Si cela échoue dans l'interface, le problème est probablement lié aux données ou aux autorisations.
Étape 6 – Vérifier les journaux du serveur
Si la réponse JSON est générique, inspectez les journaux du serveur Odoo pour des détails complets sur la trace d'erreur.
Comment prévenir les erreurs JSONRPC
- Utilisez des utilisateurs API dédiés
- Validez les données avant de les envoyer
- Enregistrez les charges utiles de demande/réponse
- Implémentez une gestion des erreurs structurée dans votre intégration
- Évitez d'envoyer des opérations en masse dans une seule demande
- Testez les flux de travail d'intégration en staging
Dans les environnements Odoo pilotés par API, la mise en œuvre d'une couche de validation et de transformation entre les systèmes externes et Odoo réduit considérablement les échecs JSONRPC.
Comment Dasolo renforce la communication JSONRPC
Les erreurs JSONRPC proviennent souvent d'une gestion de session incohérente, de structures de demande malformées ou d'une logique côté serveur non validée. Comme JSONRPC alimente la plupart des interactions web dans Odoo, même de petits écarts de configuration peuvent entraîner des échecs récurrents en frontend.
Chez Dasolo, nous renforçons la stabilité de JSONRPC grâce à :
- Validation structurée des demandes
- Gestion contrôlée des sessions
- Modèles de gestion des exceptions clairs
- Exposition sécurisée des points de terminaison
- Journalisation complète des appels API
Un cadre de communication cohérent réduit les erreurs d'exécution inattendues et améliore la fiabilité globale de la plateforme.
Conclusion
L'erreur 'JSONRPC Error' d'Odoo apparaît généralement lorsqu'une exception côté serveur interrompt la communication entre le client et le serveur. Bien que l'erreur puisse sembler générique, elle reflète généralement des problèmes plus profonds dans le formatage des requêtes, l'authentification ou la logique côté serveur.
En examinant attentivement les structures API, en validant les entrées et en mettant en œuvre une gestion des erreurs prévisible, les développeurs peuvent prévenir les interruptions récurrentes de JSONRPC. Une couche de communication bien conçue garantit une interaction stable et efficace au sein des environnements Odoo.