런타임 오류 카탈로그

Apigee Edge 문서입니다.
Apigee X 문서로 이동
정보

Apigee Edge 오류

Apigee Edge를 통해 API 요청을 수행하면 Apigee Edge 구성요소 라우터 및 메시지 프로세서 또는 백엔드 서버가 클라이언트 애플리케이션에 오류를 반환할 수 있습니다.

메시지 프로세서 오류

메시지 프로세서는 정책을 처리하고 백엔드 서버와 상호작용하는 Apigee Edge의 핵심 구성요소입니다. 다음과 같은 문제가 감지되면 오류를 반환할 수 있습니다.

  • 네트워크 연결 문제, TLS 핸드셰이크 실패, 백엔드 서버 사용 불가, 백엔드 서버와 통신 중 응답 없음
  • 정책 수행 중 오류
  • 잘못된 HTTP 헤더, 인코딩, 경로, HTTP 사양 미준수, 다음 이유로 인한 제품 한도 초과:
    • 클라이언트 애플리케이션에서 전송되는 HTTP 요청에 의한 한도 초과
    • 또는

    • 백엔드 서버에서 전송되는 HTTP 응답에 의한 한도 초과
  • 그 외 기타 요인

메시지 프로세서의 샘플 오류

메시지 프로세서는 항상 아래 표시된 것처럼 JSON 형식의 오류 코드와 함께 오류 메시지 다음에 HTTP 상태 코드를 반환합니다.

클라이언트 애플리케이션은 다음 예시와 같은 응답 코드를 받습니다.

HTTP/1.1 414 Request-URI Too Long

메시지 프로세서의 오류 응답은 다음 형식으로 표시됩니다.

{
   "fault":{
      "faultstring":"request line size exceeding 7,168",
      "detail":{
         "errorcode":"protocol.http.TooBigLine"
      }
   }
}

오류 응답의 필 설명:

필드 설명
faultstring 오류에 대해 가능한 원인을 설명하는 오류 메시지를 포함합니다.
errorcode 오류와 연관된 오류 코드(고장 코드라고도 함)

런타임 오류 카탈로그

이 오류 카탈로그는 Apigee Edge 메시지 프로세서 구성요소에서 반환되는 런타임 오류 코드 (비정책 오류)에 대해 알아야 하는 모든 정보를 제공합니다. 여기에는 각 오류 코드에 대한 다음 정보가 포함됩니다.

  • HTTP 상태 코드
  • 오류 메시지
  • 오류에 대해 가능한 원인
  • 관련된 HTTP 사양 또는 제품 한도
  • 가능한 경우 직접 오류를 해결하기 위해 적용할 수 있도록 오류 원인과 효과적인 솔루션을 진단하기 위한 안내가 포함된 플레이북 및 동영상
  • 직접 오류를 해결하기 위해 적용할 수 있는 수정사항

다음 오류 코드 범주가 포함됩니다.

아래의 검색 상자를 사용하여 특정 오류 코드에 대해 위 정보를 표시하도록 테이블을 필터링합니다. 상태 코드 또는 테이블의 모든 필드에 있는 콘텐츠를 검색할 수 있습니다.

오류 코드 설명 수정

flow.*

flow.APITimedOut

  • HTTP 상태 코드:
504 Gateway Timeout
  • 오류 메시지:
API timed out
  • 가능한 원인:

이 오류는 다음과 같은 경우에 발생합니다.

  • 특정 API 프록시에 대해 api.timeout 속성으로 구성된 제한 시간 내에 백엔드 서버가 응답하지 않습니다.
  • 계산 집약적인 작업, 높은 로드 또는 낮은 성능으로 인해 정책에 시간이 오래 걸립니다.

참고: 이 플레이북에서는 오류 코드 messaging.adaptors.http.flow.GatewayTimeout의 문제를 해결하는 방법을 안내합니다. 하지만 동일한 플레이북을 사용하여 flow.APITimedOut 오류 코드의 문제도 해결할 수 있습니다.

플레이북

flow.SharedFlowNotFound

  • HTTP 상태 코드:
500 Internal Server Error
  • 오류 메시지:
Shared Flow {shared_flow_name} Not Found
  • 가능한 원인:

