런타임 오류 카탈로그

이 페이지는 ApigeeApigee Hybrid에 적용됩니다.

Apigee Edge 문서 보기

Apigee 오류

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

메시지 프로세서 오류

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

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

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

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

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

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

  HTTP/1.1 504 Gateway Timeout

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

{
  "fault": {
    "faultstring": "Gateway Timeout",
    "detail": {
      "errorcode": "messaging.adaptors.http.flow.GatewayTimeout"
      "reason": "TARGET_READ_TIMEOUT"
    }
  }
}

오류 응답의 필 설명:

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

런타임 오류 카탈로그

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

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

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

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

오류 코드 설명 수정

flow.*

flow.APITimedOut

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

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

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

flow.SharedFlowNotFound

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

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

  • 존재하지 않음
  • 또는

  • 존재하지만 배포되지 않음

messaging.adaptors.http.flow

messaging.adaptors.http.flow.DecompressionFailureAtRequest

  • HTTP 상태 코드:
400 Bad Request
  • 오류 메시지:
Decompression failure at request
  • 이유:

CLIENT_READ_CONTENT_NOT_IN_GZIP_FORMAT

  • 가능한 원인:

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

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

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

messaging.adaptors.http.flow.DecompressionFailureAtResponse

  • HTTP 상태 코드:
502 Bad Gateway
  • 오류 메시지:
Decompression failure at response
  • 이유:

TARGET_READ_CONTENT_NOT_IN_GZIP_FORMAT

TARGET_READ_INCORRECT_HEADER_CHECK

  • 가능한 원인:

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

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

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

messaging.adaptors.http.flow.ErrorResponseCode

  • HTTP 상태 코드:
500

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

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

messaging.adaptors.http.flow.GatewayTimeout

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

messaging.adaptors.http.flow.LengthRequired

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

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

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

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

수정

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

  1. 클라이언트 애플리케이션이 항상 Apigee로 전송된 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
  • 이유:

TARGET_HEALTHCHECK_CONNECT_TIMEOUT

TARGET_HEALTHCHECK_CONNECTION_REFUSED

TARGET_HEALTHCHECK_HTTPS_REQUEST_OVER_HTTP

TARGET_HEALTHCHECK_UNEXPECTED_EOF

  • 가능한 원인:

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

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

messaging.adaptors.http.flow.RequestTimeOut

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

수정

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

messaging.adaptors.http.flow.ServiceUnavailable

  • HTTP 상태 코드:
503 Service Unavailable
  • 오류 메시지:
The Service is temporarily unavailable
  • 이유:

TARGET_CONNECT_TIMEOUT

TARGET_WRITE_BROKEN_PIPE

TARGET_WRITE_CONNECTION_RESET_BY_PEER

TARGET_CONNECT_CONNECTION_REFUSED

  • 가능한 원인:

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

  1. 커스텀 승인 서버에서 백엔드 서버 호스트의 DNS 확인이 잘못되어 잘못된 IP 주소로 인해 연결 오류가 발생했습니다.
  2. 다음으로 인한 연결 제한 시간 오류:
    1. 백엔드 서버의 방화벽 제한으로 인해 Apigee가 백엔드 서버에 연결할 수 없습니다.
    2. Apigee와 백엔드 서버 사이에 네트워크 연결 문제가 있습니다.
  3. 대상 엔드포인트에 지정된 대상 서버 호스트가 잘못되었거나 원하지 않는 문자(예: 공백)가 있습니다.
이 오류는 메시지 프로세서가 백엔드 서버로 요청 페이로드를 계속 전송하는 동안 백엔드 서버에서 연결이 너무 일찍 종료될 경우에도 발생할 수 있습니다.

