Codes d’erreur

Vous trouverez ci-dessous des listes de codes d’erreur de l’API REST, ainsi qu’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 se produit. Bien que certains types d’exceptions, telles que 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, et les demandes et réponses seront toujours demandées dans ce scénario.

Types d’erreur

L’API REST Marketo peut renvoyer trois types d’erreurs différents en cas de fonctionnement normal :

  • Au niveau HTTP : ces erreurs sont indiquées par un code 4xx.
  • Niveau de réponse : ces erreurs sont incluses dans le tableau "errors" de la réponse JSON.
  • Record-Level : ces erreurs sont incluses dans le tableau "result" de la réponse JSON et sont indiquées sur une base d’enregistrement individuelle avec le champ "status" et le tableau "raisons".

Pour les types d’erreur Response-Level et Record-Level, un code d’état HTTP 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 susceptible d’être modifiée.

Erreurs au niveau HTTP

Dans des conditions d’exploitation normales, Marketo ne doit renvoyer que deux erreurs de code d’état HTTP, 413 Request Entity Too Large et 414 Request URI Too Long. Ils peuvent tous deux être récupérés en capturant l’erreur, en modifiant la requête et en réessayant, mais avec des pratiques de codage intelligent, vous ne devriez jamais les rencontrer dans la nature.

Marketo renvoie 413 si la charge utile de la requête dépasse 1 Mo ou 10 Mo dans le cas d’une piste d’importation. Dans la plupart des scénarios, il est peu probable que ces limites soient atteintes, mais l’ajout d’une vérification de la taille de la requête et le déplacement d’enregistrements, ce qui entraîne le dépassement de la limite par une nouvelle requête, devrait empêcher tout contexte, ce qui entraîne le renvoi de cette erreur par les points de terminaison.

414 est renvoyé lorsque l’URI d’une demande de 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 transforme votre requête en méthode de POST, entrez votre chaîne de requête en tant que corps de 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 quelque peu courant lors de la récupération de lots volumineux d’enregistrements avec de longues valeurs de filtre individuelles, telles qu’un GUID.
Le point d’entrée Identity peut renvoyer une erreur 401 Unauthorized . Cela est généralement dû à un ID de client non valide ou à un secret de client non valide. Codes d’erreur au niveau HTTP

Code de réponse
Description
Commentaire
413
Entité de requête trop volumineuse
La payload a dépassé la limite de 1 Mo.
414
Request-URI Trop long
L’URI de la requête dépassait 8 Ko. La requête doit être relancée en tant que POST avec le paramètre `_method=GET` dans l’URL et le reste de la chaîne de requête dans le corps de la requête.

Erreurs au niveau de la réponse

Des erreurs de niveau de réponse sont présentes lorsque le paramètre success de la réponse est défini sur false et est structuré 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 601 et 799 cité et un message qui indique 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. Par exemple, 601, "Jeton d’accès non valide", qui peut être récupéré en réauthentifiant 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é mal paramétrée, par exemple en incluant une date non valide, ou parce qu’un paramètre requis a été absent.

Codes d’erreur de niveau 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.