이 오류는 특정 공유 흐름이 다음과 같은 상태일 때 발생합니다.

  • 존재하지 않음
  • 또는

  • 존재하지만 배포되지 않음
플레이북

messaging.adaptors.http.flow

messaging.adaptors.http.flow.ApplicationNotFound

  • HTTP 상태 코드:
404 Not Found
  • 오류 메시지:
Unable to identify proxy for host: {virtual_host} and url: {pathsuffix}
  • 가능한 원인:

이 오류는 다음 시나리오 중 하나에서 발생합니다.

  1. 특정 API 프록시는 다음과 같습니다.
    1. 특정 가상 호스트에서 요청을 수락하도록 구성되지 않음
    2. 요청에 사용된 특정 경로의 요청을 수락하도록 구성되지 않음
    3. API 요청을 시도하는 특정 환경에 배포되지 않음
    4. 하나 이상의 메시지 프로세서에 배포되지 않음
  2. API 요청을 보내려는 특정 환경이 하나 이상의 메시지 프로세서에 로드되지 않음
플레이북
여러 가상 호스트에 동일한 호스트 별칭과 포트 번호가 있는 경우에도 이 오류가 발생할 수 있습니다. 플레이북

messaging.adaptors.http.flow.DecompressionFailureAtRequest

  • HTTP 상태 코드:
400 Bad Request
  • 오류 메시지:
Decompression failure at request
  • 가능한 원인:

이 오류는 다음과 같은 경우에만 발생합니다.

  • HTTP 요청 헤더 Content-Encoding에 지정된 인코딩이 올바르고 Apigee Edge에서 지원됩니다.
  • 그러나

  • 클라이언트에서 HTTP 요청의 일부로 전송된 페이로드 형식이 Content-Encoding 헤더에 지정된 인코딩 형식과 일치하지 않습니다.
플레이북

messaging.adaptors.http.flow.DecompressionFailureAtResponse

  • HTTP 상태 코드:
502 Bad Gateway
  • 오류 메시지:
Decompression failure at response
  • 가능한 원인:

이 오류는 다음과 같은 경우에만 발생합니다.

  • 백엔드/대상 서버의 HTTP 응답 헤더 Content-Encoding에 지정된 인코딩이 올바르고 Apigee Edge에서 지원됩니다.
  • 그러나

  • 백엔드/대상 서버에서 HTTP 응답의 일부로 전송된 페이로드 형식이 Content-Encoding 헤더에 지정된 인코딩 형식과 일치하지 않습니다.
플레이북

messaging.adaptors.http.flow.ErrorResponseCode

  • HTTP 상태 코드:
500

플레이북

동영상

  • 오류 메시지:
오류 메시지 및 형식은 백엔드 서버 구현에 따라 다를 수 있습니다.
  • 가능한 원인:
이 오류는 백엔드 서버가 Apigee Edge에 대해 상태 코드 500으로 응답하는 경우에 발생합니다.
  • HTTP 상태 코드:
503

플레이북

동영상

  • 오류 메시지:
오류 메시지 및 형식은 백엔드 서버 구현에 따라 다를 수 있습니다.
  • 가능한 원인:
이 오류는 백엔드 서버가 Apigee Edge에 대해 상태 코드 503으로 응답하는 경우에 발생합니다.
  • HTTP 상태 코드:
504 플레이북
  • 오류 메시지:
오류 메시지 및 형식은 백엔드 서버 구현에 따라 다를 수 있습니다.
  • 가능한 원인:
이 오류는 백엔드 서버가 Apigee Edge에 대해 상태 코드 504으로 응답하는 경우에 발생합니다.

참고: 오류 코드 messaging.adaptors.http.flow.ErrorResponseCode는 클라이언트 애플리케이션에 전송되는 오류 메시지의 일부로 반환되지 않습니다. 이것은 백엔드 서버가 오류 및 4XX 또는 5XX 상태 코드로 응답할 때마다 Apigee Edge에서 이 오류 코드가 설정되기 때문입니다. 이 오류 코드는 API 모니터링, NGINX 액세스 로그 또는 분석 데이터베이스에서 볼 수 있습니다.

messaging.adaptors.http.flow.GatewayTimeout

  • HTTP 상태 코드:
504 Gateway Timeout
  • 오류 메시지:
Gateway Timeout
  • 가능한 원인:
이 오류는 백엔드 서버가 메시지 프로세서에 구성된 I/O 제한 시간 내에 Apigee Edge 메시지 프로세서에 응답하지 않는 경우에 발생합니다.
플레이북

messaging.adaptors.http.flow.LengthRequired

  • HTTP 상태 코드:
411 Length Required
  • 오류 메시지:
'Content-Length' is missing
  • 가능한 원인:

이 오류는 Content-Length 헤더가 클라이언트 애플리케이션에서 Apigee Edge로 전송되는 HTTP POSTPUT 요청의 일부로 전달되지 않은 경우에 발생합니다.

참고: 요청을 처리하고 API 프록시에서 정책을 실행하기 훨씬 전에 매우 이른 단계에서 메시지 프로세서가 검증을 수행하므로 이 오류로 인해 실패한 요청은 Trace 도구에서 캡처할 수 없습니다.

  • HTTP 사양:
RFC 섹션 3.3.2: 콘텐츠 길이

수정

이 오류를 해결하려면 다음 단계를 수행합니다.

  1. 클라이언트 애플리케이션이 항상 Apigee Edge로 전송되는 HTTP POSTPUT 요청의 일부로 Content-Length 헤더를 전달하는지 확인합니다. 예를 들면 다음과 같습니다.

    curl -X POST https://HOSTALIAS/PATH -d '{"name": "abc"}' -H "Content-Length: 15"
    
  2. POSTPUT 요청이 있는 빈 페이로드를 전달하는 경우에도 Content-Length: 0 헤더가 전달되었는지 확인합니다. 예를 들면 다음과 같습니다.

    curl -X POST https://HOSTALIAS/PATH -H "Content-Length: 0"
    

messaging.adaptors.http.flow.NoActiveTargets

  • HTTP 상태 코드:
503 Service Unavailable
  • 오류 메시지:
The Service is temporarily unavailable
  • 가능한 원인:

이 오류는 Apigee Edge에서 TargetServer를 사용하는 경우 다음 시나리오 중 하나에서 발생합니다.

  1. 커스텀 승인 서버에서 백엔드 서버 호스트의 DNS 확인이 잘못되어 잘못된 IP 주소로 인해 연결 오류가 발생했습니다.
  2. 다음으로 인한 연결 제한 시간 오류:
    1. 백엔드 서버의 방화벽 제한으로 인해 Apigee Edge가 백엔드 서버에 연결할 수 없습니다.
    2. Apigee Edge와 백엔드 서버 간의 네트워크 연결 문제입니다.
  3. TargetServer에 지정된 호스트가 잘못되었거나 원하지 않는 문자(예: 공백)가 있습니다.

플레이북

동영상

이 오류는 대상 서버의 상태 점검을 모니터링하도록 구성된 상태 점검이 실패한 경우에도 발생할 수 있습니다.

플레이북

동영상

messaging.adaptors.http.flow.RequestTimeOut

  • HTTP 상태 코드:
408 Request Timeout
  • 오류 메시지:
Request timed out
  • 가능한 원인:
이 오류는 메시지 프로세서 구성요소에 구성된 I/O 제한 시간 동안 Apigee Edge 메시지 프로세서가 클라이언트 애플리케이션으로부터 요청 페이로드를 수신하지 않는 경우에 발생합니다.

수정

클라이언트 애플리케이션이 Apigee Edge의 메시지 프로세서 구성요소에 구성된 I/O 제한 시간 내에 요청 페이로드를 전송하는지 확인합니다.

messaging.adaptors.http.flow.ServiceUnavailable

  • HTTP 상태 코드:
503 Service Unavailable
  • 오류 메시지:
The Service is temporarily unavailable
  • 가능한 원인:

이 오류는 다음 시나리오 중 하나에서 발생합니다.

  1. 커스텀 승인 서버에서 백엔드 서버 호스트의 DNS 확인이 잘못되어 잘못된 IP 주소로 인해 연결 오류가 발생했습니다.
  2. 다음으로 인한 연결 제한 시간 오류:
    1. 백엔드 서버의 방화벽 제한으로 인해 Apigee Edge가 백엔드 서버에 연결할 수 없습니다.
    2. Apigee Edge와 백엔드 서버 사이에 네트워크 연결 문제가 있습니다.
  3. 대상 엔드포인트에 지정된 대상 서버 호스트가 잘못되었거나 원하지 않는 문자(예: 공백)가 있습니다.

