Codes d’erreur
Vous trouverez ci-dessous des listes de codes d’erreur de l’API REST et une explication de la manière dont les erreurs sont renvoyées aux applications.
Gestion et journalisation des exceptions
Lors du développement pour Marketo, il est important que les requêtes et les réponses soient consignées lorsqu’une exception inattendue est rencontrée. Bien que certains types d’exceptions, comme l’authentification expirée, puissent être gérés en toute sécurité par la réauthentification, d’autres peuvent nécessiter des interactions d’assistance. Les demandes et réponses seront toujours demandées dans ce scénario.
Types d’erreurs
L’API REST Marketo peut renvoyer trois types d’erreurs différents en fonctionnement normal :
- HTTP-Level : ces erreurs sont indiquées par un code
4xx
. - Niveau de réponse : ces erreurs sont incluses dans le tableau « erreurs » de la réponse JSON.
- Record-Level : ces erreurs sont incluses dans le tableau « résultat » de la réponse JSON et sont indiquées sur une base d’enregistrement individuel avec le champ « statut » et le tableau « raisons ».
Pour les types d’erreur de niveau réponse et de niveau enregistrement, un code d’état HTTP de 200 est renvoyé. Pour tous les types d’erreur, l’expression de raison HTTP ne doit pas être évaluée, car elle est facultative et peut être modifiée.
Erreurs au niveau du HTTP
Dans des circonstances de fonctionnement normales, Marketo ne doit renvoyer que deux erreurs de code d’état HTTP, 413 Request Entity Too Large
et 414 Request URI Too Long
. Vous pouvez les récupérer en interceptant l’erreur, en modifiant la requête et en réessayant. Toutefois, avec les pratiques de codage intelligent, vous ne devriez jamais les rencontrer en mode sauvage.
Marketo renvoie la valeur 413 si la payload de la requête dépasse 1 Mo, ou 10 Mo dans le cas du lead d’importation. Dans la plupart des scénarios, il est peu probable que ces limites soient atteintes, mais l’ajout d’une vérification à la taille de la requête et le déplacement de tous les enregistrements, qui entraînent le dépassement de la limite dans une nouvelle requête, doivent éviter toute circonstance qui entraîne le renvoi de cette erreur par n’importe quel point d’entrée.
L’erreur 414 est renvoyée lorsque l’URI d’une requête GET dépasse 8 Ko. Pour l’éviter, vérifiez la longueur de votre chaîne de requête pour voir si elle dépasse cette limite. S’il remplace votre requête par une méthode POST, saisissez votre chaîne de requête comme corps de la requête avec le paramètre supplémentaire _method=GET
. Cela annule la limitation des URI. Il est rare d'atteindre cette limite dans la plupart des cas, mais cela est assez courant lors de la récupération de lots volumineux d'enregistrements avec de longues valeurs de filtre individuel, comme un GUID.
Le point d’entrée Identity peut renvoyer une erreur 401 Non autorisé. Cela est généralement dû à un ID client non valide ou à un secret client non valide. Codes d’erreur au niveau HTTP
Erreurs de niveau de réponse
Les erreurs de niveau de réponse sont présentes lorsque le paramètre success
de la réponse est défini sur false et sont structurées comme suit :
{
"requestId": "e42b#14272d07d78",
"success": false,
"errors": [
{
"code": "601",
"message": "Unauthorized"
}
]
}
Chaque objet du tableau « errors » comporte deux membres, code
, qui est un entier entre guillemets compris entre 601 et 799 et un message
donnant la raison en texte brut de l’erreur. Les codes 6xx indiquent toujours qu’une requête a complètement échoué et n’a pas été exécutée. Exemple : un 601, « Jeton d’accès non valide », qui peut être récupéré en s’authentifiant à nouveau et en transmettant le nouveau jeton d’accès avec la requête. Les erreurs 7xx indiquent que la requête a échoué, soit parce qu’aucune donnée n’a été renvoyée, soit parce que la requête a été paramétrée de manière incorrecte, par exemple en incluant une date non valide, ou en raison d’un paramètre obligatoire manquant.
Codes d’erreur au niveau de la réponse
Un appel API qui renvoie ce code de réponse n’est pas comptabilisé dans votre quota quotidien ou votre limite de taux.
- Une date spécifiée n'était pas au bon format
- Un ID de contenu dynamique non valide a été spécifié
L’appel ne peut pas être effectué, car il enfreint une exigence de création ou de mise à jour d’une ressource, par exemple, la tentative de création d’un e-mail sans modèle. Il est également possible d’obtenir cette erreur lors de la tentative de :
- Récupérez le contenu des pages de destination qui contiennent du contenu social.
- Clonez un programme qui contient certains types de ressources (voir Clonage de programme pour plus d’informations).
- Approuver une ressource qui n’a pas de brouillon (c’est-à-dire qui a déjà été approuvée).
Record-Level record_level_errors
Les erreurs de niveau enregistrement indiquent qu'une opération n'a pas pu être effectuée pour un enregistrement individuel, mais que la demande elle-même était valide. Une réponse contenant des erreurs au niveau des enregistrements suit ce modèle :
Réponse
{
"requestId":"e42b#14272d07d78",
"success":true,
"result":[
{
"id":50,
"status":"created"
},
{
"id":51,
"status":"created"
},
{
"status":"skipped",
"reasons":[
{
"code":"1005",
"message":"Lead already exists"
}
]
}
]
}
Les enregistrements inclus dans le tableau de résultats des appels sont triés de la même manière que le tableau d’entrée d’une requête.
Chaque enregistrement d’une requête réussie peut réussir ou échouer sur une base individuelle, ce qui est indiqué par le champ de statut de chaque enregistrement inclus dans le tableau de résultats d’une réponse. Le champ « statut » de ces enregistrements sera « ignoré » et un tableau « raisons » sera présent. Chaque raison contient un membre « code » et un membre « message ». Le code est toujours 1xxx et le message indique pourquoi l’enregistrement a été ignoré. Par exemple, si une demande de leads de synchronisation a « action » défini sur « createOnly », mais qu’un lead existe déjà pour l’une des clés dans les enregistrements envoyés. Ce cas renvoie un code de 1005 et un message indiquant « Le prospect existe déjà », comme indiqué ci-dessus.
Codes D’Erreur Au Niveau De L’Enregistrement
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 | ||
---|---|---|
Code de réponse | Description | Commentaire |
1001 | Valeur « %s » non valide. Obligatoire de type « %s » | Une erreur est générée chaque fois qu’une valeur de paramètre présente une incohérence de type. Par exemple, la valeur de chaîne spécifiée pour un paramètre entier. |
1002 | Valeur manquante pour le paramètre obligatoire « %s » | Une erreur est générée lorsqu’un paramètre obligatoire est manquant dans la requête |
1003 | Données non valides | Lorsque le type des données envoyées n’est pas valide pour le point d’entrée ou le mode donné, par exemple lorsque l’ID est envoyé pour un prospect avec une action désignée comme createOnly ou lors de l’utilisation de la campagne Demander sur une campagne par lots. |
1004 | Lead introuvable | Pour syncLead, lorsque l’action est « updateOnly » et si le prospect est introuvable |
1005 | Le lead existe déjà | Pour syncLead, lorsque l’action est « createOnly » et si un prospect existe déjà |
1006 | Champ « %s » introuvable | Un champ inclus dans l’appel n’est pas un champ valide. |
1007 | Plusieurs prospects correspondent aux critères de recherche | Plusieurs prospects correspondent aux critères de recherche. Les mises à jour ne peuvent être effectuées que lorsque la clé correspond à un seul enregistrement |
1008 | Accès refusé à la partition « %s » | L’utilisateur du service personnalisé n’a pas accès à un espace de travail avec la partition où se trouve l’enregistrement. |
1009 | Le nom de la partition doit être spécifié. | |
1010 | Mise à jour de partition non autorisée | L'enregistrement spécifié existe déjà dans une partition de lead distincte. |
1011 | Champ « %s » non pris en charge | Lorsque le champ de recherche ou « filterType » est spécifié avec des champs standard non pris en charge (par exemple : firstName, lastName) |
1012 | Valeur de cookie non valide « %s » | Peut se produire lors de l’appel de la Associer le prospect avec une valeur non valide pour le paramètre « cookie ». Cela se produit également lors de l’appel de Get Leads by Filter Type avec « filterType=cookies » et une valeur non valide pour le paramètre « filterValues ». |
1013 | Objet introuvable | Obtenir l'objet (liste, campagne) par id renvoie ce code d'erreur |
1014 | Échec de la création de l’objet | Échec de la création de l’objet (liste) |
1015 | Lead absent de la liste | Le prospect désigné n’est pas membre de la liste cible |
1016 | Trop d’importations | Il y a trop d’importations en file d’attente. 10 maximum sont autorisés |
1017 | L'objet existe déjà | Échec de la création car l'enregistrement existe déjà |
1018 | CRM activé | L’action n’a pas pu être effectuée, car l’instance a une intégration CRM native activée. |
1019 | Importation en cours | La liste cible est déjà importée dans |
1020 | Trop de clones à programmer | L’abonnement a atteint l’utilisation allouée de « cloneToProgramName » dans le programme planifié pour la journée |
1021 | Mise à jour d’entreprise non autorisée | Mise à jour d’entreprise non autorisée pendant syncLead |
1022 | Objet utilisé | La suppression n'est pas autorisée lorsqu'un objet est utilisé par un autre objet |
1025 | Statut de programme introuvable | Un statut a été spécifié pour Modifier le statut du programme de lead qui ne correspondait pas à un statut disponible pour le canal du programme. |
1026 | Objet personnalisé non activé | L'action n'a pas pu être exécutée, car l'intégration d'objets personnalisés n'est pas activée pour l'instance. |
1027 | Limite de type d’activité max. atteinte | L’abonnement a atteint le nombre maximum de types d’activités personnalisées disponibles. |
1028 | Limite de champ maximale atteinte | Les activités personnalisées ont un maximum de 20 attributs secondaires. |
1029 |
|
|
1035 | Type de filtre non pris en charge | Dans certains abonnements, les types de filtre d’extraction de leads en bloc suivants ne sont pas pris en charge : updatedAt, smartListId, smartListName. |
1036 | Objet en double trouvé dans l’entrée | Un appel a été effectué pour mettre à jour deux enregistrements ou plus à l'aide de la même clé étrangère. Par exemple, un appel Sync Companies utilisant le même externalCompanyId pour plusieurs sociétés. |
1037 | Lead ignoré | Le prospect a été ignoré, car il a déjà ce statut ou l’a dépassé. |
1042 | Date d’exécution non valide | La date runAt spécifiée pour Planifier la campagne était trop éloignée dans le futur (la durée maximale est de 2 ans). |
1048 | Échec de l’abandon du brouillon d’objet personnalisé | Un appel a été effectué pour ignorer le brouillon d'un objet personnalisé. |
1049 | Échec de la création de l’activité | Tableau d’attributs trop long. Le tableau d’attributs transmis à l’enregistrement a dépassé la longueur maximale de 65536 octets |
1076 | L’appel Fusionner les prospects avec l’indicateur mergeInCRM est le 4. | Vous êtes en train de créer un enregistrement en double. Il est recommandé d’utiliser plutôt un enregistrement existant. Il s’agit du message d’erreur que Marketo reçoit lors de la fusion dans Salesforce. |
1077 | Échec de l’appel Merge Leads en raison de la longueur du champ « SFDC » | Un appel de fusion de leads avec mergeInCRM défini sur true a échoué, car « SFDC Field » a dépassé la limite de caractères autorisés. Pour corriger ce problème, réduisez la longueur du « champ SFDC » ou définissez mergeInCRM sur false. |
1078 | L’appel Fusionner les leads a échoué en raison d’une entité supprimée, d’un lead/contact ou d’un critère de filtre de champ ne correspond pas. | Échec de la fusion, impossible d’effectuer l’opération de fusion dans un CRM synchronisé en mode natif Il s’agit du message d’erreur que Marketo reçoit lors de la fusion dans Salesforce. |
1079 | L’appel Fusionner les leads a échoué en raison d’un conflit d’URL personnalisée dans les enregistrements en double | Un appel de fusion de leads a spécifié de nombreux leads avec la même URL personnalisée. Pour résoudre ce problème, utilisez l’interface utilisateur de Marketo Engage pour fusionner ces enregistrements. |