messaging.adaptors.http.flow.SslHandshakeFailed

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

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

  1. Apigee 메시지 프로세서의 트러스트 저장소:
    • 백엔드 서버의 전체 인증서 체인과 일치하지 않는 인증서 체인을 포함하는 경우
    • 또는

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

    • 잘못되었거나/완전하지 않은 인증서 체인을 포함하는 경우
  3. 백엔드 서버가 Apigee에서 사용하는 TLS 버전을 거부합니다.

    예를 들어 백엔드 서버가 TLS 버전 1.3만 허용하지만 Apigee 측 대상 서버의 TLS Protocol 필드에 TLS 버전 1.2가 설정되어 있거나 TLS 버전이 전혀 설정되지 않은 경우 Apigee는 현재 TLS 버전 1.3을 기본값으로 사용하지 않으며 프로토콜 버전 불일치로 인해 연결이 실패합니다.

messaging.adaptors.http.flow.UnexpectedEOFAtTarget

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

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

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

messaging.runtime.*

messaging.runtime.RouteFailed

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

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

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

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

수정

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

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

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

protocol.http.* - Caused due to bad request

protocol.http.BadFormData

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

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

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

protocol.http.DuplicateHeader

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

protocol.http.EmptyHeaderName

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

수정

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

protocol.http.HeaderNameWithNonAsciiChar

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

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

수정

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

protocol.http.HeaderWithInvalidChar

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

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

수정

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

protocol.http.NoResolvedHost

  • HTTP 상태 코드:
503 Service Unavailable
  • 오류 메시지:

Unable to resolve host {hostname}

각 항목의 의미는 다음과 같습니다. {hostname}은 동적이고 해당 값이 제공된 호스트 이름에 따라 변경됩니다.

  • 이유:
TARGET_CONNECT_HOST_NOT_REACHABLE
  • 가능한 원인:
이 오류는 지정된 대상 서버 호스트가 잘못되었거나 원하지 않는 문자(예: 공백)가 포함된 경우에 발생합니다.

protocol.http.InvalidPath

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

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

수정

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

protocol.http.TooBigBody

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

protocol.http.TooBigHeaders

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

protocol.http.TooBigLine

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

protocol.http.UnsupportedEncoding

  • HTTP 상태 코드:
415 Unsupported Media
  • 오류 메시지:
Unsupported Encoding "{encoding}"
  • 가능한 원인:
이 오류는 HTTP 응답의 일부로 클라이언트에 의해 전송되는 Content-Encoding 헤더에 Apigee에서 지원되지 않는 인코딩/페이로드 형식이 포함된 경우에 발생합니다.
  • 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에 슬래시(/) 대신 target.url 물음표(?)로 시작하는 경로가 포함된 경우에 발생합니다.
  • HTTP 사양:

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

protocol.http.DuplicateHeader

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

protocol.http.EmptyHeaderName

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

수정

항상 RFC 7230, 섹션 3.2: 헤더 필드에 따라 백엔드 서버에 의해 Apigee로 전송되는 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로 전송되는 백엔드 서버의 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로 전송되는 백엔드 서버의 HTTP 응답의 헤더 이름에 잘못된 문자가 포함되지 않는지 확인합니다.

protocol.http.ProxyTunnelCreationFailed

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

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

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

protocol.http.Response306Reserved

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

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

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

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

수정

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

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로의 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에 대해 HTTP 요청의 일부로 클라이언트 애플리케이션에 의해 전송되는 페이로드 크기가 Apigee에 허용되는 한도보다 큰 경우에 발생합니다.
  • 제한사항:
Apigee 한도

protocol.http.TooBigHeaders

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

protocol.http.TooBigLine

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

protocol.http.UnsupportedEncoding

  • HTTP 상태 코드:
415 Unsupported Media
  • 오류 메시지:
Unsupported Encoding "{encoding}"
  • 가능한 원인:
이 오류는 HTTP 응답의 일부로 백엔드 서버에서 전송되는 Content-Encoding 헤더에 Apigee에서 지원되지 않는 인코딩/페이로드 형식이 포함된 경우에 발생합니다.
  • 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에서 트러스트 저장소를 사용하려는 경우 트러스트 저장소에 백엔드 서버의 올바른 인증서가 포함되었는지 확인합니다.