Introducción
El error JSONRPC de Odoo ocurre cuando una solicitud enviada a Odoo utilizando el protocolo JSON-RPC falla. JSON-RPC es la capa de comunicación principal utilizada por el cliente web de Odoo y muchas integraciones modernas.
A diferencia de XML-RPC, JSON-RPC se utiliza ampliamente en:
- Interacciones en el frontend web
- Integraciones personalizadas
- Implementaciones de Odoo sin cabeza
- Sincronizaciones de sistemas externos
Cuando algo sale mal durante una llamada JSON-RPC, Odoo devuelve una respuesta de error que a menudo aparece como:
RPC_ERROR: Error del servidor Odoo
O en las respuestas de API como un objeto de error JSON.
Esta guía explica qué significan los errores JSONRPC en Odoo y cómo solucionarlos correctamente.
¿Qué es JSON-RPC en Odoo?
JSON-RPC (Llamada a Procedimiento Remoto en Notación de Objetos de JavaScript) permite a los clientes llamar a métodos de Odoo a través de HTTP utilizando cargas útiles JSON.
Una solicitud JSON-RPC típica se ve así:
{
"jsonrpc": "2.0",
"method": "call",
"params": {
"service": "object",
"method": "execute_kw",
"args": [
"nombre_base_datos",
2,
"contraseña",
"res.partner",
"search",
[[["is_company", "=", true]]]
]
},
"id": 1
}
Si el backend encuentra una excepción, Odoo devuelve una respuesta de error JSON.
Causas comunes de errores JSONRPC en Odoo
1. Fallo de autenticación
Si la solicitud utiliza:
- Credenciales inválidas
- Base de datos incorrecta
- Sesión expirada
Odoo rechaza la llamada.
Los problemas de autenticación son uno de los fallos más frecuentes de JSONRPC.
2. Llamada de Método Inválida
Si la carga útil JSON hace referencia a:
- Un modelo inexistente
- Un método inexistente
- Argumentos de método incorrectos
El backend genera una excepción que se devuelve como un error JSONRPC.
3. Campos Requeridos Faltantes
Si una llamada de creación o escritura omite campos requeridos, Odoo genera un error de validación que se refleja en la respuesta JSON.
Ejemplo:
{
"name": "Orden 001"
}
Si partner_id es requerido → error.
4. Restricciones de Derechos de Acceso
Si el usuario de la API no tiene permiso para la acción solicitada, Odoo devuelve un error relacionado con el acceso en formato JSON.
Esto ocurre comúnmente en producción cuando los usuarios de integración tienen permisos limitados.
5. IDs Relacionales Inválidos
Si un campo Many2one recibe un ID que no existe, el backend genera una excepción.
Ejemplo:
{
"partner_id": 99999
}
Si el ID 99999 no existe → error JSONRPC.
6. Violaciones de Restricciones de Base de Datos
Errores como:
- El valor de la clave duplicada viola la restricción de unicidad
- Fallo en la restricción de clave externa
- Restricción de no nulo
Puede aparecer en las respuestas de JSONRPC.
7. Tiempo de espera del servidor o operación pesada
Los payloads grandes o las operaciones masivas pueden exceder los límites de tiempo de espera, especialmente en integraciones de alto volumen.
Cómo solucionar el error JSONRPC en Odoo
Paso 1 – Inspeccionar la respuesta de error JSON
La mayoría de las respuestas JSONRPC incluyen:
- Tipo de error
- Mensaje de error
- Rastreo
Lea cuidadosamente los detalles de la excepción del backend.
Paso 2 – Verificar Autenticación
Asegúrate de:
- El nombre de la base de datos es correcto
- El ID de usuario o el token de sesión son válidos
- La contraseña o la clave API son correctas
- El usuario está activo
Paso 3 – Validar Estructura de la Carga Útil
Antes de enviar solicitudes:
- Confirma que se incluyan los campos requeridos
- Valida los IDs relacionales
- Evita valores nulos en los campos requeridos
- Asegúrate de que los tipos de datos sean correctos
La validación estructurada antes de enviar datos previene muchos fallos en tiempo de ejecución.
Paso 4 – Revisar Derechos de Acceso
Verifica que el usuario de integración tenga:
- Acceso de lectura
- Acceso de escritura
- Acceso de creación
- Acceso de eliminación
dependiendo de la acción.
Paso 5 – Probar en la Interfaz de Odoo
Reproduce la misma acción manualmente en Odoo.
Si falla en la interfaz, el problema probablemente esté relacionado con los datos o los permisos.
Paso 6 – Revisar los Registros del Servidor
Si la respuesta JSON es genérica, inspeccione los registros del servidor Odoo para obtener detalles completos del seguimiento.
Cómo prevenir errores JSONRPC
- Utilice usuarios de API dedicados
- Valide los datos antes de enviarlos
- Registre las cargas útiles de solicitud/respuesta
- Implemente un manejo de errores estructurado en su integración
- Evite enviar operaciones masivas en una sola solicitud
- Pruebe los flujos de trabajo de integración en staging
En entornos Odoo impulsados por API, implementar una capa de validación y transformación entre sistemas externos y Odoo reduce significativamente las fallas de JSONRPC.
Cómo Dasolo fortalece la comunicación JSONRPC
Los errores de JSONRPC a menudo provienen de un manejo de sesión inconsistente, estructuras de solicitud mal formadas o lógica del lado del servidor no validada. Dado que JSONRPC impulsa la mayoría de las interacciones web en Odoo, incluso pequeños huecos de configuración pueden llevar a fallas recurrentes en el frontend.
En Dasolo, reforzamos la estabilidad de JSONRPC a través de:
- Validación estructurada de solicitudes
- Gestión controlada de sesiones
- Patrones claros de manejo de excepciones
- Exposición segura de puntos finales
- Registro integral de llamadas a la API
Un marco de comunicación consistente reduce errores inesperados en tiempo de ejecución y mejora la confiabilidad general de la plataforma.
Conclusión
El error 'JSONRPC' de Odoo suele aparecer cuando una excepción en el backend interrumpe la comunicación entre el cliente y el servidor. Aunque el error puede parecer genérico, generalmente refleja problemas más profundos en el formato de la solicitud, la autenticación o la lógica del lado del servidor.
Al revisar cuidadosamente las estructuras de la API, validar entradas e implementar un manejo de errores predecible, los desarrolladores pueden prevenir interrupciones recurrentes de JSONRPC. Una capa de comunicación bien diseñada asegura una interacción estable y eficiente dentro de los entornos de Odoo.