Code de réponse
Description
Commentaire
502
Passerelle incorrecte
Le serveur distant a renvoyé une erreur. Probablement un dépassement de délai. La requête doit être relancée avec un backoff exponentiel.
601*
Jeton d’accès non valide
Un paramètre Access Token a été inclus dans la requête, mais la valeur n’était pas un jeton d’accès valide.
602*
Jeton d’accès expiré
Le jeton d’accès inclus dans l’appel n’est plus valide en raison de l’expiration.
603
Accès refusé
L’authentification a réussi, mais l’utilisateur ne dispose pas des autorisations suffisantes pour appeler cette API. [Autorisations supplémentaires](custom-services.md) peut avoir besoin d’être affecté au rôle d’utilisateur, ou la Liste autorisée pour l’accès API basé sur IP peut être activée.
604*
Délai d’expiration de la requête
La requête s’exécutait trop longtemps (par exemple, a rencontré une contention de base de données) ou a dépassé le délai d’expiration spécifié dans l’en-tête de l’appel.
605*
Méthode HTTP non prise en charge
GET n’est pas pris en charge pour le point de terminaison Leads de synchronisation. POST doit être utilisé.
606
Limite de taux maximale `%s`; dépassée par dans `%s` secondes
Le nombre d’appels des 20 dernières secondes était supérieur à 100
607
Quota quotidien atteint
Le nombre d’appels aujourd’hui a dépassé le quota d’abonnement (réinitialisations quotidiennes à 12h00 heure du Pacifique).>Votre quota se trouve dans le menu Admin->Services web . Vous pouvez augmenter votre quota par l’intermédiaire de votre gestionnaire de compte.
608*
API temporairement indisponible
609
JSON non valide
Le corps inclus dans la requête n’est pas un JSON valide.
610
Ressource demandée introuvable
L’URI de l’appel ne correspondait pas à un type de ressource API REST. Cela est souvent dû à un URI de requête mal orthographié ou mal formaté.
611*
Erreur système
Toutes les exceptions non traitées
612
Type de contenu non valide
Si cette erreur s’affiche, ajoutez un en-tête de type de contenu spécifiant le format JSON à votre requête. Par exemple, essayez d’utiliser `content type: application/json`. Pour plus d’informations, consultez cette question StackOverflow .
613
Requête multipartie non valide
Le contenu en plusieurs parties du POST n’a pas été correctement formaté.
614
Abonnement non valide
L’abonnement à la destination est introuvable ou inaccessible. Cela indique généralement une inaccessibilité temporaire.
615
Limite d’accès simultanée atteinte
Au maximum, les demandes sont traitées par n’importe quel abonnement 10 à la fois. Cette valeur est renvoyée s’il existe déjà 10 requêtes en cours.
616
Type d'abonnement non valide
Le type d’abonnement Marketo approprié est requis pour accéder à l’API de métadonnées d’objet personnalisé. Pour plus d’informations, consultez votre CSM .
701
%s ne peut pas être vide
Le champ signalé ne doit pas être vide dans la requête.
702
Aucune donnée trouvée pour un scénario de recherche donné
Aucun enregistrement ne correspondait aux paramètres de recherche donnés. Remarque : De nombreuses opérations de recherche ayant échoué renvoient `success = true` et aucune erreur et définissent une chaîne d’information d’avertissement.
703
La fonctionnalité n’est pas activée pour l’abonnement.
Fonction bêta qui n’a pas été activée dans l’abonnement d’un utilisateur
704
Format de date invalide
  • Une date spécifiée dans un format incorrect a été spécifiée.
  • Un identifiant de contenu dynamique non valide a été spécifié.
709
Violation des règles commerciales

L’appel ne peut pas être rempli, car il enfreint une obligation de création ou de mise à jour d’une ressource, par exemple en essayant de créer un email sans modèle. Il est également possible d’obtenir cette erreur lorsque vous essayez d’effectuer les opérations suivantes :

  • Récupérez le contenu des landing pages qui contiennent du contenu social.
  • Cloner un programme qui contient certains types de ressources (voir Clone de programme pour plus d’informations).
  • Approuvez une ressource sans version préliminaire (c’est-à-dire qu’elle a déjà été approuvée).
710
Dossier parent introuvable
Le dossier parent spécifié est introuvable
711
Type de dossier incompatible
Le dossier spécifié n’était pas du type correct pour répondre à la requête.
712
L’opération de fusion de compte de personne n’est pas valide
Un appel Fusionner les pistes a échoué en raison d’une tentative de fusion de pistes qui sont des comptes de personne Salesforce. Les comptes de personne Salesforce doivent être fusionnés dans Salesforce.
713
Erreur transitoire
Une ressource système était temporairement indisponible au moment de l’appel API. Lorsque cette erreur est rencontrée, il est conseillé d’attendre longtemps, puis de relancer la requête.
714
Impossible de trouver le type d’enregistrement par défaut
Un appel Fusionner les pistes a échoué car il n’a pas pu trouver un type d’enregistrement par défaut.
718
ExternalSalesPersonID introuvable
Un appel de synchronisation des opportunités a été effectué avec une valeur "ExternalSalesPersonID" inexistante.
719
Verrouillage de l’exception de délai d’attente
Un appel au programme de clonage a été effectué et a expiré en attendant un verrou.

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 la requête elle-même était valide. Une réponse avec des erreurs de niveau enregistrement 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 classé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 individuellement, ce qui est indiqué par le champ d’état de chaque enregistrement inclus dans le tableau de résultat d’une réponse. Le champ "status" de ces enregistrements sera "sauté" et un tableau "raisons" est 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, une requête de pistes de synchronisation avec "action" définie sur "createOnly", mais une piste 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

