Códigos de error
Este documento se aplica al SDK Web de MA independiente de la versión 2.x.
Definición de los códigos de error del lado del cliente
Los code de callback generados localmente por el SDK Web toman uno de los tres valores siguientes:
| Code | Descripción | Explicación detallada |
|---|---|---|
| 0 | Solicitud exitosa | La solicitud de la interfaz se ha procesado correctamente (message es siempre success) |
| -1 | Solicitud fallida | Falló la validación local de parámetros, el SDK no está listo (sin init / sin obtener RID/EUID), se produjo una anomalía de red, no se pudo analizar la respuesta o el servidor devolvió una respuesta no válida. Consultar el message del callback para conocer el motivo concreto |
| -8 | Recopilación de datos deshabilitada | Desde 2.2.0. Tras deshabilitar la recopilación mediante el Interruptor de recopilación de datos, las interfaces de propiedades de usuario (setProperty, increaseProperty, addProperty, deleteProperty, removeProperty, updateProperty) se interceptan y la operación no se ejecuta; message es siempre data collection disabled. Las interfaces sin callback, como eventos y UTM, descartan los datos de forma silenciosa mientras está deshabilitado y no devuelven este código |
message locales -1 habituales (se devuelven a la aplicación en su texto original en inglés):
| message | Escenario de activación |
|---|---|
invalid argument: enabled must be boolean |
El parámetro de setDataCollectionEnabled no es un valor booleano |
sdk hasn't registered yet, request will be cancel |
No se ha completado init o /get-rid aún no se ha ejecutado correctamente, por lo que las interfaces de usuario se interceptan |
MA EUID is not a valid Long |
El EUID local falta o no es válido (normalmente /get-euid no se ha ejecutado correctamente) |
identifyAccount fail loginID and mobile are nil |
Se llamó a identifyAccount con un objeto de identificación vacío (el texto se mantiene idéntico byte a byte al de v1) |
user_id cannot be "0" / email format is invalid / phone must be E.164 format (+[1-9] followed by 1-14 digits), etc. |
Falló la validación previa de las reglas de los campos de identificación del usuario (las reglas se describen en «Guía de API · Configurar la identificación del usuario») |
channelId must be greater than 0 / channel values cannot be empty / channel value element cannot be empty |
Falló la validación de parámetros de setChannelValue |
userIdentity is invalid: ... |
Todos los campos del userIdentity pasado en una nueva llamada a init no son válidos (desde 2.1.0, pasar una AppKey distinta en una nueva llamada a init cambia la fuente de datos y ya no devuelve error) |
network exception |
La solicitud de red falló o la respuesta no es válida |
Códigos de negocio del lado del servidor
Cuando el servidor devuelve explícitamente un fallo de negocio, el SDK no lo reduce a -1, sino que devuelve en el callback el code y el texto del servidor tal cual, por lo que en el callback pueden aparecer code positivos.
Los códigos de negocio del lado del servidor se utilizan únicamente para la localización de problemas y no forman parte del contrato externo estable del SDK; no escribir ramas de negocio basadas en un code positivo concreto. Utilizar siempre code === 0 para determinar el éxito y, ante un fallo inesperado, proporcionar el code y el message originales al soporte técnico.
Al llamar repetidamente a init (desde 2.1.0, cada llamada vuelve a obtener el EUID), los fallos al volver a solicitar el EUID de pertenencia también se devuelven en el callback como códigos de negocio del servidor tal cual, según la regla anterior.
Apéndice: códigos de negocio habituales del lado del servidor
Los siguientes valores son solo de referencia para la resolución de problemas y no se garantiza que se mantengan estables entre versiones del SDK o del servidor:
| Code | Significado |
|---|---|
| 55004 | Parámetro de negocio no válido, por ejemplo la AppKey del canal no está asignada en el proyecto actual, el channelId no existe en el proyecto actual, el valor del canal es igual al RID de MA o se llama a updateProperty / removeProperty sobre una propiedad object_array aún no definida |
| 55100 | Fallo en el registro del usuario |
| 55101 | El número de identificaciones del usuario supera el límite |
| 55102 | Existe un nombre de propiedad de usuario no válido |
| 55103 | El valor de la propiedad de usuario está vacío |
| 55105 | El valor de la identificación del usuario supera los 256 caracteres |
| 55106 | El nombre de la identificación del usuario no está dentro del rango admitido |
| 55107 | El valor de la identificación del usuario está vacío |
| 55108 | EUID no válido, por ejemplo maEuid y maRid no pertenecen al mismo usuario de MA |
| 55110 | Solicitudes demasiado frecuentes; reintentar más tarde |
| 55000 | Error del sistema del lado del servidor |
| 40007 | El EUID está vacío |










