Códigos de error
A continuación se muestran listas de códigos de error de API de REST y una explicación de cómo se devuelven los errores a las aplicaciones.
Gestión y registro de excepciones
Al desarrollar para Marketo, es importante que las solicitudes y respuestas se registren cuando se encuentre una excepción inesperada. Aunque algunos tipos de excepciones, como la autenticación caducada, se pueden controlar de forma segura mediante la reautenticación, otros pueden requerir interacciones de soporte, y las solicitudes y respuestas siempre se solicitarán en este escenario.
Tipos de error
La API de REST de Marketo puede devolver tres tipos diferentes de errores en funcionamiento normal:
- Nivel HTTP: estos errores se indican mediante un código
4xx
. - Response-Level: estos errores se incluyen en la matriz "errors" de la respuesta JSON.
- Nivel de registro: estos errores se incluyen en la matriz "result" de la respuesta JSON y se indican en un registro individual con el campo "estado" y la matriz "motivos".
Para los tipos de error de nivel de respuesta y nivel de registro, se devuelve un código de estado HTTP de 200. Para todos los tipos de error, la frase de motivo HTTP no debe evaluarse porque es opcional y está sujeta a cambios.
Errores de nivel HTTP
En circunstancias normales de funcionamiento, Marketo solo debería devolver dos errores de código de estado HTTP, 413 Request Entity Too Large
y 414 Request URI Too Long
. Ambos se pueden recuperar detectando el error, modificando la solicitud y reintentando, pero con las prácticas de codificación inteligente, nunca debe encontrarlos en el comodín.
Marketo devolverá 413 si la carga de la solicitud supera 1 MB o 10 MB en el caso de la importación de posible cliente. En la mayoría de los casos, es poco probable que se alcancen estos límites, pero añadir una comprobación al tamaño de la solicitud y mover cualquier registro, lo que provoca que se supere el límite a una nueva solicitud, debe evitar cualquier circunstancia, que lleve a que este error sea devuelto por cualquier extremo.
414 se devolverá cuando el URI de una solicitud de GET exceda de 8 KB. Para evitarlo, compare la longitud de la cadena de consulta para ver si supera este límite. Si cambia la solicitud a un método POST, escriba la cadena de consulta como el cuerpo de la solicitud con el parámetro adicional _method=GET
. Esto renuncia a la limitación de URI. Es raro alcanzar este límite en la mayoría de los casos, pero es algo común cuando se recuperan grandes lotes de registros con valores de filtro individuales largos, como un GUID.
El extremo Identity puede devolver un error 401 Unauthorized. Esto suele deberse a un ID de cliente no válido o a un secreto de cliente no válido. Códigos de error de nivel HTTP
Errores de nivel de respuesta
Los errores de nivel de respuesta están presentes cuando el parámetro success
de la respuesta se establece en false y están estructurados de la siguiente manera:
{
"requestId": "e42b#14272d07d78",
"success": false,
"errors": [
{
"code": "601",
"message": "Unauthorized"
}
]
}
Cada objeto de la matriz "errors" tiene dos miembros, code
, que es un entero entre comillas comprendido entre 601 y 799 y un message
que indica el motivo del error en texto sin formato. Los códigos 6xx siempre indican que una solicitud ha fallado completamente y no se ha ejecutado. Un ejemplo es un 601, "Token de acceso no válido", que se puede recuperar volviendo a autenticar y pasando el nuevo token de acceso con la solicitud. Los errores 7xx indican que la solicitud falló, ya sea porque no se devolvieron datos o porque se parametrizó incorrectamente la solicitud, como incluir una fecha no válida o faltar un parámetro requerido.
Códigos de error de nivel de respuesta
Una llamada de API que devuelva este código de respuesta no se contará en su cuota diaria o en su límite de tarifa.
- Se especificó una fecha que no tenía el formato correcto
- Se ha especificado un ID de contenido dinámico no válido
No se puede cumplir la llamada porque infringe un requisito para crear o actualizar un recurso como, por ejemplo, intentar crear un mensaje de correo electrónico sin una plantilla. También es posible obtener este error al intentar lo siguiente:
- Recupere contenido para páginas de aterrizaje que contengan contenido social.
- Clonar un programa que contiene ciertos tipos de recursos (consulte Clonar programa para obtener más información).
- Aprobar un recurso que no tenga borrador (es decir, que ya se haya aprobado).
Nivel de registro record_level_errors
Los errores de nivel de registro indican que no se pudo completar una operación para un registro individual, pero la solicitud en sí era válida. Una respuesta con errores en el nivel de registro sigue este patrón:
Respuesta
{
"requestId":"e42b#14272d07d78",
"success":true,
"result":[
{
"id":50,
"status":"created"
},
{
"id":51,
"status":"created"
},
{
"status":"skipped",
"reasons":[
{
"code":"1005",
"message":"Lead already exists"
}
]
}
]
}
Los registros incluidos en la matriz de llamadas de resultado se ordenan del mismo modo que la matriz de entrada de una solicitud.
Cada registro de una solicitud correcta puede tener éxito o fallar de forma individual, lo que se indica mediante el campo de estado de cada registro incluido en la matriz de resultados de una respuesta. El campo "estado" de estos registros se "omitirá" y aparecerá una matriz "motivos". Cada motivo contiene un miembro "code" y un miembro "message". El código siempre es 1xxx y el mensaje indica por qué se omitió el registro. Un ejemplo sería cuando una solicitud de Sync Leads tiene "action" establecida en "createOnly" pero ya existe un posible cliente para una de las claves de los registros enviados. Este caso devuelve un código de 1005 y un mensaje de "El posible cliente ya existe" como se muestra arriba.
Códigos de error de nivel de registro
table 0-row-3 1-row-3 2-row-3 3-row-3 4-row-3 5-row-3 6-row-3 7-row-3 8-row-3 9-row-3 10-row-3 11-row-3 12-row-3 13-row-3 14-row-3 15-row-3 16-row-3 17-row-3 18-row-3 19-row-3 20-row-3 21-row-3 22-row-3 23-row-3 24-row-3 25-row-3 26-row-3 27-row-3 28-row-3 29-row-3 30-row-3 31-row-3 32-row-3 33-row-3 34-row-3 35-row-3 36-row-3 37-row-3 html-authored no-header | ||
---|---|---|
Código de respuesta | Descripción | Comentario |
1001 | Valor ‘%s’ no válido. Requerido de tipo ‘%s’ | Se genera un error cada vez que un valor de parámetro tiene un tipo que no coincide. Por ejemplo, el valor de cadena especificado para un parámetro entero. |
1002 | Falta un valor para el parámetro obligatorio ‘%s’ | Se genera un error cuando falta un parámetro requerido en la solicitud |
1003 | Datos no válidos | Cuando los datos enviados no son de un tipo válido para el punto de conexión o modo determinados; por ejemplo, cuando se envía el ID de un posible cliente con la acción designada como createOnly o cuando se utiliza Solicitar campaña en una campaña por lotes. |
1004 | No se encontró el lead | Para syncLead, cuando la acción es "updateOnly" y si no se encuentra el posible cliente |
1005 | El posible cliente ya existe | Para syncLead, cuando la acción es "createOnly" y si ya existe un posible cliente |
1006 | No se encontró el campo ‘%s’ | Un campo incluido en la llamada de no es un campo válido. |
1007 | Varios posibles clientes coinciden con los criterios de búsqueda | Varios posibles clientes coinciden con los criterios de búsqueda. Las actualizaciones solo se pueden realizar cuando la clave coincida con un único registro |
1008 | Acceso denegado a la partición ‘%s’ | El usuario del servicio personalizado no tiene acceso a un espacio de trabajo con la partición donde existe el registro. |
1009 | Se debe especificar el nombre de partición | |
1010 | Actualización de partición no permitida | El registro especificado ya existe en una partición de posibles clientes independiente. |
1011 | No se admite el campo ‘%s’ | Cuando se especifica un campo de búsqueda o filterType con campos estándar no admitidos (por ejemplo: firstName, lastName) |
1012 | Valor de cookie '%s' no válido | Se puede producir al llamar al posible cliente asociado con un valor no válido para el parámetro "cookie". Esto también ocurre al llamar a Obtener posibles clientes por tipo de filtro con "filterType=cookies" y un valor no válido para el parámetro "filterValues". |
1013 | Objeto no encontrado | Get object (list, campaign) by id devuelve este código de error |
1014 | Error al crear el objeto | Error al crear el objeto (lista) |
1015 | Posible cliente no en lista | El posible cliente designado no es miembro de la lista de destinatarios |
1016 | Demasiadas importaciones | Hay demasiadas importaciones en cola. Se permite un máximo de 10 |
1017 | El objeto ya existe | Error de creación porque el registro ya existe |
1018 | CRM habilitado | No se pudo realizar la acción porque la instancia tiene habilitada una integración nativa de CRM. |
1019 | Importación en progreso | La lista de destinos ya se está importando en |
1020 | Demasiados clones para programar | La suscripción ha alcanzado el uso asignado de cloneToProgramName en el programa programado para el día |
1021 | Actualización de empresa no permitida | No se permite la actualización de empresa durante syncLead |
1022 | Objeto en uso | No se permite eliminar cuando otro objeto está utilizando un objeto |
1025 | Estado del programa no encontrado | Se ha especificado un estado para Cambiar el estado del programa de posibles clientes que no coincide con un estado disponible para el canal del programa. |
1026 | Objeto personalizado no habilitado | No se pudo realizar la acción porque la instancia no tiene habilitada la integración de objetos personalizados. |
1027 | Límite máximo de tipo de actividad alcanzado | La suscripción ha alcanzado el número máximo de tipos de actividades personalizadas disponibles. |
1028 | Límite máximo de campos alcanzado | Las actividades personalizadas tienen un máximo de 20 atributos secundarios. |
1029 |
|
|
1035 | Tipo de filtro no compatible | En algunas suscripciones no se admiten los siguientes tipos de filtros de extracción masiva de posibles clientes: updatedAt, smartListId, smartListName. |
1036 | Objeto duplicado encontrado en la entrada | Se realizó una llamada para actualizar dos o más registros con la misma clave externa. Por ejemplo, una llamada de empresas de sincronización que utiliza el mismo externalCompanyId para más de una empresa. |
1037 | Se omitió el posible cliente | Se omitió el posible cliente porque ya está en este estado o más allá de él. |
1042 | Fecha runAt no válida | La fecha runAt especificada para Schedule Campaign era demasiado lejana en el futuro (el máximo es de 2 años). |
1048 | Error al descartar el borrador del objeto personalizado | Se realizó una llamada para descartar la versión de borrador de un objeto personalizado. |
1049 | Error al crear la actividad | Matriz de atributos demasiado larga. La matriz de atributos pasada al registro superó la longitud máxima de 65536 bytes |
1076 | La llamada de Combinar posibles clientes con el indicador mergeInCRM es 4. | Está creando un registro duplicado. Se recomienda utilizar un registro existente en su lugar. Este es el mensaje de error que Marketo recibe al combinar en Salesforce. |
1077 | Error en la llamada de combinación de posibles clientes debido a la longitud del campo SFDC | Error en una llamada a MergeLeads con mergeInCRM establecido en true debido a que SFDC Field superaba el límite de caracteres permitidos. Para corregirlo, reduzca la longitud de SFDC Field o establezca mergeInCRM en false. |
1078 | Error en la llamada de combinación de posibles clientes debido a una entidad eliminada, no es un posible cliente/contacto o los criterios de filtro de campo no coinciden. | Error de combinación, no se puede realizar la operación de combinación en CRM sincronizado de forma nativa Este es el mensaje de error que Marketo recibe al combinar en Salesforce. |
1079 | Error en la llamada de combinación de posibles clientes debido a un conflicto de URL personalizado en registros duplicados | Una llamada de combinación de posibles clientes especificó muchos posibles clientes con la misma dirección URL personalizada. Para resolver, utilice la interfaz de usuario de Marketo Engage para combinar estos registros. |