Fehler-Codes
Im Folgenden finden Sie eine Liste der REST-API-Fehler-Codes und eine Erläuterung, wie Fehler an Programme zurückgegeben werden.
Behandeln und Protokollieren von Ausnahmen
Bei der Entwicklung für Marketo ist es wichtig, dass Anfragen und Antworten protokolliert werden, wenn eine unerwartete Ausnahme auftritt. Während bestimmte Arten von Ausnahmen, z. B. abgelaufene Authentifizierungen, sicher durch erneute Authentifizierung verarbeitet werden können, erfordern andere möglicherweise Support-Interaktionen, und Anfragen und Antworten werden immer in diesem Szenario angefordert.
Fehlertypen
Die Marketo-REST-API kann im Normalbetrieb drei verschiedene Fehlertypen zurückgeben:
- HTTP-Ebene: Auf diese Fehler wird durch einen
4xx
Code hingewiesen. - Antwortebene: Diese Fehler sind im Array „Fehler“ der JSON-Antwort enthalten.
- Datensatzebene: Diese Fehler sind im Array „Ergebnis“ der JSON-Antwort enthalten und werden auf individueller Datensatzbasis mit dem Feld „Status“ und dem Array „Gründe“ angezeigt.
Bei Fehlertypen auf Antwort- und Datensatz-Ebene wird ein HTTP-Status-Code von 200 zurückgegeben. Für alle Fehlertypen sollte die HTTP-Ursachenphrase nicht ausgewertet werden, da sie optional ist und sich ändern kann.
Fehler auf HTTP-Ebene
Unter normalen Betriebsbedingungen sollte Marketo nur zwei HTTP-Status-Code-Fehler, 413 Request Entity Too Large
und 414 Request URI Too Long
, zurückgeben. Beide können durch Abrufen des Fehlers, Ändern der Anfrage und erneutes Versuchen wiederhergestellt werden. Mit intelligenten Kodierungsverfahren sollten Sie jedoch nie auf diese stoßen.
Marketo gibt 413 zurück, wenn die Payload der Anfrage 1 MB überschreitet, oder 10 MB im Fall des Leadimports. In den meisten Szenarien ist es unwahrscheinlich, dass diese Beschränkungen erreicht werden. Durch Hinzufügen einer Prüfung der Größe der Anfrage und Verschieben von Datensätzen, die dazu führen, dass das Limit überschritten wird, zu einer neuen Anfrage sollten jedoch alle Umstände verhindert werden, die zu diesem Fehler bei Endpunkten führen.
414 wird zurückgegeben, wenn der URI einer GET-Anfrage 8 KB überschreitet. Um dies zu vermeiden, überprüfen Sie die Länge Ihrer Abfragezeichenfolge, um festzustellen, ob sie diesen Grenzwert überschreitet. Wenn Ihre Anfrage jedoch in eine POST-Methode geändert wird, geben Sie Ihre Abfragezeichenfolge als Anfragetext mit dem zusätzlichen Parameter _method=GET
ein. Dadurch wird die Einschränkung für URIs aufgegeben. In den meisten Fällen ist es selten, dieses Limit zu erreichen, aber es ist etwas üblich, wenn große Batches von Datensätzen mit langen individuellen Filterwerten wie einer GUID abgerufen werden.
Der Identity-Endpunkt kann einen 401-Fehler „Nicht autorisiert“ zurückgeben. Dies ist normalerweise auf eine ungültige Client-ID oder ein ungültiges Client-Geheimnis zurückzuführen. Fehlercodes auf HTTP-Ebene
Fehler auf Antwortebene
Fehler auf Antwortebene sind vorhanden, wenn der success
der Antwort auf „false“ gesetzt ist. Sie sind wie folgt strukturiert:
{
"requestId": "e42b#14272d07d78",
"success": false,
"errors": [
{
"code": "601",
"message": "Unauthorized"
}
]
}
Jedes Objekt im Array „errors“ hat zwei Mitglieder, code
, was einer angegebenen Ganzzahl von 601 bis 799 entspricht, und einen message
, der den Klartext-Grund für den Fehler angibt. 6xx-Codes zeigen immer an, dass eine Anfrage vollständig fehlgeschlagen ist und nicht ausgeführt wurde. Ein Beispiel ist ein 601-Zugriffstoken „Ungültig“, das durch erneute Authentifizierung und Übergabe des neuen Zugriffstokens mit der Anfrage wiederhergestellt werden kann. 7xx-Fehler zeigen an, dass die Anfrage fehlgeschlagen ist, entweder weil keine Daten zurückgegeben wurden oder weil die Anfrage falsch parametrisiert wurde, z. B. weil ein ungültiges Datum enthalten war oder ein erforderlicher Parameter fehlte.
Fehlercodes auf Antwortebene
Ein API-Aufruf, der diesen Antwort-Code zurückgibt, wird nicht auf Ihr tägliches Kontingent oder Ihr Ratenlimit angerechnet.
- Es wurde ein Datum angegeben, das nicht im richtigen Format war
- Es wurde eine ungültige ID für dynamische Inhalte angegeben
Der Aufruf kann nicht ausgeführt werden, da er gegen eine Anforderung verstößt, ein Asset zu erstellen oder zu aktualisieren, z. B. wenn versucht wird, eine E-Mail ohne Vorlage zu erstellen. Dieser Fehler kann auch ausgegeben werden, wenn versucht wird:
- Rufen Sie Inhalte für Landingpages ab, die Social-Media-Inhalte enthalten.
- Klonen Sie ein Programm, das bestimmte Asset-Typen enthält weitere Informationen finden Sie unterProgramm-Klon„).
- Genehmigen eines Assets, das keinen Entwurf hat (also bereits genehmigt wurde).
auf Rekordebene record_level_errors
Fehler auf Datensatzebene zeigen an, dass ein Vorgang für einen einzelnen Datensatz nicht abgeschlossen werden konnte, die Anfrage selbst jedoch gültig war. Eine Antwort mit Fehlern auf Datensatzebene folgt diesem Muster:
Antwort
{
"requestId":"e42b#14272d07d78",
"success":true,
"result":[
{
"id":50,
"status":"created"
},
{
"id":51,
"status":"created"
},
{
"status":"skipped",
"reasons":[
{
"code":"1005",
"message":"Lead already exists"
}
]
}
]
}
Datensätze, die im Ergebnis-Array von Aufrufen enthalten sind, werden auf die gleiche Weise sortiert wie das Eingabe-Array einer Anfrage.
Jeder Datensatz in einer erfolgreichen Anfrage kann auf individueller Basis erfolgreich sein oder fehlschlagen. Dies wird durch das Statusfeld jedes Datensatzes angezeigt, der im Ergebnis-Array einer Antwort enthalten ist. Das Feld „Status“ dieser Datensätze wird „übersprungen“ und ein Array „Gründe“ ist vorhanden. Jeder Grund enthält ein Element des Typs „Code“ und ein Element des Typs „Nachricht“. Der Code ist immer 1xxx. Die Meldung gibt an, warum der Datensatz übersprungen wurde. Ein Beispiel wäre, wenn bei einer Anfrage zum Synchronisieren von Leads „Aktion“ auf „createOnly“ gesetzt ist, aber für einen der Schlüssel in den gesendeten Datensätzen bereits ein Lead vorhanden ist. In diesem Fall wird der Code 1005 zurückgegeben und die Meldung „Lead existiert bereits“ wird wie oben angezeigt angezeigt.
Fehlercodes auf Datensatzebene
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 | ||
---|---|---|
Antwortcode | Beschreibung | Kommentar |
1001 | Ungültiger Wert "%s“. Erforderlich vom Typ "%s“ | Ein Fehler wird immer dann generiert, wenn ein Parameterwert nicht mit dem Typ übereinstimmt. Beispiel: der für einen ganzzahligen Parameter angegebene Zeichenfolgenwert. |
1002 | Fehlender Wert für den erforderlichen Parameter '%s' | Fehler wird generiert, wenn in der Anfrage ein erforderlicher Parameter fehlt |
1003 | Ungültige Daten | Wenn die übermittelten Daten für den angegebenen Endpunkt oder Modus keinen gültigen Typ haben; z. B. wenn die ID für einen Lead mit der Aktion „createOnly“ gesendet wird oder wenn die Anfragekampagne in einer Batch-Kampagne verwendet wird. |
1004 | Lead nicht gefunden | Für syncLead, wenn die Aktion „updateOnly“ ist und wenn kein Lead gefunden wird |
1005 | Lead existiert bereits | Für syncLead, wenn die Aktion „createOnly“ lautet und bereits ein Lead vorhanden ist |
1006 | Feld "%s“ nicht gefunden | Ein im Aufruf eingeschlossenes Feld ist kein gültiges Feld. |
1007 | Mehrere Leads entsprechen den Suchkriterien | Mehrere Leads entsprechen den Suchkriterien. Aktualisierungen können nur durchgeführt werden, wenn der Schlüssel mit einem einzelnen Datensatz übereinstimmt. |
1008 | Zugriff auf Partition '%s' verweigert | Der Benutzer für den benutzerdefinierten Dienst hat keinen Zugriff auf einen Arbeitsbereich mit der Partition, auf der der Datensatz vorhanden ist. |
1009 | Partitionsname muss angegeben werden | |
1010 | Partitionsaktualisierung nicht zulässig | Der angegebene Datensatz existiert bereits in einer separaten Lead-Partition. |
1011 | Feld "%s“ wird nicht unterstützt | Wenn das Suchfeld oder „filterType“ mit nicht unterstützten Standardfeldern angegeben wird (z. B.: firstName, lastName) |
1012 | Ungültiger Cookie-Wert "%s“ | Kann auftreten, wenn der Aufruf Lead verknüpfen mit einem ungültigen Wert für den Parameter „cookie“ erfolgt. Dies tritt auch auf, wenn Leads nach Filtertyp abrufen mit „filterType=cookies“ und einem ungültigen Wert für den Parameter „filterValues“ aufgerufen wird. |
1013 | Objekt nicht gefunden | Objekt abrufen (Liste, Kampagne) nach ID gibt diesen Fehlercode zurück |
1014 | Objekt konnte nicht erstellt werden | Objekt (Liste) konnte nicht erstellt werden |
1015 | Lead nicht in Liste | Der angegebene Lead ist kein Mitglied der Zielliste |
1016 | Zu viele Importe | Es gibt zu viele Importe in der Warteschlange. Es sind maximal 10 zulässig |
1017 | Objekt bereits vorhanden | Erstellung fehlgeschlagen, da der Datensatz bereits existiert |
1018 | CRM aktiviert | Die Aktion konnte nicht ausgeführt werden, da für die Instanz eine native CRM-Integration aktiviert ist. |
1019 | Importvorgang wird durchgeführt | Die Zielliste wird bereits in importiert. |
1020 | Zu viele Klone zum Programmieren | Das Abonnement hat die zugewiesene Verwendung von „cloneToProgramName“ im Zeitplan-Programm für den Tag erreicht |
1021 | Update der Firma nicht zulässig | Update des Unternehmens während der Synchronisierung nicht zulässig |
1022 | Verwendetes Objekt | Löschen ist nicht zulässig, wenn ein Objekt von einem anderen Objekt verwendet wird |
1025 | Programmstatus nicht gefunden | Zum Ändern des Status des Lead-Programms wurde ein Status angegeben, der nicht mit einem Status übereinstimmt, der für den Kanal des Programms verfügbar ist. |
1026 | Benutzerdefiniertes Objekt nicht aktiviert | Die Aktion konnte nicht ausgeführt werden, da für die Instanz die Integration benutzerdefinierter Objekte nicht aktiviert ist. |
1027 | Maximales Limit für Aktivitätstyp erreicht | Das Abonnement hat die maximale Anzahl der verfügbaren benutzerdefinierten Aktivitätstypen erreicht. |
1028 | Maximale Feldgrenze erreicht | Benutzerdefinierte Aktivitäten haben maximal 20 sekundäre Attribute. |
1029 |
|
|
1035 | Nicht unterstützter Filtertyp | In einigen Abonnements werden die folgenden Filtertypen für die Lead-Massenextraktion nicht unterstützt: updatedAt, smartListId, smartListName. |
1036 | Doppeltes Objekt in Eingabe gefunden | Es wurde ein Aufruf ausgeführt, zwei oder mehr Datensätze mit demselben Fremdschlüssel zu aktualisieren. Beispiel: Ein Aufruf vom Typ „Unternehmen synchronisieren“, der dieselbe externalCompanyId für mehr als ein Unternehmen verwendet. |
1037 | Lead wurde übersprungen | Der Lead wurde übersprungen, da er sich bereits in oder hinter diesem Status befindet. |
1042 | Ungültiges Ausführungsdatum | Das für „Kampagne planen“ angegebene „runAt“-Datum lag zu weit in der Zukunft (maximal 2 Jahre). |
1048 | Entwurf zum Verwerfen benutzerdefinierter Objekte fehlgeschlagen | Es wurde ein Aufruf ausgeführt, um die Entwurfsversion eines benutzerdefinierten -Objekts zu verwerfen. |
1049 | Aktivität konnte nicht erstellt werden | Attributarray zu lang. Das Array von Attributen, die an den Datensatz übergeben werden, hat die maximale Länge von 65536 Byte überschritten |
1076 | Leads zusammenführen Aufruf mit mergeInCRM-Flag ist 4. | Es wird ein doppelter Eintrag erstellt. Es wird empfohlen, stattdessen einen vorhandenen Datensatz zu verwenden. Dies ist die Fehlermeldung, die Marketo beim Zusammenführen in Salesforce erhält. |
1077 | Leads zusammenführen-Aufruf aufgrund der Länge des "SFDC-Felds“ fehlgeschlagen | Ein Aufruf zum Zusammenführen von Leads, bei dem mergeInCRM auf „true“ festgelegt ist, ist fehlgeschlagen, da das "SFDC-Feld“ die zulässige Zeichenbeschränkung überschreitet. Um dies zu korrigieren, reduzieren Sie die Länge von "SFDC Field“ oder setzen Sie mergeInCRM auf „false“. |
1078 | Leads zusammenführen-Aufruf fehlgeschlagen, da die gelöschte Entität, kein Lead/Kontakt oder die Feldfilterkriterien nicht übereinstimmen. | Zusammenführungsfehler, Zusammenführungsvorgang kann im nativ synchronisierten CRM nicht durchgeführt werden Dies ist die Fehlermeldung, die Marketo beim Zusammenführen in Salesforce erhält. |
1079 | Lead zusammenführen-Aufruf aufgrund eines personalisierten URL-Konflikts in doppelten Einträgen fehlgeschlagen | Bei einem Aufruf zum Zusammenführen von Leads wurden viele Leads mit derselben personalisierten URL angegeben. Verwenden Sie zum Auflösen die Marketo Engage-Benutzeroberfläche, um diese Datensätze zusammenzuführen. |