Jika permintaan API dibuat melalui Apigee Edge, Router dan Prosesor Pesan komponen Apigee Edge, atau server backend dapat menampilkan error ke aplikasi klien.
Error dari Pemroses Pesan
Pemroses Pesan adalah komponen inti Apigee Edge yang memproses kebijakan dan berinteraksi dengan server backend. API ini dapat menampilkan error jika mendeteksi masalah seperti:
Masalah konektivitas jaringan, kegagalan handshake TLS, tidak tersedianya server backend, kurangnya respons selama komunikasi dengan server backend
Kegagalan selama eksekusi kebijakan
Header HTTP, encoding, jalur tidak valid, ketidakpatuhan terhadap spesifikasi HTTP, melebihi
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
Pemroses Pesan selalu mengembalikan kode status HTTP yang diikuti dengan pesan error beserta kode error dalam format JSON seperti yang ditunjukkan di bawah ini:
Aplikasi klien mendapatkan kode respons seperti contoh berikut:
HTTP/1.1 414 Request-URI Too Long
Respons error dari Pemroses Pesan muncul dalam format berikut:
Berisi pesan error yang menjelaskan kemungkinan penyebab error
errorcode
Kode error (juga disebut sebagai kode kesalahan) yang terkait dengan error
Katalog error runtime
Katalog error ini menyediakan semua informasi yang perlu Anda ketahui tentang kode error
runtime (untuk error non-kebijakan) yang ditampilkan oleh komponen Apigee Edge Message
Processor. Kode ini menyertakan informasi berikut untuk setiap kode error:
Kode Status HTTP
Pesan error
Kemungkinan penyebab error
Semua 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 sendiri error (jika tersedia)
Perbaiki yang dapat Anda terapkan untuk mengatasi error sendiri
Gunakan kotak Search di bawah ini 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 di tabel.
searchPenelusuran
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 kembali dalam periode waktu tunggu yang dikonfigurasi
oleh properti
api.timeout untuk Proxy API tertentu.
Kebijakan memerlukan waktu lama karena operasi komputasi yang intensif, beban
tinggi, atau performa yang buruk.
Catatan: Playbook ini memberikan petunjuk untuk memecahkan masalah kode error
messaging.adaptors.http.flow.GatewayTimeout. Namun, Anda dapat menggunakan
playbook yang sama untuk memecahkan masalah kode error flow.APITimedOut.
Encoding yang ditentukan dalam header permintaan HTTP Content-Encoding valid dan
didukung oleh Apigee Edge,
TETAPI
Format payload yang dikirim oleh klien sebagai bagian dari permintaan HTTP tidak cocok dengan format encoding yang ditentukan dalam header Content-Encoding
Encoding yang ditentukan dalam header respons HTTP Content-Encoding server backend/target valid dan
didukung oleh Apigee Edge,
TETAPI
Format payload yang dikirim oleh server backend/target sebagai
bagian dari respons HTTP tidak cocok dengan format encoding yang ditentukan dalam
header Content-Encoding
Pesan Error dan format dapat bervariasi bergantung pada implementasi server backend.
Kemungkinan penyebab:
Error ini terjadi jika server backend merespons dengan kode status 504 ke Apigee Edge.
Catatan: Kode error
messaging.adaptors.http.flow.ErrorResponseCode tidak ditampilkan
sebagai bagian dari pesan error yang dikirim ke aplikasi klien. Hal ini dikarenakan kode error ini disetel oleh Apigee Edge setiap kali server backend merespons dengan error dan kode status 4XX atau 5XX. Anda dapat melihat kode error ini di Pemantauan API, log akses NGINX, atau database analisis.
messaging.adaptors.http.flow.GatewayTimeout
Kode status HTTP:
504 Gateway Timeout
Pesan error:
Gateway Timeout
Kemungkinan penyebab:
Error ini terjadi jika server backend tidak merespons kembali ke Apigee Edge Message Processor dalam
periode waktu tunggu I/O yang dikonfigurasi pada Pemroses Pesan.
Error ini terjadi jika header Content-Length tidak diteruskan oleh aplikasi klien sebagai bagian dari permintaan POST dan PUT HTTP yang dikirim ke Apigee Edge.
Catatan: Permintaan yang gagal dengan error ini tidak dapat ditangkap di alat Trace, karena Message Processor melakukan validasi ini pada fase paling awal, jauh sebelum memproses permintaan dan mengeksekusi kebijakan apa pun di Proxy API.
Error ini terjadi jika Apigee Edge Message Processor tidak menerima payload permintaan dari aplikasi klien untuk
periode waktu tunggu I/O yang dikonfigurasi pada komponen Pemroses Pesan.
Perbaiki
Pastikan aplikasi klien mengirimkan payload permintaan dalam
periode waktu tunggu I/O yang dikonfigurasi pada komponen Message Processor Apigee Edge.
messaging.adaptors.http.flow.ServiceUnavailable
Kode status HTTP:
503 Service Unavailable
Pesan error:
The Service is temporarily unavailable
Kemungkinan penyebab:
Error ini terjadi dalam salah satu skenario berikut:
Resolusi DNS yang salah pada host server backend oleh server otorisasi kustom mengakibatkan alamat IP yang buruk yang menyebabkan error koneksi.
Error waktu tunggu koneksi habis karena:
Pembatasan firewall pada server backend mencegah
Apigee Edge terhubung ke server backend.
Masalah konektivitas jaringan antara Apigee Edge dan server backend.
Host server target yang ditentukan dalam Endpoint Target salah atau memiliki karakter yang tidak diinginkan (seperti spasi).
Error ini juga dapat terjadi jika server backend menutup koneksi lebih awal saat Pemroses Pesan masih mengirimkan payload permintaan ke server backend.
Error ini terjadi jika Apigee Edge tidak dapat mengarahkan permintaan ke TargetEndpoint mana pun karena:
Tidak ada kondisi aturan rute (<RouteRule>) yang
cocok dengan permintaan dalam proxy
DAN
Tidak ada aturan rute default yang ditentukan dalam ProxyEndpoint
(yaitu, <RouteRule> tanpa kondisi apa pun)
Perbaiki
Untuk mengatasi error ini, ikuti petunjuk berikut:
Tinjau aturan rute yang ditentukan di ProxyEndpoint Anda dan ubah untuk memastikan setidaknya ada satu kondisi aturan rute yang sesuai dengan permintaan Anda.
Sebaiknya tentukan aturan rute default tanpa kondisi saat Anda memiliki beberapa RouteRules.
Pastikan bahwa 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.
messaging.runtime.SenseRaiseFault
Kode status HTTP:
403 Forbidden
Pesan error:
Sense Fault
Kemungkinan penyebab:
Error ini terjadi jika permintaan API dibuat dari alamat IP klien tertentu yang diblokir sebagai bagian dari aturan Apigee Sense.
Perbaiki
Untuk mengatasi error ini, ikuti petunjuk berikut:
Jika alamat IP klien tertentu tidak diblokir, tetapi Anda masih mendapatkan error ini, hubungi Dukungan Apigee Edge.
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:
Permintaan HTTP yang dikirim oleh klien ke Apigee Edge
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
Formulir - Bagian 17.13.4.1.
Proxy API di Apigee Edge membaca parameter bentuk tertentu yang berisi karakter apa pun yang tidak diizinkan menggunakan kebijakan ExtractVariables atau TetapkanMessage dalam alur permintaan.
Error ini terjadi jika header HTTP tertentu yang tidak diizinkan memiliki duplikat
di Apigee Edge, muncul lebih dari sekali dengan nilai yang sama atau berbeda sebagai bagian dari
permintaan HTTP yang dikirim oleh aplikasi klien ke Apigee Edge.
Pastikan permintaan HTTP yang dikirim oleh aplikasi klien
ke Apigee Edge selalu berisi nama header yang valid sesuai dengan
RFC 7230, bagian 3.2: Kolom Header.
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 Edge berisi karakter non-ASCII.
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 Edge berisi karakter yang tidak valid seperti
sama dengan (=), koma (,), titik koma (;), tab, CRLF, dan karakter Newline.
Pastikan permintaan HTTP yang dikirim oleh aplikasi klien ke Apigee Edge 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 dalam URL permintaan HTTP yang dikirim oleh aplikasi klien
ke Apigee Edge berisi karakter yang tidak diizinkan sesuai dengan spesifikasi
RFC 3986, bagian 3.3: Jalur.
Pastikan jalur di URL permintaan HTTP yang dikirim oleh aplikasi klien ke Apigee Edge tidak berisi karakter yang tidak diizinkan sebagai
per RFC 3986, bagian 3.3: Jalur.
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 Edge lebih besar dari batas yang diizinkan di Apigee Edge.
Ukuran total semua header permintaan yang dikirim oleh aplikasi klien sebagai bagian dari permintaan HTTP ke Apigee Edge lebih besar dari batas yang diizinkan di Apigee Edge.
Error ini terjadi jika ukuran baris permintaan yang dikirim oleh aplikasi klien
sebagai bagian dari permintaan HTTP ke Apigee Edge lebih besar dari batas yang diizinkan di
Apigee Edge.
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 Edge.
Error ini terjadi jika URL permintaan server backend, yang diwakili oleh variabel alur target.url, berisi jalur yang dimulai dengan tanda tanya (?), bukan garis miring (/), yang berarti tidak valid.
Error ini terjadi jika header HTTP tertentu yang tidak diizinkan memiliki duplikat
di Apigee Edge, muncul lebih dari sekali dengan nilai yang sama atau berbeda sebagai bagian dari
respons HTTP yang dikirim oleh server backend ke Apigee Edge.
Pastikan respons HTTP yang dikirim oleh server backend ke Apigee Edge selalu berisi nama header yang valid sesuai dengan
RFC 7230, bagian 3.2: Kolom Header.
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 dari server backend, yang ditunjukkan oleh variabel alur target.url, berisi jalur kosong.
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 Newline.
Pastikan respons HTTP server backend yang dikirim ke Apigee Edge 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 Edge dan server backend oleh server proxy karena firewall, ACL (Daftar Kontrol Akses), masalah DNS, ketersediaan ketersediaan server backend, dll.
Catatan:Kode status dalam pesan error
(faultstring) memberikan penyebab tingkat tinggi dari masalah tersebut.
Error ini terjadi jika respons HTTP dari server backend ke Apigee Edge adalah
204 No Content atau
205 Reset Content, tetapi berisi
isi respons dan/atau satu atau beberapa header berikut:
Error ini terjadi jika ukuran payload yang dikirim oleh aplikasi klien sebagai bagian dari permintaan HTTP ke Apigee Edge lebih besar dari batas yang diizinkan di Apigee Edge.
Error ini terjadi jika ukuran total semua header respons yang dikirim oleh server backend sebagai bagian dari respons HTTP ke Apigee Edge lebih besar dari batas yang diizinkan di Apigee Edge.
Error ini terjadi jika ukuran baris respons yang dikirim oleh server backend sebagai bagian dari respons HTTP terhadap Apigee Edge lebih besar dari batas yang diizinkan di Apigee Edge.
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 Edge.
KeyAlias {KeyAlias_name} is not found in
Keystore {Keystore_Name}
Kemungkinan penyebab:
Error ini terjadi jika KeyAlias tertentu yang dirujuk dalam TargetEndpoint atau TargetServer tidak ditemukan dalam Keystore tertentu.
Perbaiki
Pastikan KeyAlias yang ditetapkan dalam 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, pastikan Truststore berisi sertifikat valid server backend.