Felkoder
Nedan finns listor över felkoder för REST API och en förklaring av hur fel returneras till programmen.
Hantera och logga undantag
När du utvecklar för Marketo är det viktigt att begäranden och svar loggas när ett oväntat undantag inträffar. Vissa typer av undantag, till exempel autentisering som har upphört att gälla, kan hanteras säkert genom återautentisering, men andra kan kräva supportinteraktioner, och begäranden och svar kommer alltid att begäras i det här scenariot.
Feltyper
Marketo REST API kan returnera tre olika typer av fel vid normal användning:
- HTTP-nivå: Dessa fel indikeras av en
4xx
-kod. - Svarsnivå: Dessa fel ingår i arrayen "errors" i JSON-svaret.
- Postnivå: Dessa fel ingår i arrayen "result" i JSON-svaret och anges på individuell postbasis med arrayen "status" och "reasons".
För feltyperna Svarsnivå och Postnivå returneras HTTP-statuskoden 200. För alla feltyper ska HTTP-orsaksfrasen inte utvärderas eftersom den är valfri och kan ändras.
HTTP-nivåfel
Under normala driftförhållanden bör Marketo endast returnera två HTTP-statuskodfel, 413 Request Entity Too Large
och 414 Request URI Too Long
. Båda kan återställas genom att felet identifieras, begäran ändras och nya försök görs, men med smart kodning bör du aldrig stöta på detta i verkligheten.
Marketo returnerar 413 om nyttolasten för begäran överstiger 1 MB, eller 10 MB vid import av lead. I de flesta fall är det osannolikt att de här gränserna kommer att nås, men om man lägger till en kontroll av begärans storlek och flyttar poster, vilket gör att gränsen överskrids för en ny begäran, bör det inte finnas några omständigheter som kan leda till att felet returneras av någon slutpunkt.
414 returneras när URI:n för en GET-begäran överstiger 8 kB. För att undvika det bör du kontrollera mot längden på frågesträngen för att se om den överskrider den här gränsen. Om den ändrar din begäran till en POST-metod anger du frågesträngen som begärandebrödtext med den extra parametern _method=GET
. Detta innebär att begränsningen för URI:er ignoreras. I de flesta fall är det ovanligt att den här gränsen nås, men det är något vanligt när du hämtar stora grupper med poster med långa enskilda filtervärden som GUID.
Identity-slutpunkten kan returnera ett 401 otillåtet fel. Detta beror vanligtvis på ett ogiltigt klient-ID eller ogiltig klienthemlighet. Felkoder på HTTP-nivå
Fel på svarsnivå
Svarsnivåfel förekommer när parametern success
i svaret är inställd på false och är strukturerade på följande sätt:
{
"requestId": "e42b#14272d07d78",
"success": false,
"errors": [
{
"code": "601",
"message": "Unauthorized"
}
]
}
Varje objekt i arrayen "errors" har två medlemmar, code
, som är ett heltal med citattecken mellan 601 och 799, och en message
som anger varför felet beror på texten. 6xx-koder anger alltid att en begäran misslyckades helt och inte kördes. Ett exempel är 601, "Åtkomsttoken invalid", som kan återställas genom återautentisering och genom att skicka den nya åtkomsttoken med begäran. 7xx-fel indikerar att begäran misslyckades, antingen på grund av att inga data returnerades, eller på grund av att begäran parametriserades felaktigt, till exempel att ett ogiltigt datum inkluderades, eller att en obligatorisk parameter saknades.
Felkoder på svarsnivå
Ett API-anrop som returnerar den här svarskoden räknas inte av mot din dagliga kvot eller din avgiftsgräns.
- Ett datum som inte hade rätt format angavs
- Ett ogiltigt ID för dynamiskt innehåll angavs
Anropet kan inte utföras eftersom det bryter mot ett krav på att skapa eller uppdatera en resurs, till exempel att försöka skapa ett e-postmeddelande utan en mall. Det går också att få följande fel när du försöker:
- Hämta innehåll för landningssidor som innehåller socialt innehåll.
- Klona ett program som innehåller vissa resurstyper (mer information finns i Programklon).
- Godkänn en tillgång som inte har något utkast (det vill säga som redan har godkänts).
Postnivå record_level_errors
Postnivåfel indikerar att en åtgärd inte kunde slutföras för en enskild post, men själva begäran var giltig. Ett svar med fel på postnivå följer det här mönstret:
Svar
{
"requestId":"e42b#14272d07d78",
"success":true,
"result":[
{
"id":50,
"status":"created"
},
{
"id":51,
"status":"created"
},
{
"status":"skipped",
"reasons":[
{
"code":"1005",
"message":"Lead already exists"
}
]
}
]
}
Poster som ingår i den resulterande arrayen med anrop ordnas på samma sätt som indataarrayen för en begäran.
Varje post i en lyckad begäran kan lyckas eller misslyckas på individnivå, vilket anges av statusfältet för varje post som ingår i resultatarrayen i ett svar. Fältet "status" för de här posterna hoppas över och arrayen "reasons" finns. Varje orsak innehåller en"kodmedlem" och en"meddelandemedlem". Koden är alltid 1xxx och meddelandet anger varför posten hoppades över. Ett exempel är när en begäran om synkronisering av leads har "action" inställt på "createOnly", men det redan finns en lead för en av nycklarna i de skickade posterna. I det här fallet returneras koden 1005 och meddelandet"Lead already exists" (Lead finns redan) visas ovan.
Felkoder på postnivå
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 | ||
---|---|---|
Svarskod | Beskrivning | Kommentar |
1001 | Ogiltigt värde, %s. Krävs av typen "%s" | Ett fel genereras när ett parametervärde har ett typmatchningsfel. Strängvärdet som anges för en heltalsparameter. |
1002 | Värde saknas för den obligatoriska parametern %s | Ett fel genereras när en obligatorisk parameter saknas i begäran |
1003 | Ogiltiga data | När inskickade data inte är en giltig typ för den angivna slutpunkten eller det angivna läget, till exempel när ID skickas för en lead med åtgärden createOnly eller när Request Campaign används för en batchkampanj. |
1004 | Lead hittades inte | För syncLead, när åtgärden är "updateOnly" och om lead inte hittas |
1005 | Lead finns redan | För syncLead, när åtgärden är"createOnly" och om det redan finns en lead |
1006 | Fältet "%s" hittades inte | Ett inkluderat fält i anropet är inte ett giltigt fält. |
1007 | Flera leads matchar sökvillkoren | Flera leads matchar sökvillkoren. Uppdateringar kan bara utföras när nyckeln matchar en enskild post |
1008 | Åtkomst nekad till partitionen %s | Användaren för den anpassade tjänsten har inte åtkomst till en arbetsyta med partitionen där posten finns. |
1009 | Partitionsnamnet måste anges | |
1010 | Partitionsuppdatering tillåts inte | Den angivna posten finns redan i en separat huvudpartition. |
1011 | Fältet "%s" stöds inte | Vid uppslagsfält eller filtertyp som anges med standardfält som inte stöds (t.ex. firstName, lastName) |
1012 | Ogiltigt cookie-värde "%s" | Kan inträffa när Associate Lead anropas med ett ogiltigt värde för parametern "cookie". Detta inträffar också när Hämta leads efter filtertyp anropas med filtertyp=cookies och ett ogiltigt värde för parametern filterValues. |
1013 | Objektet hittades inte | Get object (list, campaign) by id returnerar den här felkoden |
1014 | Det gick inte att skapa objektet | Det gick inte att skapa objektet (listan) |
1015 | Lead finns inte i listan | Den angivna leadet är inte medlem i mållistan |
1016 | För många importer | För många importer står i kö. Högst 10 är tillåtet |
1017 | Objektet finns redan | Det gick inte att skapa eftersom posten redan finns |
1018 | CRM aktiverat | Åtgärden kunde inte utföras eftersom instansen har en intern CRM-integrering aktiverad. |
1019 | Import pågår | Mållistan importeras redan till |
1020 | För många kloner att programmera | Prenumerationen har nått den tilldelade användningen av cloneToProgramName i schemaprogrammet för dagen |
1021 | Företagsuppdatering tillåts inte | Företagsuppdatering tillåts inte under syncLead |
1022 | Objekt som används | Borttagning tillåts inte när ett objekt används av ett annat objekt |
1025 | Programstatus hittades inte | En status angavs för att ändra status för Lead Program som inte matchade en status som är tillgänglig för programmets kanal. |
1026 | Anpassat objekt är inte aktiverat | Åtgärden kunde inte utföras eftersom instansen inte har aktiverat integrering av anpassade objekt. |
1027 | Maximal begränsning för aktivitetstyp har uppnåtts | Prenumerationen har nått det maximala antalet tillgängliga anpassade aktivitetstyper. |
1028 | Maximal fältgräns har nåtts | Anpassade aktiviteter har högst 20 sekundära attribut. |
1029 |
|
|
1035 | Filtertypen stöds inte | I vissa prenumerationer stöds inte följande filtertyper för Bulk Lead Extract: updatedAt, smartListId, smartListName. |
1036 | Dubblettobjekt hittades i indata | Ett anrop gjordes för att uppdatera två eller flera poster med samma sekundärnyckel. Ett Sync Companies-anrop använder till exempel samma externalCompanyId för mer än ett företag. |
1037 | Lead hoppades över | Lead hoppades över eftersom den redan är i eller förbi den här statusen. |
1042 | Ogiltigt körningsdatum | Det runAt-datum som angavs för Schedule Campaign var för långt in i framtiden (det maximala antalet är 2 år). |
1048 | Utkastet för borttagning av anpassat objekt misslyckades | Ett anrop gjordes för att ta bort utkastversionen av ett anpassat objekt. |
1049 | Det gick inte att skapa aktiviteten | Attributmatrisen är för lång. Arrayen med attribut som skickades till posten överskred den maximala längden på 65536 byte |
1076 | AnropetMerge Leads med mergeInCRM-flaggan är 4. | Du skapar en dubblettpost. Du bör använda en befintlig post i stället. Detta är felmeddelandet som Marketo får när de sammanfogar i Salesforce. |
1077 | Anropet Kopplingsleads misslyckades på grund av längden "SFDC Field" | Ett anrop av typen Merge Leads med mergeInCRM inställt på true misslyckades eftersom "SFDC Field" överskrider gränsen för tillåtna tecken. Korrigera genom att minska längden på "SFDC Field" eller genom att ange mergeInCRM till false. |
1078 | Anropet Kopplingsleads misslyckades på grund av att entiteten tagits bort, inte en lead/kontakt eller att fältfiltervillkoren inte matchar. | Sammanfogningsfel, det gick inte att utföra sammanfogningsåtgärden i det internt synkroniserade CRM Detta är felmeddelandet som Marketo får när de sammanfogar i Salesforce. |
1079 | Anropet Kopplingsleads misslyckades på grund av en personlig URL-konflikt i dubblettposter | Ett anrop av typen Sammanfogningsleads angav många leads med samma anpassade URL. Lös problemet genom att använda Marketo Engage användargränssnitt för att sammanfoga posterna. |