錯誤代碼

以下是REST API錯誤碼清單,並說明如何將錯誤傳回至應用程式。

處理與記錄例外

針對Marketo進行開發時,發生非預期的例外狀況時,請務必記錄請求和回應。 雖然重新驗證可以安全地處理某些型別的例外(例如過期的驗證),但其他例外可能需要支援互動,而在此情況下將一律要求請求和回應。

錯誤型別

Marketo REST API在正常操作下可傳回三種不同型別的錯誤:

  • HTTP-Level:這些錯誤由 4xx 程式碼。
  • 回應層級:這些錯誤包含在JSON回應的「錯誤」陣列中。
  • 記錄層級:這些錯誤包含在JSON回應的「結果」陣列中,並以「狀態」欄位和「原因」陣列依個別記錄指示。

對於回應層級和記錄層級錯誤型別,會傳回HTTP狀態碼200。 對於所有錯誤型別,不應評估HTTP原因片語,因為它是選用且可能會變更。

HTTP層級錯誤

在正常作業情況下,Marketo應該只會傳回兩個HTTP狀態程式碼錯誤, 413 Request Entity Too Large、和 414 Request URI Too Long. 擷取錯誤、修改請求和重試都可以復原這些設定,但使用智慧編碼實務作法,您絕不應該在萬不得已的情況下遇到這些設定。

如果要求裝載超過1MB,Marketo會傳回413,若是Import Lead,會傳回10MB。 在大多數情況下,應該不會達到這些限制,但新增檢查至要求的大小,並移動任何記錄(這會導致限制超過新的要求)應該可以防止任何情況(這會導致任何端點傳回此錯誤)。

當GET要求的URI超過8KB時,將會傳回414。 若要避免出現這種情況,請檢查查詢字串的長度,看看是否超過此限制。 如果它確實將您的請求變更為POST方法,則使用其他引數將您的查詢字串輸入為請求內文 _method=GET. 這放棄了URI的限制。 在大多數情況下很少達到此限制,但在擷取具有長的個別篩選值(例如GUID)的大量記錄時,這比較常見。
身分 端點可能會傳回401 Unauthorized錯誤。 這通常是因為無效的使用者端ID或無效的使用者端密碼。 HTTP層級錯誤代碼

回應代碼
說明
註解
413
請求實體太大
承載超過1MB限制。
414
請求URI太長
請求的URI超過8k。 該請求應在URL中作為帶有param '_method=GET'的POST重試,其餘的查詢字串應包含在請求正文中。

回應層級錯誤

回應層級錯誤出現於 success 回應的引數設為false,其結構如下:

{
    "requestId": "e42b#14272d07d78",
    "success": false,
    "errors": [
        {
            "code": "601",
            "message": "Unauthorized"
        }
    ]
}

「錯誤」陣列中的每個物件都有兩個成員, code,引號為601到799的整數,以及 message 提供錯誤的純文字原因。 6xx程式碼一律會指出要求完全失敗且未執行。 601「存取權杖無效」即是範例,您可使用要求重新驗證並傳遞新的存取權杖來復原它。 7xx錯誤表示請求失敗,可能是因為未傳回任何資料,或是請求引數化不正確,例如包含無效的日期,或遺漏必要的引數。

回應層級錯誤代碼

傳回此回應程式碼的API呼叫不會算入您的每日配額或速率限制中。

