오류 코드

다음은 REST API 오류 코드 목록과 오류가 다시 애플리케이션으로 반환되는 방법에 대한 설명입니다.

예외 처리 및 로깅

Marketo용으로 개발할 때 예기치 않은 예외가 발생할 때 요청 및 응답이 기록되는 것이 중요합니다. 만료된 인증과 같은 특정 유형의 예외는 재인증을 통해 안전하게 처리할 수 있지만 다른 예외는 지원 상호 작용이 필요할 수 있으며 이 시나리오에서는 항상 요청 및 응답이 요청됩니다.

오류 유형

Marketo REST API는 일반 작업 시 세 가지 유형의 오류를 반환할 수 있습니다.

  • HTTP 수준: 이러한 오류는 4xx 코드로 표시됩니다.
  • 응답 수준: 이러한 오류는 JSON 응답의 "오류" 배열에 포함됩니다.
  • 레코드 수준: 이러한 오류는 JSON 응답의 "result" 배열에 포함되며 "status" 필드 및 "reasons" 배열과 함께 개별 레코드 단위로 표시됩니다.

응답 수준 및 레코드 수준 오류 유형의 경우 HTTP 상태 코드 200이 반환됩니다. 모든 오류 유형의 경우 HTTP 이유 구는 선택 사항이며 변경될 수 있으므로 평가해서는 안 됩니다.

HTTP 수준 오류

일반적인 운영 환경에서는 Marketo이 HTTP 상태 코드 오류 413 Request Entity Too Large414 Request URI Too Long만 반환해야 합니다. 이러한 기능은 모두 오류를 추적하고, 요청을 수정하고, 다시 시도하는 것을 통해 복구할 수 있지만, 스마트 코딩 사례를 사용하면 이러한 기능이 야생에서 발생하지 않아야 합니다.

Marketo은 요청 페이로드가 1MB를 초과하는 경우 413, 리드 가져오기의 경우 10MB를 반환합니다. 대부분의 시나리오에서는 이러한 제한에 도달할 가능성이 낮지만 요청 크기에 대한 검사를 추가하고 레코드를 이동하면 제한이 새 요청으로 초과되어 종단점에서 이 오류가 반환되는 상황을 방지해야 합니다.

GET 요청의 URI가 8KB를 초과하면 414가 반환됩니다. 이를 방지하려면 쿼리 문자열의 길이를 확인하여 이 제한을 초과하는지 확인하십시오. 요청을 POST 메서드로 변경한 경우 쿼리 문자열을 추가 매개 변수 _method=GET과(와) 함께 요청 본문으로 입력합니다. URI에 대한 제한을 무시합니다. 대부분의 경우 이 제한에 도달하는 것은 드물지만 GUID와 같은 긴 개별 필터 값이 있는 큰 레코드 일괄 처리를 검색하는 경우에는 다소 일반적입니다.
ID 끝점은 승인되지 않은 401 오류를 반환할 수 있습니다. 이는 일반적으로 잘못된 클라이언트 ID 또는 잘못된 클라이언트 암호 때문입니다. HTTP 수준 오류 코드

