Introducción
El error Odoo JSONRPC surge cuando una llamada al servidor usando el protocolo JSON‑RPC no puede completarse. JSON‑RPC es la capa de comunicación que utilizan el cliente web de Odoo y muchas integraciones modernas para intercambiar datos.
A diferencia de XML‑RPC, JSON‑RPC es el estándar habitual en:
- Interacciones desde la interfaz web
- Integraciones a medida
- Implementaciones headless de Odoo
- Sincronizaciones con sistemas externos
Cuando una llamada JSON‑RPC falla, Odoo responde con un error que normalmente se muestra como:
RPC_ERROR: Odoo Server Error
O aparece en las APIs como un objeto JSON describiendo el error.
Esta guía aclara qué significan los errores JSONRPC en Odoo y ofrece pasos prácticos para resolverlos correctamente.
¿Qué es JSON‑RPC en Odoo?
JSON‑RPC (JavaScript Object Notation Remote Procedure Call) permite que clientes llamen a métodos de Odoo sobre HTTP utilizando cargas JSON, facilitando comunicaciones ligeras entre frontend, integraciones y servicios externos.
Un ejemplo típico de petición JSON‑RPC tendría este formato:
{
"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 el servidor encuentra una excepción, Odoo devuelve un objeto JSON describiendo el error y la traza asociada.
Causas habituales de los errores JSONRPC en Odoo
1. Fallos de autenticación
Cuando la petición incluye alguno de estos problemas:
- Credenciales inválidas
- Base de datos equivocada
- Sesión expirada
Odoo rechaza la llamada por motivos de autenticación.
Los errores de autenticación están entre las causas más frecuentes de fallos JSONRPC.
2. Llamada a método inválido
Sucede si el payload JSON hace referencia a:
- Un modelo que no existe
- Un método inexistente
- Argumentos incorrectos para el método
En esos casos el backend lanza una excepción que llega como error JSONRPC.
3. Campos obligatorios ausentes
Si una operación create o write omite campos obligatorios, Odoo devolverá un error de validación dentro del JSON de respuesta.
Ejemplo:
{
"name": "Order 001"
}
Si partner_id es obligatorio → se producirá un error.
4. Restricciones de permisos
Si el usuario de la API no tiene permisos para la acción solicitada, Odoo responderá con un error de acceso expresado en JSON.
Esto es habitual en entornos de producción donde los usuarios de integración tienen permisos limitados.
5. IDs relacionales inválidos
Cuando un campo Many2one recibe un ID que no existe en la base de datos, el backend genera una excepción.
Ejemplo:
{
"partner_id": 99999
}
Si el ID 99999 no existe → error JSONRPC.
6. Violaciones de restricciones de la base de datos
Errores típicos incluyen:
- Valor duplicado que viola una restricción única
- Fallo de clave externa
- Restricción NOT NULL
Estos fallos se reflejan en las respuestas JSONRPC.
7. Timeout del servidor u operaciones pesadas
Cargas muy grandes o procesos en lote pueden superar los límites de tiempo, sobre todo en integraciones de alto volumen.
Cómo resolver un error JSONRPC en Odoo
Paso 1 – Inspecciona la respuesta JSON de error
Las respuestas JSONRPC suelen contener:
- Tipo de error
- Mensaje de error
- Traceback o detalles internos
Lee con atención la excepción devuelta por el backend para localizar la causa concreta.
Paso 2 – Verifica la autenticación
Comprueba que:
- El nombre de la base de datos es correcto
- El ID de usuario o token de sesión es válido
- La contraseña o clave API es correcta
- El usuario está activo y habilitado
Paso 3 – Valida la estructura del payload
Antes de enviar peticiones, asegúrate de:
- Incluir todos los campos obligatorios
- Validar los IDs relacionales
- Evitar valores nulos en campos requeridos
- Respetar los tipos de datos esperados
Una validación previa reduce gran parte de los fallos en tiempo de ejecución.
Paso 4 – Revisa los permisos
Verifica que el usuario de integración dispone de los permisos necesarios:
- Acceso de lectura
- Acceso de escritura
- Permiso para crear registros
- Permiso para eliminar, si procede
Según la acción que vaya a ejecutar.
Paso 5 – Prueba desde la interfaz de Odoo
Intenta reproducir la misma operación manualmente en el UI de Odoo.
Si falla en la interfaz, lo más probable es que el problema sea de datos o de permisos y no del cliente API.
Paso 6 – Consulta los logs del servidor
Si la respuesta JSON es genérica, revisa los logs de Odoo para obtener la traza completa y localizar el origen del error.
Cómo evitar errores JSONRPC
- Buenas prácticas: usa usuarios API dedicados
- Valida los datos antes de enviarlos
- Registra las cargas y respuestas de las peticiones
- Implementa manejo de errores estructurado en la integración
- Evita enviar operaciones en bloque en una sola petición cuando sea posible
- Prueba los flujos de integración en un entorno staging antes de producción
En entornos Odoo gobernados por APIs, incorporar una capa intermedia de validación y transformación entre sistemas externos y Odoo reduce drásticamente los errores JSONRPC.
Cómo Dasolo refuerza la comunicación JSONRPC
Los fallos JSONRPC suelen provenir de sesiones inconsistentes, estructuras de petición mal formadas o lógica del lado servidor sin validación. Dado que JSONRPC sustenta la mayor parte de las interacciones web en Odoo, pequeñas desconfiguraciones pueden derivar en errores repetidos en el frontend.
En Dasolo, reforzamos la estabilidad JSONRPC mediante:
- Validación estructurada de las peticiones
- Gestión controlada de sesiones
- Patrones claros de manejo de excepciones
- Exposición segura de endpoints
- Registro detallado de las llamadas API
Un marco de comunicación coherente reduce fallos inesperados en tiempo de ejecución y mejora la fiabilidad global de la plataforma.
Conclusión
El error “JSONRPC Error” en Odoo suele indicar que una excepción en el backend ha interrumpido la comunicación entre cliente y servidor. Aunque el mensaje puede parecer genérico, normalmente refleja problemas más profundos en la autenticación, el formato de la petición o la lógica del servidor.
Revisando la estructura de las APIs, validando las entradas y aplicando un manejo de errores predecible, los desarrolladores pueden evitar interrupciones recurrentes por JSONRPC. Una capa de comunicación bien diseñada garantiza interacciones estables y eficientes en entornos Odoo.