回應代碼
說明
註解
502
錯誤的閘道
遠端伺服器傳回錯誤。 可能是逾時。 該請求應該以指數輪詢重試。
601*
存取權杖無效
請求中包含存取權杖引數,但值不是有效的存取權杖。
602*
存取權杖已過期
由於過期,包含在呼叫中的存取Token已失效。
603
存取遭拒
驗證成功,但使用者沒有足夠的許可權呼叫此API。 [其他許可權](custom-services.md)可能需要指派給使用者角色,或 IP型API存取的允許清單 可能已啟用。
604*
請求逾時
要求執行時間太長(例如,發生資料庫爭用),或超過呼叫標頭中指定的逾時期間。
605*
不支援HTTP方法
Sync Leads端點不支援GET。 必須使用POST。
606
最大速率限制'%s';超過'%s'秒中的值
過去20秒的通話次數大於100
607
已達到每日配額
今天的通話次數超過訂閱的配額(於每日中午12:00CST重設)。>您可以在「管理員 — >網站服務」功能表中找到您的配額。 您可以透過帳戶管理員增加配額。
608*
API暫時無法使用
609
無效的JSON
請求中包含的內文不是有效的JSON。
610
找不到請求的資源
呼叫中的URI不符合REST API資源型別。 這通常是因為錯誤拼字或錯誤格式的請求URI
611*
系統錯誤
所有未處理的例外狀況
612
無效的內容型別
如果您看到此錯誤,請新增內容型別標頭,以指定JSON格式至您的請求。 例如,嘗試使用「content type: application/json」。 請參閱此StackOverflow問題 以取得更多詳細資料。
613
無效的多部分請求
POST的多部分內容格式不正確
614
無效的訂閱
找不到目的地訂閱或無法連線。 這通常表示暫時無法存取。
615
已達到並行存取限制
任何訂閱一次最多可處理10個請求。 如果已經有10個進行中的請求,則會傳回此值。
616
無效的訂閱型別
存取自訂物件中繼資料API需要適當的Marketo訂閱型別。 如需詳細資訊,請洽詢您的CSM。
701
%s不能空白
請求中報告的欄位不得為空白
702
找不到特定搜尋情境的資料
沒有符合指定搜尋引數的記錄。 注意:許多失敗的搜尋作業會傳回「success = true」且沒有錯誤,同時會設定警告資訊字串。
703
訂閱未啟用此功能
使用者訂閱中未啟用的測試版功能
704
無效的日期格式
  • 指定的日期格式不正確
  • 指定的動態內容識別碼無效
709
違反商業規則

無法完成呼叫,因為它違反了建立或更新資產的要求,例如,嘗試在沒有範本的情況下建立電子郵件。 嘗試下列動作時,也可能發生此錯誤:

  • 擷取包含社交內容的登入頁面內容。
  • 複製包含特定資產型別的程式(請參閱 程式複製 以取得詳細資訊)。
  • 核准沒有草稿的資產(即已核准)。
710
找不到上層資料夾
找不到指定的父資料夾
711
不相容的資料夾型別
指定的資料夾型別不正確,無法完成要求
712
「合併至人員帳戶」作業無效
由於嘗試合併Salesforce個人帳戶的銷售機會,合併銷售機會呼叫失敗。 Salesforce人員帳戶必須合併到Salesforce中。
713
暫時性錯誤
API呼叫時,系統資源暫時無法使用。 發生此錯誤時,建議您等候一段時間,然後重試要求。
714
找不到預設記錄型別
合併銷售機會呼叫失敗,因為找不到預設記錄型別。
718
找不到ExternalSalesPersonID
已使用不存在的「ExternalSalesPersonID」值進行Sync Opportunities呼叫。
719
鎖定等待逾時例外狀況
已發出復製程式呼叫,且等候鎖定時逾時。

記錄層級 record_level_errors

記錄層級錯誤表示無法完成個別記錄的作業,但要求本身有效。 含有記錄層級錯誤的回應會遵循以下模式:

回應

{
   "requestId":"e42b#14272d07d78",
   "success":true,
   "result":[
      {
         "id":50,
         "status":"created"
      },
      {
         "id":51,
         "status":"created"
      },
      {
         "status":"skipped",
         "reasons":[
            {
               "code":"1005",
               "message":"Lead already exists"
            }
         ]
      }
   ]
}

呼叫結果陣列中包含的記錄排序方式,與請求的輸入陣列相同。
成功請求中的每個記錄都可能依個別情況成功或失敗,由回應結果陣列中所包含每個記錄的狀態列位表示。 這些記錄的「狀態」欄位將「略過」,且會出現「原因」陣列。 每個原因都包含「代碼」成員和「訊息」成員。 程式碼一律為1xxx,而訊息會指出略過記錄的原因。 例如,Sync Leads請求的「action」設為「createOnly」,但已提交記錄中的索引鍵之一已有潛在客戶。 此案例會傳回代碼1005,而如上所示,訊息為「潛在客戶已存在」。

記錄層級錯誤代碼

