Katalog error runtime

Halaman ini berlaku untuk Apigee dan Apigee Hybrid.

Lihat dokumentasi Apigee Edge.

Error di Apigee

Saat permintaan API dibuat melalui Apigee, komponen Apigee Router dan Message Processor, atau server backend dapat menampilkan error ke aplikasi klien.

Error dari Pemroses Pesan

Message Processor adalah komponen inti Apigee yang memproses kebijakan dan berinteraksi dengan server backend. API ini dapat menampilkan error jika mendeteksi masalah seperti:

  • Masalah konektivitas jaringan, kegagalan TLS handshake, server backend tidak tersedia, kurangnya respons selama komunikasi dengan server backend
  • Kegagalan selama eksekusi kebijakan
  • Header HTTP, encoding, jalur yang tidak valid, tidak mematuhi spesifikasi HTTP, melampaui batas produk, dll.:
    • Dengan permintaan HTTP yang dikirim oleh aplikasi klien
    • ATAU

    • Dengan respons HTTP yang dikirim oleh server backend
  • Dan masih banyak lagi

Contoh error dari Pemroses Pesan

Prosesor Pesan selalu menampilkan kode status HTTP yang diikuti dengan pesan error beserta kode error dalam format JSON seperti yang ditunjukkan di bawah:

Aplikasi klien mendapatkan kode respons seperti contoh berikut:

  HTTP/1.1 504 Gateway Timeout

Respons error dari Pemroses Pesan muncul dalam format berikut:

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

Deskripsi kolom dalam respons error:

Kolom Deskripsi
faultstring Berisi pesan error yang menjelaskan kemungkinan penyebab error
errorcode Kode error (juga disebut sebagai kode kesalahan) yang terkait dengan error
reason Berisi pesan yang menunjukkan kemungkinan penyebab error

Katalog error runtime

Katalog error ini memberikan semua informasi yang perlu Anda ketahui tentang kode error runtime (untuk error non-kebijakan) yang ditampilkan oleh komponen Pemroses Pesan Apigee. Informasi berikut disertakan untuk setiap kode error:

  • Kode status HTTP
  • Pesan error
  • Alasan error (tidak semua pesan error menampilkan reason)
  • Kemungkinan penyebab error
  • Spesifikasi HTTP dan/atau batas produk terkait
  • Playbook dan video yang berisi petunjuk untuk mendiagnosis penyebab error dan solusi efektif yang dapat Anda terapkan untuk mengatasi error sendiri (jika tersedia)
  • Perbaikan yang dapat Anda terapkan untuk mengatasi error sendiri

Kategori kode error berikut akan dibahas:

Gunakan kotak Penelusuran di bawah untuk memfilter tabel agar menampilkan informasi di atas untuk kode error tertentu. Anda dapat menelusuri kode status atau konten apa pun di kolom mana pun dalam tabel.

Kode error Deskripsi Perbaiki

flow.*

flow.APITimedOut

  • Kode status HTTP:
504 Gateway Timeout
  • Pesan error:
API timed out
  • Kemungkinan penyebab:

Error ini terjadi jika:

  • Server backend tidak merespons dalam periode waktu tunggu yang dikonfigurasi oleh properti api.timeout untuk Proxy API tertentu.
  • Kebijakan memerlukan waktu yang lama karena operasi yang intensif secara komputasi, beban tinggi, atau performa yang buruk.

flow.SharedFlowNotFound

  • Kode status HTTP:
500 Internal Server Error
  • Pesan error:
Shared Flow {shared_flow_name} Not Found
  • Kemungkinan penyebab:

Error ini terjadi jika alur bersama tertentu:

  • Tidak ada
  • ATAU

  • Ada, tetapi tidak di-deploy

messaging.adaptors.http.flow

messaging.adaptors.http.flow.DecompressionFailureAtRequest

  • Kode status HTTP:
400 Bad Request
  • Pesan error:
Decompression failure at request
  • Alasan:

CLIENT_READ_CONTENT_NOT_IN_GZIP_FORMAT

  • Kemungkinan penyebab:

Error ini hanya terjadi jika:

  • Encoding yang ditentukan dalam header permintaan HTTP Content-Encoding valid dan didukung oleh Apigee,
  • TETAPI

  • Format payload yang dikirim oleh klien sebagai bagian dari permintaan HTTP tidak cocok dengan format encoding yang ditentukan di header Content-Encoding

messaging.adaptors.http.flow.DecompressionFailureAtResponse

  • Kode status HTTP:
502 Bad Gateway
  • Pesan error:
Decompression failure at response
  • Alasan:

TARGET_READ_CONTENT_NOT_IN_GZIP_FORMAT

TARGET_READ_INCORRECT_HEADER_CHECK

  • Kemungkinan penyebab:

Error ini hanya terjadi jika:

  • Encoding yang ditentukan di header respons HTTP Content-Encoding server backend/target valid dan didukung oleh Apigee,
  • TETAPI

  • Format payload yang dikirim oleh server backend/target sebagai bagian dari respons HTTP tidak cocok dengan format encoding yang ditentukan di header Content-Encoding

messaging.adaptors.http.flow.ErrorResponseCode

  • Kode status HTTP:
500

  • Pesan error:
Pesan dan format error dapat bervariasi, bergantung pada penerapan server backend.
  • Kemungkinan penyebab:
Error ini terjadi jika server backend merespons dengan kode status 500 ke Apigee.
  • Kode status HTTP:
503
  • Pesan error:
Pesan dan format error dapat bervariasi, bergantung pada penerapan server backend.
  • Kemungkinan penyebab:
Error ini terjadi jika server backend merespons dengan kode status 503 ke Apigee.
  • Kode status HTTP:
504
  • Pesan error:
Pesan dan format error dapat bervariasi, bergantung pada penerapan server backend.
  • Kemungkinan penyebab:
Error ini terjadi jika server backend merespons dengan kode status 504 ke Apigee.

Catatan: Kode error messaging.adaptors.http.flow.ErrorResponseCode tidak ditampilkan sebagai bagian dari pesan error yang dikirim ke aplikasi klien. Hal ini karena kode error ini ditetapkan oleh Apigee setiap kali server backend merespons dengan error dan salah satu kode status 4XX atau 5XX. Anda dapat melihat kode error ini di Pemantauan API atau database analisis.

messaging.adaptors.http.flow.GatewayTimeout

  • Kode status HTTP:
504 Gateway Timeout
  • Pesan error:
Gateway Timeout
  • Alasan:
TARGET_READ_TIMEOUT
  • Kemungkinan penyebab:
Error ini terjadi jika server backend tidak merespons Prosesor Pesan Apigee dalam periode waktu tunggu I/O yang dikonfigurasi di Prosesor Pesan.

messaging.adaptors.http.flow.InternalServerError

  • Kode status HTTP:
500 Internal Server Error
  • Pesan error:
Internal server error at backend
  • Alasan:
SERVER_ERROR
  • Kemungkinan penyebab:
Error ini terjadi dalam salah satu skenario berikut:
  1. Aplikasi backend mengalami pengecualian atau error yang tidak tertangani saat memproses permintaan dari Apigee. Hal ini mungkin berasal dari masalah seperti logika yang salah, input yang tidak terduga, atau masalah runtime lainnya dalam kode aplikasi.
  2. Server backend mungkin gagal terhubung ke databasenya, atau kueri database mungkin gagal. Hal ini dapat terjadi karena konektivitas jaringan, kredensial database yang salah, server database tidak aktif, atau masalah pada skema atau data database.
  3. Jika server backend Anda bergantung pada layanan internal atau eksternal lainnya, seperti API, antrean pesan, atau sistem caching, kegagalan di salah satu dependensi ini dapat menyebabkan server menampilkan error 500 ke Apigee. Backend mungkin tidak dapat berkomunikasi dengan layanan dependen atau mungkin menerima respons error darinya.
  4. Server backend mungkin kelebihan beban karena traffic tinggi, memori (RAM) tidak cukup, penggunaan CPU berlebihan, atau ruang disk rendah. Jika tidak memiliki resource yang memadai, server tidak dapat memproses permintaan dan merespons dengan error 500.
  5. Setelan yang salah di server backend dapat menyebabkan error yang tidak terduga selama pemrosesan permintaan. Hal ini mencakup masalah pada konfigurasi server, setelan aplikasi, atau konfigurasi deployment.
  6. Mungkin ada bug mendasar dalam kode aplikasi backend yang dipicu oleh permintaan tertentu dari Apigee. Bug ini mungkin tidak terlihat dalam keadaan normal, tetapi akan muncul karena pola permintaan atau data tertentu.