Code de réponse
Description
Commentaire
1001
Valeur non valide ‘%s’. Requis de type ‘%s’
Une erreur est générée chaque fois qu’une valeur de paramètre ne correspond pas au type . Par exemple, la valeur string spécifiée pour un paramètre entier.
1002
Valeur manquante pour le paramètre requis %s
Une erreur est générée lorsqu’un paramètre requis est absent de la requête.
1003
Données non valides
Lorsque les données envoyées ne sont pas un type valide pour le point de terminaison ou le mode donné, par exemple lorsque l’identifiant est envoyé pour une piste avec l’action désignée comme createOnly ou lors de l’utilisation de l’option Demander la campagne sur une campagne par lots.
1004
Lead introuvable
Pour syncLead, lorsque l’action est "updateOnly" et si la piste est introuvable
1005
La piste existe déjà
Pour syncLead, lorsque l’action est "createOnly" et si une piste existe déjà
1006
Champ ‘%s’ introuvable
Un champ inclus dans l’appel n’est pas un champ valide.
1007
Plusieurs pistes correspondent aux critères de recherche.
Plusieurs pistes 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 dans laquelle l’enregistrement existe.
1009
Le nom de la partition doit être spécifié
1010
Mise à jour de la partition non autorisée
L’enregistrement spécifié existe déjà dans une partition de piste 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 (ex : firstName, lastName)
1012
Valeur de cookie non valide ‘%s’
Cela peut se produire lors de l’appel de 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
Get object (list, campaign) by 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
Plomb non dans la liste
Le prospect désigné n’est pas membre de la liste cible
1016
Trop d'imports
Trop d'importations sont en file d'attente. Un maximum de 10 est autorisé
1017
L'objet existe déjà
La création a échoué car l’enregistrement existe déjà
1018
CRM activé
L’action n’a pas pu être effectuée, car l’intégration CRM native de l’instance est activée.
1019
Importation en cours
La liste cible est déjà en cours d'import vers
1020
Trop de clones à programmer
L’abonnement a atteint l’utilisation autorisée de "cloneToProgramName" dans le programme de planification pour la journée.
1021
Mise à jour de société non autorisée
Mise à jour de la société 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
État du programme introuvable
Un état a été spécifié pour Modifier l’état du programme de piste qui ne correspondait pas à un état 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 des objets personnalisés n’est pas activée pour l’instance.
1027
Limite max. de type d’activité atteinte
L’abonnement a atteint le nombre maximal de types d’activité personnalisés disponibles.
1028
Limite de champ maximale atteinte
Les activités personnalisées possèdent au maximum 20 attributs secondaires.
1029
  • Trop de tâches dans la file d’attente
  • Exporter le quota quotidien dépassé
  • Les abonnements peuvent, à tout moment, contenir, au maximum, 10 tâches d’extraction en masse dans la file d’attente.
  • Par défaut, les tâches d’extraction sont limitées à 500 Mo par jour (réinitialisations quotidiennes à 00h00 du matin (heure de la côte Est).
1035
Type de filtre non pris en charge
Dans certains abonnements, les types de filtres d’extraction de pistes en bloc suivants ne sont pas pris en charge : updatedAt, smartListId, smartListName.
1036
Objet dupliqué trouvé dans l’entrée
Un appel a été lancé pour mettre à jour deux enregistrements ou plus utilisant la même clé étrangère. Par exemple, un appel de sociétés de synchronisation utilisant le même externalCompanyId pour plusieurs sociétés.
1037
Le plomb a été sauté.
La piste a été ignorée car elle se trouve déjà dans ce statut ou en est dépassée.
1042
Date d’exécution non valide
La date runAt spécifiée pour la planification de la campagne était trop éloignée dans le futur (le maximum est de 2 ans).
1048
Échec de l’abandon du brouillon d’objet personnalisé
Un appel a été effectué pour ignorer la version préliminaire d’un objet personnalisé.
1049
Échec de la création de l’activité
Tableau d’attributs trop long. Le tableau des attributs transmis à l’enregistrement a dépassé la longueur maximale de 6 536 octets.
1076
L’appel Fusionner les pistes avec l’indicateur mergeInCRM est 4.
Vous créez un enregistrement en double. Il est recommandé d’utiliser un enregistrement existant à la place. Il s’agit du message d’erreur que Marketo reçoit lors de la fusion dans Salesforce.
1077
L’appel Fusionner les pistes a échoué en raison de la longueur du "champ SFDC"
Un appel Fusionner les pistes avec mergeInCRM défini sur true a échoué en raison d’un "champ SFDC" dépassant la limite des caractères autorisés. Pour corriger ce problème, réduisez la longueur de `SFDC Field` ou définissez mergeInCRM sur false.
1078
L’appel Fusionner les pistes a échoué en raison d’une entité supprimée, pas un critère de piste/contact, ou de filtre de champ ne correspond pas.
Échec de la fusion, impossible d’effectuer une opération de fusion dans un CRM synchronisé nativement Il s’agit du message d’erreur que Marketo reçoit lors de la fusion dans Salesforce.
recommendation-more-help
bb269a6d-047a-4bf7-9acd-23ad9a63dc59