응답 코드
설명
댓글
413
요청 엔티티가 너무 큼
페이로드가 1MB 제한을 초과했습니다.
414
Request-URI가 너무 김
요청의 URI가 8k를 초과했습니다. 요청을 URL에 매개 변수 `_method=GET'가 있는 POST으로 다시 시도하고 요청 본문에 나머지 쿼리 문자열을 사용해야 합니다.

응답 수준 오류

응답의 success 매개 변수가 false로 설정되어 있으면 응답 수준 오류가 표시되며 다음과 같이 구성됩니다.

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

"errors" 배열의 각 개체에는 두 개의 멤버 code이(가) 있습니다. 이 두 멤버는 601에서 799까지의 따옴표 붙은 정수입니다. message은(는) 오류에 대한 일반 텍스트 이유를 제공합니다. 6xx 코드는 요청이 완전히 실패하여 실행되지 않았음을 항상 나타냅니다. 예를 들어, 요청을 사용하여 새 액세스 토큰을 다시 인증하고 전달하여 복구할 수 있는 601, "유효하지 않은 액세스 토큰"이 있습니다. 7xx 오류는 데이터가 반환되지 않았거나 요청이 잘못된 날짜를 포함하거나 필수 매개 변수가 누락되는 등 잘못 매개 변수화되었기 때문에 요청이 실패했음을 나타냅니다.

응답 수준 오류 코드

이 응답 코드를 반환하는 API 호출은 일별 할당량 또는 요금 한도에 대해 계산되지 않습니다.

응답 코드
설명
댓글
502
잘못된 게이트웨이
원격 서버에서 오류를 반환했습니다. 시간 초과일 수 있습니다. 지수 백오프를 사용하여 요청을 다시 시도해야 합니다.
601*
잘못된 액세스 토큰
액세스 토큰 매개 변수가 요청에 포함되었지만 값이 올바른 액세스 토큰이 아닙니다.
602*
액세스 토큰 만료됨
호출에 포함된 액세스 토큰이 만료로 인해 더 이상 유효하지 않습니다.
603
액세스 거부됨
인증에 성공했지만 사용자에게 이 API를 호출할 권한이 없습니다. [추가 권한](custom-services.md)을 사용자 역할에 할당하거나 IP 기반 API 액세스에 대한 허용 목록을 사용하도록 설정할 수 있습니다.
604*
시간 초과 요청
요청이 너무 오래 실행되었거나(예: 데이터베이스 경합 발생) 호출 헤더에 지정된 시간 초과 기간을 초과했습니다.
605*
HTTP 메서드가 지원되지 않음
GET은 동기화 리드 끝점에 대해 지원되지 않습니다. POST을 사용해야 합니다.
606
최대 속도 제한 `%s';이(가) '%s'초 단위로 초과되었습니다.
지난 20초 동안의 호출 수가 100보다 컸습니다.
607
일일 할당량에 도달함
오늘 통화 수가 구독의 할당량을 초과했습니다(매일 오전 12시(CST 기준)).>할당량은 관리자->웹 서비스 메뉴에서 찾을 수 있습니다. 계정 관리자를 통해 할당량을 늘릴 수 있습니다.
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
잘못된 날짜 형식
  • 올바른 형식이 아닌 날짜가 지정되었습니다.
  • 잘못된 다이내믹 콘텐츠 ID가 지정되었습니다.
709
비즈니스 규칙 위반

템플릿 없이 이메일을 만들려고 하는 등 에셋을 만들거나 업데이트하는 요구 사항을 위반하기 때문에 호출을 수행할 수 없습니다. 다음 작업을 수행하려고 할 때 이 오류가 발생할 수도 있습니다.

  • 소셜 콘텐츠가 포함된 랜딩 페이지의 콘텐츠를 검색합니다.
  • 특정 자산 유형이 포함된 프로그램을 복제합니다(자세한 내용은 프로그램 복제 참조).
  • 초안이 없는(즉, 이미 승인된) 에셋을 승인합니다.
710
상위 폴더를 찾을 수 없음
지정한 상위 폴더를 찾을 수 없습니다.
711
호환되지 않는 폴더 유형
지정된 폴더가 요청을 이행하는 올바른 유형이 아닙니다.
712
개인 계정에 병합 작업이 잘못되었습니다.
Salesforce 개인 계정인 리드를 병합하려는 시도로 인해 리드 병합 호출이 실패했습니다. Salesforce 개인 계정은 Salesforce에서 병합되어야 합니다.
713
일시적 오류
API 호출 시 시스템 리소스를 일시적으로 사용할 수 없습니다. 이 오류가 발생하면 시간을 기다린 다음 요청을 다시 시도하는 것이 좋습니다.
714
기본 레코드 유형을 찾을 수 없음
기본 레코드 유형을 찾을 수 없어 잠재 고객 병합 호출이 실패했습니다.
718
ExternalSalesPersonID를 찾을 수 없음
존재하지 않는 'ExternalSalesPersonID' 값으로 동기화 영업 기회 호출이 생성되었습니다.
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"
            }
         ]
      }
   ]
}

호출 결과 배열에 포함된 레코드는 요청의 입력 배열과 동일한 방식으로 정렬됩니다.
성공적인 요청의 각 레코드는 개별적으로 성공하거나 실패할 수 있으며, 이는 응답의 결과 배열에 포함된 각 레코드의 상태 필드에 의해 표시됩니다. 이러한 레코드의 "상태" 필드는 "생략"되며 "이유" 배열이 있습니다. 각 이유에는 "code" 멤버와 "message" 멤버가 포함되어 있습니다. 코드는 항상 1xxx이며 메시지는 레코드가 생략된 이유를 나타냅니다. 예를 들어 동기화 리드 요청에 "action"이 "createOnly"로 설정되어 있지만 제출된 레코드의 키 중 하나에 대한 리드가 이미 있는 경우가 있습니다. 이 경우 코드 1005를 반환하며 위에 표시된 대로 "Lead 가 이미 존재합니다" 라는 메시지를 반환합니다.