messaging.adaptors.http.flow.LengthRequired

  • Kode status HTTP:
411 Length Required
  • Pesan error:
'Content-Length' is missing
  • Alasan:
CLIENT_REQUEST_CONTENT_LENGTH_REQUIRED
  • Kemungkinan penyebab:

Error ini terjadi jika header Content-Length tidak diteruskan oleh aplikasi klien sebagai bagian dari permintaan HTTP POST dan PUT yang dikirim ke Apigee.

Catatan: Permintaan yang gagal dengan error ini tidak dapat direkam di alat Trace, karena Pemroses Pesan melakukan validasi ini pada tahap yang sangat awal, jauh sebelum memproses permintaan dan menjalankan kebijakan apa pun di Proxy API.

  • Spesifikasi HTTP:
RFC Bagian 3.3.2: Content-Length

Perbaiki

Untuk mengatasi error ini, lakukan langkah-langkah berikut:

  1. Pastikan aplikasi klien selalu meneruskan header Content-Length sebagai bagian dari permintaan HTTP POST dan PUT yang dikirim ke Apigee. Contoh:

    curl -X POST https://HOSTALIAS/PATH -d '{"name": "abc"}' -H "Content-Length: 15"
    
  2. Meskipun Anda meneruskan payload kosong dengan permintaan POST dan PUT, pastikan header Content-Length: 0 diteruskan. Contoh:

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

messaging.adaptors.http.flow.NoActiveTargets

  • Kode status HTTP:
503 Service Unavailable
  • Pesan error:
The Service is temporarily unavailable
  • Alasan:

TARGET_HEALTHCHECK_CONNECT_TIMEOUT

TARGET_HEALTHCHECK_CONNECTION_REFUSED

TARGET_HEALTHCHECK_HTTPS_REQUEST_OVER_HTTP

TARGET_HEALTHCHECK_UNEXPECTED_EOF

  • Kemungkinan penyebab:

Error ini terjadi dalam salah satu skenario berikut, jika Anda menggunakan TargetServer di Apigee:

  1. Resolusi DNS yang salah dari host server backend oleh server otorisasi kustom menyebabkan alamat IP yang salah sehingga terjadi error koneksi.
  2. Error waktu tunggu koneksi karena:
    1. Pembatasan firewall di server backend mencegah Apigee terhubung ke server backend.
    2. Masalah konektivitas jaringan antara Apigee dan server backend.
  3. Host yang ditentukan di TargetServer salah atau memiliki karakter yang tidak diinginkan (seperti spasi).
Error ini juga dapat terjadi jika health check yang dikonfigurasi untuk memantau health check server target gagal.

messaging.adaptors.http.flow.RequestTimeOut

  • Kode status HTTP:
408 Request Timeout
  • Pesan error:
Request timed out
  • Alasan:
CLIENT_READ_TIMEOUT
  • Kemungkinan penyebab:
Error ini terjadi jika Apigee Message Processor tidak menerima payload permintaan dari aplikasi klien selama periode waktu tunggu I/O yang dikonfigurasi pada komponen Message Processor.

Perbaiki

Pastikan aplikasi klien mengirim payload permintaan dalam periode waktu tunggu I/O yang dikonfigurasi pada komponen Message Processor Apigee.

messaging.adaptors.http.flow.ServiceUnavailable

  • Kode status HTTP:
503 Service Unavailable
  • Pesan error:
The Service is temporarily unavailable
  • Alasan:

TARGET_CONNECT_TIMEOUT

TARGET_WRITE_BROKEN_PIPE

TARGET_WRITE_CONNECTION_RESET_BY_PEER

TARGET_CONNECT_CONNECTION_REFUSED

  • Kemungkinan penyebab:

Error ini terjadi dalam salah satu skenario berikut:

  1. Resolusi DNS yang salah dari host server backend oleh server otorisasi kustom menyebabkan alamat IP yang salah sehingga menyebabkan error koneksi.
  2. Error waktu tunggu koneksi karena:
    1. Pembatasan firewall di server backend mencegah Apigee terhubung ke server backend.
    2. Masalah konektivitas jaringan antara Apigee dan server backend.
  3. Host server target yang ditentukan di Target Endpoint salah atau memiliki karakter yang tidak diinginkan (seperti spasi).

Perbaiki

Untuk mendiagnosis dan memperbaiki masalah ini, lihat buku pedoman error 503 Service Unavailable dengan TARGET_CONNECT_TIMEOUT.

Error ini juga dapat terjadi jika server backend menutup koneksi terlalu cepat saat Pemroses Pesan masih mengirimkan payload permintaan ke server backend.

messaging.adaptors.http.flow.SslHandshakeFailed

  • Kode status HTTP:
503 Service Unavailable
  • Pesan error:
SSL Handshake failed {error_message}
  • Kemungkinan penyebab:

Error ini terjadi selama proses handshake SSL antara Message Processor Apigee dan server backend jika:

  1. Truststore Message Processor Apigee:
    • Berisi rantai sertifikat yang tidak cocok dengan rantai sertifikat lengkap server backend
    • ATAU

    • Tidak berisi rantai sertifikat lengkap server backend
  2. Rantai sertifikat yang ditampilkan oleh server backend:
    • Berisi Nama Domain yang Sepenuhnya Memenuhi Syarat (FQDN) yang tidak cocok dengan nama host yang ditentukan di endpoint target
    • ATAU

    • Berisi rantai sertifikat yang salah/tidak lengkap
  3. Server backend menolak versi TLS yang digunakan oleh Apigee.

    Misalnya, jika server backend hanya menerima TLS versi 1.3, tetapi server target di sisi Apigee memiliki TLS versi 1.2 yang ditetapkan di kolom TLS Protocol (atau tidak ada versi TLS yang ditetapkan sama sekali, sehingga Apigee saat ini tidak menggunakan TLS versi 1.3 sebagai default), koneksi gagal karena ketidakcocokan versi protokol.

messaging.adaptors.http.flow.UnexpectedEOFAtTarget

  • Kode status HTTP:
502 Bad Gateway
  • Pesan error:
Unexpected EOF at target
  • Alasan:
TARGET_READ_UNEXPECTED_EOF
  • Kemungkinan penyebab:

Error ini terjadi dalam salah satu skenario berikut:

  1. TargetServer tidak dikonfigurasi dengan benar untuk mendukung koneksi TLS/SSL di Apigee.
  2. Server backend dapat menutup koneksi secara tiba-tiba, saat Apigee menunggu respons dari server backend.
  3. Waktu tunggu tetap aktif dikonfigurasi secara salah di Apigee dan server backend.

messaging.adaptors.http.flow.BadGateway

  • Kode status HTTP:
502 Bad Gateway
  • Pesan error:
Bad Gateway
  • Kemungkinan penyebab:

Error ini terjadi jika server target mengirimkan respons HTTP yang salah format kembali ke Apigee.

messaging.runtime.*

messaging.runtime.RouteFailed

  • Kode status HTTP:
500 Internal Server Error
  • Pesan error:
Unable to route the message to a TargetEndpoint
  • Kemungkinan penyebab:

Error ini terjadi jika Apigee tidak dapat merutekan permintaan ke salah satu TargetEndpoint karena:

  • Tidak ada kondisi aturan rute (<RouteRule>) yang cocok dengan permintaan di proxy
  • DAN

  • Tidak ada aturan rute default yang ditentukan di ProxyEndpoint (yaitu, <RouteRule> tanpa syarat apa pun)

Perbaiki

Untuk mengatasi error ini, ikuti petunjuk berikut:

  1. Tinjau aturan rute yang ditentukan di ProxyEndpoint Anda dan ubah untuk memastikan ada setidaknya satu kondisi aturan rute yang cocok dengan permintaan Anda.
  2. Sebaiknya tentukan aturan rute default tanpa kondisi jika Anda memiliki beberapa RouteRule.
  3. Pastikan aturan rute default selalu ditentukan terakhir dalam daftar Rute bersyarat karena aturan dievaluasi dari atas ke bawah di ProxyEndpoint.