플레이북

DNS 실패:

동영상

네트워크 연결:

동영상

이 오류는 메시지 프로세서가 백엔드 서버로 요청 페이로드를 계속 전송하는 동안 백엔드 서버에서 연결이 너무 일찍 종료될 경우에도 발생할 수 있습니다. 플레이북

messaging.adaptors.http.flow.SslHandshakeFailed

  • HTTP 상태 코드:
503 Service Unavailable
  • 오류 메시지:
SSL Handshake failed {error_message}
  • 가능한 원인:

이 오류는 다음과 같은 경우 Apigee Edge의 메시지 프로세서와 백엔드 서버 사이의 SSL 핸드셰이크 프로세스 중에 발생합니다.

  1. Apigee Edge 메시지 프로세서의 트러스트 저장소:
    • 백엔드 서버의 전체 인증서 체인과 일치하지 않는 인증서 체인이 포함되어 있습니다.
    • 또는

    • 백엔드 서버의 전체 인증서 체인을 포함하지 않는 경우
  2. 백엔드 서버에서 제공된 인증서 체인:
    • 대상 엔드포인트에 지정된 호스트 이름과 일치하지 않는 정규화된 도메인 이름(FQDN)을 포함하는 경우
    • 또는

    • 잘못되었거나/완전하지 않은 인증서 체인을 포함하는 경우

플레이북

동영상

messaging.adaptors.http.flow.UnexpectedEOFAtTarget

  • HTTP 상태 코드:
502 Bad Gateway
  • 오류 메시지:
Unexpected EOF at target
  • 가능한 원인:

이 오류는 다음 시나리오 중 하나에서 발생합니다.

  1. TargetServer가 Apigee Edge에서 TLS/SSL 연결을 지원하도록 올바르게 구성되지 않았습니다.
  2. Apigee Edge가 백엔드 서버에서 응답을 기다리는 동안 백엔드 서버에서 연결이 갑자기 종료될 수 있습니다.
  3. Apigee 및 백엔드 서버에 연결 유지 제한 시간이 잘못 구성되었습니다.
플레이북

messaging.runtime.*

messaging.runtime.RouteFailed

  • HTTP 상태 코드:
500 Internal Server Error
  • 오류 메시지:
Unable to route the message to a TargetEndpoint
  • 가능한 원인:

이 오류는 다음과 같은 이유로 인해 Apigee Edge가 요청을 TargetEndpoints로 라우팅할 수 없는 경우에 발생합니다.

  • 프록시의 요청과 일치하는 경로 규칙(<RouteRule>) 조건이 없습니다.
  • AND

  • ProxyEndpoint에 정의된 기본 경로 규칙이 없습니다(즉, 조건 없이 <RouteRule>).

수정

이 오류를 해결하려면 다음 안내를 따르세요.

  1. ProxyEndpoint에 정의된 경로 규칙을 검토하고 요청과 일치하는 경로 규칙 조건이 하나 이상 있도록 수정합니다.
  2. 여러 RouteRule이 있는 경우에는 조건 없이 기본 경로 규칙을 정의하는 것이 좋습니다.
  3. 규칙은 ProxyEndpoint에서 하향식으로 평가되므로 기본 라우팅 규칙이 항상 조건부 경로 목록에서 마지막으로 정의되었는지 확인합니다.

ProxyEndpoint에서 <RouteRule> 조건 정의에 대해 자세히 알아보려면 조건부 대상을 참조하세요.

messaging.runtime.SenseRaiseFault

  • HTTP 상태 코드:
403 Forbidden
  • 오류 메시지:
Sense Fault
  • 가능한 원인:
이 오류는 Apigee Sense 규칙의 일부로 차단된 특정 클라이언트 IP 주소에서 API 요청이 이루어진 경우 발생합니다.

수정

이 오류를 해결하려면 다음 안내를 따르세요.

  1. Apigee Sense에 구성된 규칙을 확인하여 특정 클라이언트 IP 주소를 차단했는지 확인합니다. 차단되어 있으면 의도한 대로 작동하는 것입니다.
  2. 특정 클라이언트 IP 주소가 차단되지 않았는데도 이 오류가 계속 발생하면 Apigee Edge 지원팀에 문의하세요.