레코드 수준 오류 코드

응답 코드
설명
댓글
1001
값 '%s'이(가) 잘못되었습니다. '%s' 유형의 필수 항목
매개 변수 값에 형식이 일치하지 않을 때마다 오류가 발생합니다. 예를 들어 정수 매개 변수에 대해 지정된 문자열 값입니다.
1002
필수 매개 변수 '%s'에 대한 값이 없습니다.
요청에서 필수 매개 변수가 누락되면 오류가 생성됩니다.
1003
잘못된 데이터
작업이 createOnly로 지정된 잠재 고객에 대해 ID가 제출되거나 배치 캠페인에서 요청 캠페인을 사용할 때와 같이 제출된 데이터가 지정된 엔드포인트 또는 모드에 대해 유효한 유형이 아닌 경우.
1004
리드를 찾을 수 없음
syncLead 의 경우 작업이 "updateOnly"이고 lead 를 찾을 수 없는 경우
1005
리드가 이미 있음
syncLead 의 경우 작업이 "createOnly"이고 잠재 고객이 이미 있는 경우
1006
'%s' 필드를 찾을 수 없습니다.
호출에 포함된 필드가 올바른 필드가 아닙니다.
1007
여러 잠재 고객이 조회 기준과 일치함
여러 잠재 고객이 조회 기준과 일치합니다. 키가 단일 레코드와 일치하는 경우에만 업데이트를 수행할 수 있습니다.
1008
'%s' 파티션에 대한 액세스가 거부되었습니다.
사용자 정의 서비스의 사용자는 레코드가 존재하는 파티션이 있는 작업 영역에 액세스할 수 없습니다.
1009
파티션 이름을 지정해야 합니다.
1010
파티션 업데이트가 허용되지 않음
지정한 레코드가 별도의 잠재 고객 파티션에 이미 있습니다.
1011
'%s' 필드는 지원되지 않습니다.
조회 필드 또는 'filterType'이 지원되지 않는 표준 필드로 지정된 경우(예: firstName, lastName)
1012
잘못된 쿠키 값 '%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로 제한됩니다(매일 오전 12:00CST에 재설정).
1035
지원되지 않는 필터 유형
일부 구독에서는 updateAt, smartListId, smartListName과 같은 대량 리드 추출 필터 유형이 지원되지 않습니다.
1036
입력에서 중복 개체가 발견되었습니다.
동일한 외래 키를 사용하여 두 개 이상의 레코드를 업데이트하라는 호출이 발생했습니다. 예를 들어 동기화 회사는 둘 이상의 회사에 대해 동일한 externalCompanyId를 사용하여 를 호출합니다.
1037
잠재 고객 건너뜀
이미 이 상태 또는 그 이후이므로 잠재 고객을 건너뛰었습니다.
1042
잘못된 runAt 날짜
일정 캠페인에 대해 지정된 runAt 날짜가 너무 먼 미래입니다(최대 2년).
1048
사용자 지정 개체 초안 삭제 실패
사용자 지정 개체의 초안 버전을 삭제하라는 호출이 수행되었습니다.
1049
활동을 만들지 못했습니다.
특성 배열이 너무 깁니다. 레코드에 전달된 특성의 배열이 최대 길이(65536바이트)를 초과했습니다.
1076
mergeInCRM 플래그가 있는 잠재 고객 병합 호출은 4입니다.
중복 레코드를 만들고 있습니다. 기존 레코드를 대신 사용하는 것이 좋습니다. Salesforce에서 병합할 때 Marketo에서 수신하는 오류 메시지입니다.
1077
'SFDC 필드' 길이로 인해 리드 병합 호출이 실패했습니다.
'SFDC 필드'가 허용된 문자 제한을 초과하여 mergeInCRM이 true로 설정된 병합 리드 호출이 실패했습니다. 수정하려면 'SFDC 필드'의 길이를 줄이거나 mergeInCRM을 false로 설정하십시오.
1078
잠재 고객/연락처가 아닌 삭제된 엔터티로 인해 잠재 고객 병합 호출에 실패했습니다. 또는 필드 필터 기준이 일치하지 않습니다.
병합 실패, 고유하게 동기화된 CRM에서 병합 작업을 수행할 수 없음 Salesforce에서 병합할 때 Marketo에서 수신하는 오류 메시지입니다.
recommendation-more-help
bb269a6d-047a-4bf7-9acd-23ad9a63dc59