Untuk mempelajari lebih lanjut cara menentukan kondisi <RouteRule> di ProxyEndpoint, lihat Target Bersyarat.

protocol.http.* - Caused due to bad request

protocol.http.BadFormData

  • Kode status HTTP:
500 Internal Server Error
  • Pesan error:
Bad Form Data
  • Kemungkinan penyebab:

Error ini terjadi jika dan hanya jika semua kondisi berikut terpenuhi:

  1. Permintaan HTTP yang dikirim oleh klien ke Apigee berisi:
    • Content-Type: application/x-www-form-urlencoded, dan
    • Data formulir dengan tanda persen (%), atau tanda persen (%) diikuti dengan karakter heksadesimal tidak valid yang tidak diizinkan sesuai dengan Formulir - Bagian 17.13.4.1.
  2. Proxy API di Apigee membaca parameter formulir tertentu yang berisi karakter yang tidak diizinkan menggunakan kebijakan ExtractVariables atau AssignMessage dalam alur permintaan.

protocol.http.DuplicateHeader

  • Kode status HTTP:
400 Bad Request
  • Pesan error:
Duplicate Header "{header_name}"
  • Kemungkinan penyebab:
Error ini terjadi jika header HTTP tertentu yang tidak diizinkan memiliki duplikat di Apigee, muncul lebih dari sekali dengan nilai yang sama atau berbeda sebagai bagian dari permintaan HTTP yang dikirim oleh aplikasi klien ke Apigee.
  • Spesifikasi HTTP:
RFC 7230, bagian 3.2.2: Urutan Kolom

protocol.http.EmptyHeaderName

  • Kode status HTTP:
400 Bad Request
  • Pesan error:
Header name cannot be empty
  • Kemungkinan penyebab:
Error ini terjadi jika nama header yang dikirim sebagai bagian dari permintaan HTTP oleh aplikasi klien ke Apigee kosong.
  • Spesifikasi HTTP:
RFC 7230, bagian 3.2: Kolom Header

Perbaiki

Pastikan permintaan HTTP yang dikirim oleh aplikasi klien ke Apigee selalu berisi nama header yang valid sesuai dengan RFC 7230, bagian 3.2: Header Fields.

protocol.http.HeaderNameWithNonAsciiChar

  • Kode status HTTP:
400 Bad Request
  • Pesan error:
Header {header_name} contains non ascii character {character}
  • Kemungkinan penyebab:
Error ini terjadi jika nama header yang dikirim sebagai bagian dari permintaan HTTP oleh aplikasi klien ke Apigee berisi karakter non-ASCII.
  • Spesifikasi HTTP:

RFC 7230, bagian 3.2: Header Fields dan RFC 7230, bagian 3.2.6: Field Value Components

Perbaiki

Pastikan permintaan HTTP klien yang dikirim ke Apigee tidak berisi karakter non-ASCII dalam nama header sesuai dengan RFC 7230, bagian 3.2.6: Komponen Nilai Kolom.

protocol.http.HeaderWithInvalidChar

  • Kode status HTTP:
400 Bad Request
  • Pesan error:
Header {header_name} contains invalid character {character}
  • Kemungkinan penyebab:
Error ini terjadi jika nama header yang dikirim sebagai bagian dari permintaan HTTP oleh aplikasi klien ke Apigee berisi karakter yang tidak valid seperti sama dengan (=), koma (,), titik koma (;), tab, CRLF, dan karakter Baris Baru.
  • Spesifikasi HTTP:

RFC 7230, bagian 3.2: Kolom Header dan RFC 7230, bagian 3.2.6: Komponen Nilai Kolom

Perbaiki

Pastikan permintaan HTTP yang dikirim oleh aplikasi klien ke Apigee tidak berisi karakter yang tidak valid dalam nama header sesuai dengan RFC 7230, bagian 3.2.6: Komponen Nilai Kolom

protocol.http.InvalidPath

  • Kode status HTTP:
400 Bad Request
  • Pesan error:
Invalid path {path}
  • Kemungkinan penyebab:
Error ini terjadi jika jalur di URL permintaan HTTP yang dikirim oleh aplikasi klien ke Apigee berisi karakter yang tidak diizinkan sesuai dengan spesifikasi RFC 3986, bagian 3.3: Path.
  • Spesifikasi HTTP:

RFC 3986, bagian 3: Komponen Sintaksis dan RFC 3986, bagian 3.3: Jalur

Perbaiki

Pastikan bahwa jalur di URL permintaan HTTP yang dikirim oleh aplikasi klien ke Apigee tidak berisi karakter yang tidak diizinkan sebagai per RFC 3986, bagian 3.3: Path.

protocol.http.MessageReadError

  • Kode status HTTP:
502 Bad Gateway
  • Pesan error:
Unexpected I/O after message headers have been read.
  • Kemungkinan penyebab:
Error langka ini terjadi saat MP menerima I/O di saluran saat tidak mengharapkannya. MP sedang membaca permintaan, telah membaca semua header, dan disetel untuk membaca payload permintaan. Kemudian, peristiwa I/O yang tampaknya untuk header yang sama akan terjadi.

Perbaiki

Temukan pesan log untuk mengetahui informasi selengkapnya tentang apa yang terjadi.

logger.atSevere().log(
    "Unexpected I/O after message headers have been read. Channel diagnostics=%s."
        + " HeartBeat=%s",
    input.client().getDiagnostic(), message.getHeaders().isHeartBeat());
                

protocol.http.NoResolvedHost

  • Kode status HTTP:
503 Service Unavailable
  • Pesan error:

Unable to resolve host {hostname}

Dengan: {hostname} bersifat dinamis dan nilainya akan berubah sesuai dengan nama host yang diberikan.

  • Alasan:
TARGET_CONNECT_HOST_NOT_REACHABLE
  • Kemungkinan penyebab:
Error ini terjadi jika host server target yang ditentukan salah atau memiliki karakter yang tidak diinginkan (seperti spasi).

protocol.http.TooBigBody

  • Kode status HTTP:
413 Request Entity Too Large
  • Pesan error:
Body buffer overflow
  • Kemungkinan penyebab:
Error ini terjadi jika ukuran payload yang dikirim oleh aplikasi klien sebagai bagian dari permintaan HTTP ke Apigee lebih besar dari batas yang diizinkan di Apigee.
  • Batas:
Batas Apigee

protocol.http.TooBigHeaders

  • Kode status HTTP:
431 Request Header Fields Too Large
  • Pesan error:
request headers size exceeding {limit}
  • Kemungkinan penyebab:
Total ukuran semua header permintaan yang dikirim oleh aplikasi klien sebagai bagian dari permintaan HTTP ke Apigee lebih besar daripada batas yang diizinkan di Apigee.
  • Spesifikasi HTTP:
RFC 6585, bagian 5: 431 Request Header Fields Too Large
  • Batas:
Batas Apigee

protocol.http.TooBigLine

  • Kode status HTTP:
414 Request-URI Too Long
  • Pesan error:
request line size exceeding {limit}
  • Kemungkinan penyebab:
Error ini terjadi jika ukuran baris permintaan yang dikirim oleh aplikasi klien sebagai bagian dari permintaan HTTP ke Apigee lebih besar daripada batas yang diizinkan di Apigee.
  • Batas:
Batas Apigee

protocol.http.UnsupportedEncoding

  • Kode status HTTP:
415 Unsupported Media
  • Pesan error:
Unsupported Encoding "{encoding}"
  • Kemungkinan penyebab:
Error ini terjadi jika header Content-Encoding yang dikirim oleh klien sebagai bagian dari respons HTTP berisi format encoding/payload yang tidak didukung oleh Apigee.
  • Spesifikasi HTTP:
RFC 7231, bagian 6.5.13: 415 Unsupported Media Type

protocol.http.* - Caused by target

protocol.http.BadPath

  • Kode status HTTP:
500 Internal Server Error
  • Pesan error:
Invalid request path
  • Kemungkinan penyebab:
Error ini terjadi jika URL permintaan server backend, yang diwakili oleh variabel alur target.url, berisi jalur yang dimulai dengan tanda tanya (?) dan bukan garis miring (/), yang tidak valid.
  • Spesifikasi HTTP:

RFC 3986, bagian 3: Komponen Sintaksis dan RFC 3986, bagian 3.3: Jalur

protocol.http.DuplicateHeader

  • Kode status HTTP:
502 Bad Gateway
  • Pesan error:
Duplicate Header "{header_name}"
  • Kemungkinan penyebab:
Error ini terjadi jika header HTTP tertentu yang tidak diizinkan memiliki duplikat di Apigee, muncul lebih dari sekali dengan nilai yang sama atau berbeda sebagai bagian dari respons HTTP yang dikirim oleh server backend ke Apigee.
  • Spesifikasi HTTP:
RFC 7230, bagian 3.2.2: Urutan Kolom

protocol.http.EmptyHeaderName

  • Kode status HTTP:
502 Bad Gateway
  • Pesan error:
Header name cannot be empty
  • Kemungkinan penyebab:
Error ini terjadi jika nama header yang dikirim oleh server backend sebagai bagian dari respons HTTP ke Apigee kosong.
  • Spesifikasi HTTP:
RFC 7230, bagian 3.2: Kolom Header

Perbaiki

Pastikan respons HTTP yang dikirim oleh server backend ke Apigee selalu berisi nama header yang valid sesuai dengan RFC 7230, bagian 3.2: Header Fields.

protocol.http.EmptyPath

  • Kode status HTTP:
500 Internal Server Error
  • Pesan error:
Request path cannot be empty
  • Kemungkinan penyebab:
Error ini terjadi jika URL permintaan HTTP server backend, yang diwakili oleh variabel alur target.url, berisi jalur kosong.
  • Spesifikasi HTTP:

RFC 3986, bagian 3: Komponen Sintaksis dan RFC 3986, bagian 3.3: Jalur

protocol.http.HeaderNameWithNonAsciiChar

  • Kode status HTTP:
502 Bad Gateway
  • Pesan error:
Header {header_name} contains non ascii character {character}
  • Kemungkinan penyebab:
Error ini terjadi jika nama header yang dikirim oleh server backend sebagai bagian dari respons HTTP ke Apigee Edge berisi karakter non-ASCII.
  • Spesifikasi HTTP:

RFC 7230, bagian 3.2: Header Fields dan RFC 7230, bagian 3.2.6: Field Value Components

Perbaiki

Pastikan respons HTTP server backend yang dikirim ke Apigee tidak berisi karakter non-ASCII dalam nama header sesuai dengan RFC 7230, bagian 3.2.6: Komponen Nilai Kolom.

protocol.http.HeaderWithInvalidChar

  • Kode status HTTP:
502 Bad Gateway
  • Pesan error:
Header {header_name} contains invalid character {character}
  • Kemungkinan penyebab:
Error ini terjadi jika nama header yang dikirim oleh server backend sebagai bagian dari respons HTTP, berisi karakter yang tidak valid seperti sama dengan (=), koma (,), titik koma (;), tab, CRLF, dan karakter Baris Baru.
  • Spesifikasi HTTP:

RFC 7230, bagian 3.2: Kolom Header dan RFC 7230, bagian 3.2.6: Komponen Nilai Kolom

Perbaiki

Pastikan respons HTTP server backend yang dikirim ke Apigee tidak berisi karakter yang tidak valid dalam nama header sesuai dengan RFC 7230, bagian 3.2.6: Komponen Nilai Kolom

protocol.http.ProxyTunnelCreationFailed

  • Kode status HTTP:
503 Service Unavailable
  • Pesan error:
Proxy refused to create tunnel with response status {status code}
  • Kemungkinan penyebab:

Error ini terjadi selama pembuatan tunnel antara Apigee dan server backend oleh server proxy karena masalah firewall, ACL (Daftar Kontrol Akses), DNS, ketersediaan server backend, dll.

Catatan: Kode status dalam pesan error (faultstring) memberikan penyebab tingkat tinggi dari masalah tersebut.

protocol.http.Response306Reserved

  • Kode status HTTP:
502 Bad Gateway
  • Pesan error:
Response Status code 306 is reserved, so can't be used.
  • Kemungkinan penyebab:

Error ini terjadi jika server backend merespons kembali dengan kode status 306 ke Apigee.

Kode status 306 ditentukan dalam versi spesifikasi HTTP sebelumnya. Sesuai dengan spesifikasi HTTP saat ini, kode ini dicadangkan dan tidak boleh digunakan.

  • Spesifikasi HTTP:
RFC 7231, bagian 6.3.5: 306 Reserved

Perbaiki

Karena kode status 306 dicadangkan, pastikan server backend Anda tidak menggunakan kode status ini saat mengirim respons ke Apigee.

protocol.http.Response405WithoutAllowHeader

  • Kode status HTTP:
502 Bad Gateway
  • Pesan error:
Received 405 Response without Allow Header
  • Kemungkinan penyebab:
Server backend merespons dengan kode status 405 Method Not Allowed tanpa header "Allow".
  • Spesifikasi HTTP:

RFC 7231, bagian 6.5.5: 405 Method Not Allowed dan RFC 7231, bagian 7.4.1: Allow

protocol.http.ResponseWithBody

  • Kode status HTTP:
502 Bad Gateway
  • Pesan error:
Received {status_code} Response with message body
  • Kemungkinan penyebab:

Error ini terjadi jika respons HTTP dari server backend ke Apigee adalah 204 No Content atau 205 Reset Content, tetapi berisi isi respons dan/atau satu atau beberapa header berikut:

  • Content-Length
  • Content-Encoding
  • Transfer-Encoding
  • Spesifikasi HTTP:

RFC 7231, bagian 6.3.5: 204 No Content dan RFC 7231, bagian 6.3.6: 205 Reset Content

protocol.http.TooBigBody

  • Kode status HTTP:
502 Bad Gateway
  • Pesan error:
Body buffer overflow
  • Kemungkinan penyebab:
Error ini terjadi jika ukuran payload yang dikirim oleh aplikasi klien sebagai bagian dari permintaan HTTP ke Apigee lebih besar dari batas yang diizinkan di Apigee.
  • Batas:
Batas Apigee

protocol.http.TooBigHeaders

  • Kode status HTTP:
502 Bad Gateway
  • Pesan error:
response headers size exceeding {limit}
  • Kemungkinan penyebab:
Error ini terjadi jika total ukuran semua header respons yang dikirim oleh server backend sebagai bagian dari respons HTTP ke Apigee lebih besar daripada batas yang diizinkan di Apigee.
  • Batas:
Batas Apigee

protocol.http.TooBigLine

  • Kode status HTTP:
502 Bad Gateway
  • Pesan error:
response line size exceeding {limit}
  • Kemungkinan penyebab:
Error ini terjadi jika ukuran baris respons yang dikirim oleh server backend sebagai bagian dari respons HTTP ke Apigee lebih besar daripada batas yang diizinkan di Apigee Edge.
  • Batas:
Batas Apigee

protocol.http.UnsupportedEncoding

  • Kode status HTTP:
415 Unsupported Media
  • Pesan error:
Unsupported Encoding "{encoding}"
  • Kemungkinan penyebab:
Error ini terjadi jika header Content-Encoding yang dikirim oleh server backend sebagai bagian dari respons HTTP berisi format encoding/payload yang tidak didukung oleh Apigee.
  • Spesifikasi HTTP:
RFC 7231, bagian 6.5.13: 415 Unsupported Media Type

security.util.*

security.util.KeyAliasNotFound

  • Kode status HTTP:
500 Internal Server Error
  • Pesan error:
KeyAlias {KeyAlias_name} is not found in Keystore {Keystore_Name}
  • Kemungkinan penyebab:

Error ini terjadi jika KeyAlias tertentu yang dirujuk di TargetEndpoint atau TargetServer tidak ditemukan di Keystore tertentu.

Perbaiki

Pastikan KeyAlias yang ditentukan di TargetEndpoint atau TargetServer ada dan merupakan bagian dari Keystore tertentu.

security.util.TrustStoreWithNoCertificates

  • Kode status HTTP:
500 Internal Server Error
  • Pesan error:
TrustStore {truststore_name} has no certificates
  • Kemungkinan penyebab:

Error ini terjadi jika Truststore tertentu yang dirujuk di TargetEndpoint atau TargetServer tidak berisi sertifikat apa pun.

Perbaiki

Jika Anda ingin memvalidasi sertifikat server backend dan ingin menggunakan Truststore di TargetEndpoint atau TargetServer, maka pastikan Truststore berisi sertifikat server backend yang valid.