protocol.http.* - Caused due to bad request

protocol.http.BadFormData

  • HTTP 상태 코드:
500 Internal Server Error
  • 오류 메시지:
Bad Form Data
  • 가능한 원인:

이 오류는 다음 조건이 모두 충족된 경우에만 발생합니다.

  1. 클라이언트가 Apigee Edge로 보낸 HTTP 요청에는 다음이 포함됩니다.
    • Content-Type: application/x-www-form-urlencoded
    • 퍼센트 기호(%)가 있는 양식 데이터 또는 퍼센트 기호(%)에 이어 양식 - 섹션 17.13.4.1에 따라 허용되지 않는 잘못된 16진수 문자가 표시됩니다.
  2. Apigee Edge의 API 프록시가 요청 흐름에서 ExtractVariables 또는 AssignMessage 정책을 사용하여 허용되지 않는 문자가 포함된 특정 양식 매개변수를 읽습니다.
플레이북

protocol.http.DuplicateHeader

  • HTTP 상태 코드:
400 Bad Request
  • 오류 메시지:
Duplicate Header "{header_name}"
  • 가능한 원인:
이 오류는 Apigee Edge에서 중복 항목을 갖도록 허용되지 않는 특정 HTTP 헤더가 동일하거나 다른 값을 사용해서 클라이언트 애플리케이션에서 Apigee Edge로 전송되는 HTTP 요청의 일부로 한 번 이상 표시되는 경우에 발생합니다.
  • HTTP 사양:
RFC 7230, 섹션 3.2.2: 필드 순서
플레이북

protocol.http.EmptyHeaderName

  • HTTP 상태 코드:
400 Bad Request
  • 오류 메시지:
Header name cannot be empty
  • 가능한 원인:
이 오류는 클라이언트 애플리케이션에 의해 HTTP 요청의 일부로 Apigee Edge로 전송되는 헤더 이름이 비어 있는 경우에 발생합니다.
  • HTTP 사양:
RFC 7230, 섹션 3.2: 헤더 필드

수정

RFC 7230, 섹션 3.2: 헤더 필드에 따라 클라이언트 애플리케이션이 Apigee Edge로 전송하는 HTTP 요청에 항상 올바른 헤더 이름이 포함되는지 확인합니다.

protocol.http.HeaderNameWithNonAsciiChar

  • HTTP 상태 코드:
400 Bad Request
  • 오류 메시지:
Header {header_name} contains non ascii character {character}
  • 가능한 원인:
이 오류는 HTTP 요청의 일부로 클라이언트 애플리케이션에 의해 Apigee Edge로 전송되는 헤더 이름에 비ASCII 문자가 포함된 경우에 발생합니다.
  • HTTP 사양:

RFC 7230, 섹션 3.2: 헤더 필드RFC 7230, 섹션 3.2.6: 필드 값 구성요소

수정

RFC 7230, 섹션 3.2.6: 필드 값 구성요소에 따라 Apigee Edge로 전송되는 클라이언트의 HTTP 요청의 헤더 이름에 비ASCII 문자가 포함되지 않는지 확인합니다.

protocol.http.HeaderWithInvalidChar

  • HTTP 상태 코드:
400 Bad Request
  • 오류 메시지:
Header {header_name} contains invalid character {character}
  • 가능한 원인:
이 오류는 클라이언트 애플리케이션에서 HTTP 요청의 일부로 Apigee Edge로 보낸 헤더 이름에 등호 (=), 쉼표 (,), 세미콜론 (;), 탭, CRLF, 줄바꿈 문자와 같은 잘못된 문자가 포함된 경우에 발생합니다.
  • HTTP 사양:

RFC 7230, 섹션 3.2: 헤더 필드RFC 7230, 섹션 3.2.6: 필드 값 구성요소

수정

RFC 7230, 섹션 3.2.6: 필드 값 구성요소에 따라 클라이언트 애플리케이션에 의해 Apigee Edge로 전송되는 HTTP 요청의 헤더 이름에 잘못된 문자가 포함되지 않는지 확인합니다.

protocol.http.InvalidPath

  • HTTP 상태 코드:
400 Bad Request
  • 오류 메시지:
Invalid path {path}
  • 가능한 원인:
이 오류는 클라이언트 애플리케이션에서 Apigee Edge로 보낸 HTTP 요청 URL의 경로에 RFC 3986 사양, 3.3 섹션: 경로 사양에 따라 허용되지 않는 문자가 포함된 경우에 발생합니다.
  • HTTP 사양:

RFC 3986, 섹션 3: 구문 구성요소RFC 3986, 섹션 3.3: 경로

수정

클라이언트 애플리케이션에 의해 Apigee Edge로 전송되는 HTTP 요청 URL의 경로에 RFC 3986, 섹션 3.3: 경로에 따라 허용되지 않는 문자가 포함되지 않았는지 확인합니다.

protocol.http.TooBigBody

  • HTTP 상태 코드:
413 Request Entity Too Large
  • 오류 메시지:
Body buffer overflow
  • 가능한 원인:
이 오류는 Apigee Edge에 대한 HTTP 요청의 일부로 클라이언트 애플리케이션에 의해 전송되는 페이로드 크기가 Apigee Edge에서 허용되는 한도보다 큰 경우에 발생합니다.
  • 제한사항:
Apigee Edge 한도
플레이북

protocol.http.TooBigHeaders

  • HTTP 상태 코드:
431 Request Header Fields Too Large
  • 오류 메시지:
request headers size exceeding {limit}
  • 가능한 원인:
Apigee Edge에 대한 HTTP 요청의 일부로 클라이언트 애플리케이션에 의해 전송되는 모든 요청 헤더의 총 크기가 Apigee Edge에서 허용되는 한도보다 큽니다.
  • HTTP 사양:
RFC 6585, 섹션 5: 431 요청 헤더 필드가 너무 큼
  • 제한사항:
Apigee Edge 한도
플레이북

protocol.http.TooBigLine

  • HTTP 상태 코드:
414 Request-URI Too Long
  • 오류 메시지:
request line size exceeding {limit}
  • 가능한 원인:
이 오류는 Apigee Edge에 대한 HTTP 요청의 일부로 클라이언트 애플리케이션에 의해 전송되는 요청 줄의 크기가 Apigee Edge에서 허용되는 한도보다 큰 경우에 발생합니다.
  • 제한사항:
Apigee Edge 한도
플레이북

protocol.http.UnsupportedEncoding

  • HTTP 상태 코드:
415 Unsupported Media
  • 오류 메시지:
Unsupported Encoding "{encoding}"
  • 가능한 원인:
이 오류는 HTTP 응답의 일부로 클라이언트에 의해 전송되는 Content-Encoding 헤더에 Apigee Edge에서 지원되지 않는 인코딩/페이로드 형식이 포함된 경우에 발생합니다.
  • HTTP 사양:
RFC 7231, 섹션 6.5.13: 415 지원되지 않는 미디어 유형
플레이북

protocol.http.* - Caused by target

protocol.http.BadPath

  • HTTP 상태 코드:
500 Internal Server Error
  • 오류 메시지:
Invalid request path
  • 가능한 원인:
이 오류는 흐름 변수 target.url로 표시된 백엔드 서버의 요청 URL에 슬래시(/) 대신 잘못된 물음표(?)로 시작하는 경로가 포함된 경우에 발생합니다.
  • HTTP 사양:

RFC 3986, 섹션 3: 구문 구성요소RFC 3986, 섹션 3.3: 경로

플레이북

protocol.http.DuplicateHeader

  • HTTP 상태 코드:
502 Bad Gateway
  • 오류 메시지:
Duplicate Header "{header_name}"
  • 가능한 원인:
이 오류는 Apigee Edge에서 중복 항목을 갖도록 허용되지 않는 특정 HTTP 헤더가 동일하거나 서로 다른 값을 사용해서 백엔드 서버에서 Apigee Edge로 전송되는 HTTP 응답의 일부로 한 번 이상 표시되는 경우에 발생합니다.
  • HTTP 사양:
RFC 7230, 섹션 3.2.2: 필드 순서
플레이북

protocol.http.EmptyHeaderName

  • HTTP 상태 코드:
502 Bad Gateway
  • 오류 메시지:
Header name cannot be empty
  • 가능한 원인:
이 오류는 Apigee Edge에 대한 HTTP 응답의 일부로 백엔드 서버에 의해 전송되는 헤더 이름이 비어 있는 경우에 발생합니다.
  • HTTP 사양:
RFC 7230, 섹션 3.2: 헤더 필드

수정

항상 RFC 7230, 섹션 3.2: 헤더 필드에 따라 백엔드 서버에 의해 Apigee Edge로 전송되는 HTTP 응답에 올바른 헤더 이름이 포함되는지 확인합니다.

protocol.http.EmptyPath

  • HTTP 상태 코드:
500 Internal Server Error
  • 오류 메시지:
Request path cannot be empty
  • 가능한 원인:
이 오류는 흐름 변수 target.url로 표시되는 백엔드 서버의 HTTP 요청 URL에 빈 경로가 포함된 경우에 발생합니다.
  • HTTP 사양:

RFC 3986, 섹션 3: 구문 구성요소RFC 3986, 섹션 3.3: 경로

플레이북

protocol.http.HeaderNameWithNonAsciiChar

  • HTTP 상태 코드:
502 Bad Gateway
  • 오류 메시지:
Header {header_name} contains non ascii character {character}
  • 가능한 원인:
이 오류는 Apigee Edge에 대한 HTTP 응답의 일부로 백엔드 서버에 의해 전송되는 헤더 이름에 비ASCII 문자가 포함된 경우에 발생합니다.
  • HTTP 사양:

RFC 7230, 섹션 3.2: 헤더 필드RFC 7230, 섹션 3.2.6: 필드 값 구성요소

수정

RFC 7230, 섹션 3.2.6: 필드 값 구성요소에 따라 Apigee Edge로 전송되는 백엔드 서버의 HTTP 응답의 헤더 이름에 비ASCII 문자가 포함되지 않는지 확인합니다.

protocol.http.HeaderWithInvalidChar

  • HTTP 상태 코드:
502 Bad Gateway
  • 오류 메시지:
Header {header_name} contains invalid character {character}
  • 가능한 원인:
이 오류는 HTTP 응답의 일부로 백엔드 서버에 의해 전송되는 헤더 이름에 같음(=), 쉼표(,), 세미콜론(;), 탭, CRLF, 줄바꿈 문자와 같은 잘못된 문자가 포함된 경우에 발생합니다.
  • HTTP 사양:

RFC 7230, 섹션 3.2: 헤더 필드RFC 7230, 섹션 3.2.6: 필드 값 구성요소

수정

RFC 7230, 섹션 3.2.6: 필드 값 구성요소에 따라 Apigee Edge로 전송되는 백엔드 서버의 HTTP 응답의 헤더 이름에 잘못된 문자가 포함되지 않는지 확인합니다.

protocol.http.ProxyTunnelCreationFailed

  • HTTP 상태 코드:
503 Service Unavailable
  • 오류 메시지:
Proxy refused to create tunnel with response status {status code}
  • 가능한 원인:

이 오류는 방화벽, 액세스 제어 목록 (ACL), DNS 문제, 백엔드 서버 가용성 등으로 인해 프록시 서버에 따라 Apigee Edge와 백엔드 서버 사이에 터널을 만드는 동안 발생합니다.

참고: 오류 메시지의 상태 코드(faultstring)는 대략적인 문제의 원인을 설명합니다.

플레이북

protocol.http.Response306Reserved

  • HTTP 상태 코드:
502 Bad Gateway
  • 오류 메시지:
Response Status code 306 is reserved, so can't be used.
  • 가능한 원인:

이 오류는 백엔드 서버가 306 상태 코드를 사용하여 Apigee Edge에 대해 응답한 경우 발생합니다.

306 상태 코드는 HTTP 사양의 이전 버전에 정의되어 있습니다. 현재 HTTP 사양에 따라 이 코드는 예약되어 있으며 사용하지 않아야 합니다.

  • HTTP 사양:
RFC 7231, 섹션 6.3.5: 306 예약됨

수정

상태 코드 306이 예약되어 있으므로 Apigee Edge에 응답을 전송하는 동안 백엔드 서버에서 이 상태 코드를 사용하지 않도록 해야 합니다.

protocol.http.Response405WithoutAllowHeader

  • HTTP 상태 코드:
502 Bad Gateway
  • 오류 메시지:
Received 405 Response without Allow Header
  • 가능한 원인:
백엔드 서버는 'Allow' 헤더 없이 405 Method Not Allowed 상태 코드를 사용하여 응답합니다.
  • HTTP 사양:

RFC 7231, 섹션 6.5.5: 405 메서드 허용되지 않음 RFC 7231, 섹션 7.4.1: 허용

플레이북

protocol.http.ResponseWithBody

  • HTTP 상태 코드:
502 Bad Gateway
  • 오류 메시지:
Received {status_code} Response with message body
  • 가능한 원인:

이 오류는 백엔드 서버에서 Apigee Edge로의 HTTP 응답이 204 No Content 또는 205 Reset Content이지만 응답 본문 또는 다음 헤더 중 하나 이상을 포함하는 경우에 발생합니다.

  • Content-Length
  • Content-Encoding
  • Transfer-Encoding
  • HTTP 사양:

RFC 7231, 섹션 6.3.5: 204 콘텐츠 없음RFC 7231, 섹션 6.3.6: 205 콘텐츠 재설정

플레이북

protocol.http.TooBigBody

  • HTTP 상태 코드:
502 Bad Gateway
  • 오류 메시지:
Body buffer overflow
  • 가능한 원인:
이 오류는 Apigee Edge에 대한 HTTP 요청의 일부로 클라이언트 애플리케이션에 의해 전송되는 페이로드 크기가 Apigee Edge에서 허용되는 한도보다 큰 경우에 발생합니다.
  • 제한사항:
Apigee Edge 한도
플레이북

protocol.http.TooBigHeaders

  • HTTP 상태 코드:
502 Bad Gateway
  • 오류 메시지:
response headers size exceeding {limit}
  • 가능한 원인:
이 오류는 Apigee Edge에 대한 HTTP 응답의 일부로 백엔드 서버에서 전송되는 모든 응답 헤더의 총 크기가 Apigee Edge에서 허용되는 한도보다 큰 경우에 발생합니다.
  • 제한사항:
Apigee Edge 한도
플레이북

protocol.http.TooBigLine

  • HTTP 상태 코드:
502 Bad Gateway
  • 오류 메시지:
response line size exceeding {limit}
  • 가능한 원인:
이 오류는 Apigee Edge에 대한 HTTP 응답의 일부로 백엔드 서버에서 전송되는 응답 라인의 크기가 Apigee Edge에서 허용되는 한도보다 큰 경우에 발생합니다.
  • 제한사항:
Apigee Edge 한도
플레이북

protocol.http.UnsupportedEncoding

  • HTTP 상태 코드:
415 Unsupported Media
  • 오류 메시지:
Unsupported Encoding "{encoding}"
  • 가능한 원인:
이 오류는 HTTP 응답의 일부로 백엔드 서버에서 전송되는 Content-Encoding 헤더에 Apigee Edge에서 지원되지 않는 인코딩/페이로드 형식이 포함된 경우에 발생합니다.
  • HTTP 사양:
RFC 7231, 섹션 6.5.13: 415 지원되지 않는 미디어 유형
플레이북

security.util.*

security.util.KeyAliasNotFound

  • HTTP 상태 코드:
500 Internal Server Error
  • 오류 메시지:
KeyAlias {KeyAlias_name} is not found in Keystore {Keystore_Name}
  • 가능한 원인:

이 오류는 TargetEndpoint 또는 TargetServer에서 참조되는 특정 KeyAlias를 특정 키 저장소에서 찾을 수 없는 경우에 발생합니다.

수정

TargetEndpoint 또는 TargetServer에 지정된 KeyAlias가 존재하고 특정 키 저장소의 일부인지 확인합니다.

security.util.TrustStoreWithNoCertificates

  • HTTP 상태 코드:
500 Internal Server Error
  • 오류 메시지:
TrustStore {truststore_name} has no certificates
  • 가능한 원인:

이 오류는 TargetEndpoint 또는 TargetServer에서 참조되는 특정 트러스트 저장소가 인증서를 포함하지 않는 경우에 발생합니다.

수정

백엔드 서버의 인증서를 검증하고 TargetEndpoint 또는 TargetServer에서 트러스트 저장소를 사용하려는 경우 트러스트 저장소에 백엔드 서버의 올바른 인증서가 포함되었는지 확인합니다.