回應代碼
說明
註解
1001
無效的值'%s'。 需要'%s'型別
每當引數值的型別不符時,就會產生錯誤。 例如,為integer引數指定的字串值。
1002
遺失必要引數'%s'的值
請求中缺少必要引數時會產生錯誤
1003
無效的資料
當提交的資料不是指定端點或模式的有效型別時;例如當使用指定為createOnly的動作提交潛在客戶的ID時,或當在批次促銷活動上使用請求促銷活動時。
1004
找不到銷售機會
對於syncLead,當動作為"updateOnly"且找不到潛在客戶時
1005
潛在客戶已存在
對於syncLead,當動作為"createOnly"且潛在客戶已存在時
1006
找不到欄位'%s'
呼叫中包含的欄位不是有效欄位。
1007
多個銷售機會符合查詢條件
有多個銷售機會符合查詢條件。 僅當索引鍵符合單一記錄時才能執行更新
1008
拒絕存取資料分割'%s'
自訂服務的使用者無法存取含有記錄所在資料分割的工作區。
1009
必須指定資料分割名稱
1010
不允許資料分割更新
指定的記錄已經存在於不同的潛在客戶分割中。
1011
欄位'%s'不受支援
當查閱欄位或以不支援的標準欄位指定的「filterType」時(例如:firstName、lastName)
1012
無效的Cookie值'%s'
呼叫時可能發生 關聯銷售機會 Cookie引數的值無效。 呼叫時也會發生這種情況 依篩選器型別取得銷售機會 使用filterType=cookies,且filterValues引數的有效值無效。
1013
找不到物件
依ID取得物件(清單、促銷活動)會傳回此錯誤代碼
1014
無法建立物件
建立物件(清單)失敗
1015
潛在客戶不在清單中
指定的潛在客戶不是目標清單的成員
1016
匯入次數過多
有太多匯入已排入佇列。 最多允許10個
1017
物件已存在
建立失敗,因為記錄已經存在
1018
CRM已啟用
無法執行動作,因為執行個體已啟用原生CRM整合。
1019
匯入進行中
目標清單已匯入
1020
要程式化的翻制專案太多
訂閱已達當天排程程式中的「cloneToProgramName」使用配額
1021
不允許公司更新
在syncLead期間不允許公司更新
1022
使用中的物件
當物件正由另一個物件使用時,不允許刪除
1025
找不到程式狀態
已為「變更銷售機會計畫狀態」指定狀態,但該狀態不符合計畫頻道可用的狀態。
1026
未啟用自訂物件
無法執行動作,因為執行個體未啟用自訂物件整合。
1027
已達到最大活動型別限制
訂閱已達到可用自訂活動型別的最大數量。
1028
已達到最大欄位限制
自訂活動最多有20個次要屬性。
1029
  • 佇列中有太多工作
  • 超出匯出每日配額
  • 在任何指定時間,佇列中的訂閱最多允許10個大量擷取工作。
  • 根據預設,擷取工作限製為每天500MB (CST每天凌晨12:00重設)。
1035
不支援的篩選器型別
在某些訂閱中,不支援下列大量銷售機會擷取篩選器型別: updatedAt、smartListId、smartListName。
1036
在輸入中發現重複的物件
已呼叫使用相同的外部索引鍵更新兩個或多個記錄。 例如,同步公司呼叫時,多個公司使用相同的externalCompanyId。
1037
已略過銷售機會
已略過Lead,因為它已經處於或超過此狀態。
1042
無效的runAt日期
為排程行銷活動指定的runAt日期太久未來(最多兩年)。
1048
自訂物件捨棄草稿失敗
已進行呼叫以捨棄自訂物件的草稿版本。
1049
建立活動失敗
屬性陣列太長。 傳遞至記錄的屬性陣列超過65536個位元組的最大長度
1076
合併銷售機會 使用mergeInCRM標幟的呼叫是4。
您正在建立重複記錄。 建議您改用現有記錄。 這是Marketo在Salesforce中合併時收到的錯誤訊息。
1077
合併銷售機會 由於「SFDC欄位」長度,呼叫失敗
mergeInCRM設為true的合併潛在客戶呼叫失敗,因為「SFDC欄位」超過允許的字元限制。 若要更正,請縮短「SFDC欄位」的長度,或將mergeInCRM設為false。
1078
合併銷售機會 呼叫失敗,因為實體已刪除,非銷售機會/聯絡人,或欄位篩選條件不相符。
合併失敗,無法在原生同步的CRM中執行合併作業這是Marketo在Salesforce中合併時收到的錯誤訊息。
recommendation-more-help
bb269a6d-047a-4bf7-9acd-23ad9a63dc59