Saat permintaan API dibuat melalui Apigee, Router dan Pemroses Pesan komponen Apigee, atau backend
server dapat mengembalikan
kesalahan ke aplikasi klien.
Error dari Pemroses Pesan
Pemroses Pesan adalah komponen inti Apigee yang memproses kebijakan dan
berinteraksi dengan server backend. Layanan ini dapat menampilkan error jika mendeteksi masalah seperti:
Masalah konektivitas jaringan, kegagalan handshake TLS, ketidaktersediaan server backend,
kurangnya respons selama komunikasi dengan server backend
Kegagalan selama menjalankan kebijakan
Header HTTP, encoding, jalur, ketidakpatuhan terhadap spesifikasi HTTP tidak valid, 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 diikuti oleh pesan {i>error<i} bersama dengan
kode error dalam format JSON seperti yang ditunjukkan di bawah ini:
Aplikasi klien mendapatkan kode respons seperti contoh berikut:
HTTP/1.1 504 Gateway Timeout
Respons error dari Pemroses Pesan muncul dalam format berikut:
Berisi pesan error yang menjelaskan kemungkinan penyebab error
errorcode
Kode error (juga disebut sebagai kode error) yang terkait dengan
kesalahan
reason
Berisi pesan yang menunjukkan kemungkinan penyebab error
Katalog error runtime
Katalog error ini memberikan semua informasi yang perlu Anda ketahui tentang runtime
kode error (untuk error non-kebijakan) yang ditampilkan oleh Pesan Apigee
Komponen prosesor. Kode ini menyertakan informasi berikut untuk setiap kode error:
Kode Status HTTP
Pesan error
Penyebab kesalahan (tidak semua pesan kesalahan menampilkan
reason)
Kemungkinan penyebab error
Spesifikasi HTTP dan/atau batas produk terkait
Playbook dan video yang berisi petunjuk untuk mendiagnosis penyebab kesalahan dan
solusi efektif yang dapat Anda terapkan untuk mengatasi sendiri kesalahan (jika tersedia)
Perbaikan yang dapat Anda terapkan untuk mengatasi sendiri error
Gunakan kotak Telusuri di bawah untuk memfilter tabel agar dapat menampilkan informasi di atas
untuk kode error tertentu. Anda dapat menelusuri kode status atau konten apa pun di kolom mana pun
pada 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
pada properti
api.timeout untuk Proxy API tertentu.
Sebuah kebijakan memerlukan waktu yang lama karena
operasi yang intensif secara komputasi,
atau performa buruk.
Encoding yang ditetapkan di server target/backend
Header respons HTTP Content-Encoding valid dan
didukung oleh Apigee,
TETAPI
Format {i>payload<i} yang dikirim
oleh server {i>backend<i}/target sebagai
bagian dari respons HTTP tidak sesuai dengan format encoding yang ditentukan dalam
Header Content-Encoding
messaging.adaptors.http.flow.ErrorResponseCode
Kode status HTTP:
500
Pesan error:
Pesan Error dan format dapat bervariasi bergantung pada server backend
terlepas dari implementasi layanan.
Kemungkinan penyebab:
Error ini terjadi jika server backend merespons dengan status
kode 500 ke Apigee.
Kode status HTTP:
503
Pesan error:
Pesan Error dan format dapat bervariasi bergantung pada server backend
terlepas dari implementasi layanan.
Kemungkinan penyebab:
Error ini terjadi jika server backend merespons dengan status
kode 503 ke Apigee.
Kode status HTTP:
504
Pesan error:
Pesan Error dan format dapat bervariasi bergantung pada server backend
terlepas dari implementasi layanan.
Kemungkinan penyebab:
Error ini terjadi jika server backend merespons dengan status
kode 504 ke Apigee.
Catatan: Kode error
messaging.adaptors.http.flow.ErrorResponseCode tidak ditampilkan
sebagai bagian dari pesan {i>error<i}
yang dikirim ke aplikasi klien. Ini adalah
karena kode error ini ditetapkan oleh Apigee setiap kali server backend
merespons dengan error dan salah satu dari 4XX atau 5XX
kode status. 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 kembali
ke Pemroses Pesan Apigee dalam
Periode waktu tunggu I/O yang dikonfigurasi pada Pemroses Pesan.
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 POST dan PUT HTTP
yang dikirim ke Apigee.
Catatan: Permintaan yang gagal dengan perintah ini
tidak dapat ditangkap di alat Pelacakan, karena Pemroses Pesan menjalankan
pada fase awal, jauh sebelum
memproses permintaan dan
mengeksekusi kebijakan apa pun di Proxy API.
Untuk mengatasi error ini, lakukan langkah-langkah berikut:
Memastikan aplikasi klien selalu meneruskan header
Content-Length sebagai bagian dari POST HTTP dan
PUT permintaan dikirim ke Apigee. Contoh:
curl -X POST https://HOSTALIAS/PATH -d '{"name": "abc"}' -H "Content-Length: 15"
Meskipun Anda meneruskan payload kosong dengan 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:
Resolusi DNS dari host server backend salah
oleh server otorisasi khusus mengakibatkan
alamat IP buruk yang mengarah ke
error koneksi.
Error waktu tunggu koneksi habis karena:
Pembatasan {i>firewall<i} di server {i>backend<i} mencegah
Apigee agar tidak terhubung ke server backend.
Masalah konektivitas jaringan antara Apigee
dan server backend.
{i>Host<i} yang ditetapkan dalam TargetServer salah atau
memiliki karakter yang tidak diinginkan (seperti spasi).
Error ini juga dapat terjadi jika health check dikonfigurasi untuk memantau kondisi.
gagalnya pemeriksaan server target.
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 Pemroses Pesan Apigee 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 Pemroses Pesan 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:
Resolusi DNS server backend yang salah
{i>host<i} oleh server otorisasi khusus
menghasilkan alamat IP buruk yang mengarahkan
hingga terjadi error koneksi.
Error waktu tunggu koneksi habis karena:
Pembatasan {i>firewall<i} di server {i>backend<i} mencegah
Apigee agar tidak terhubung ke server backend.
Masalah konektivitas jaringan antara Apigee dan
server backend.
Host server target yang ditentukan di Endpoint Target telah
salah atau memiliki karakter yang tidak diinginkan (seperti spasi).
Kesalahan ini juga dapat terjadi jika server backend menutup server
sementara Pemroses Pesan masih mengirim 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 antarmuka
Pemroses Pesan dan server backend jika:
Truststore Pemroses Pesan Apigee:
Berisi rantai sertifikat yang tidak sesuai dengan atribut server backend
rantai sertifikat lengkap
ATAU
Tidak berisi rantai sertifikat lengkap server backend
Rantai sertifikat yang ditampilkan oleh server backend:
Berisi Nama Domain yang Memenuhi Syarat Sepenuhnya (FQDN) yang tidak cocok dengan
nama host yang ditentukan di endpoint target
ATAU
Berisi rantai sertifikat yang salah/tidak lengkap
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 menetapkan TLS versi 1.2 di
Kolom TLS Protocol (atau tidak ada versi TLS yang ditetapkan sama sekali, dalam hal ini
Apigee saat ini tidak akan menggunakan TLS versi 1.3 sebagai default), yang
koneksi gagal karena
ketidakcocokan versi protokol.
Error ini terjadi dalam salah satu skenario berikut:
TargetServer tidak dikonfigurasi dengan benar untuk mendukung koneksi TLS/SSL
di Apigee.
Server backend mungkin
menutup koneksi secara tiba-tiba,
sementara Apigee menunggu respons dari server backend.
Pertahankan waktu tunggu aktif yang tidak dikonfigurasi dengan benar di Apigee dan
server backend.
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 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 cocok dengan permintaan Anda.
Menentukan aturan rute default tanpa kondisi adalah praktik yang baik
jika Anda memiliki beberapa RouteRules.
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> dalam
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:
Permintaan HTTP yang dikirim oleh klien ke Apigee
berisi:
Content-Type: application/x-www-form-urlencoded,
dan
Formulir data dengan tanda persen (%), atau persen
tanda (%) diikuti dengan karakter heksadesimal tidak valid yang tidak dibolehkan
sesuai dengan
Formulir - Bagian 17.13.4.1.
Proxy API di Apigee membaca formulir tertentu
berisi karakter yang tidak diizinkan menggunakan
ExtractVariables atau kebijakan PrepareMessage 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.
Memastikan bahwa permintaan HTTP yang dikirim oleh aplikasi klien
ke Apigee 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 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 berisi karakter yang tidak valid seperti
karakter sama dengan (=), koma (,), titik koma (;), tab, CRLF, dan Baris baru.
Pastikan permintaan HTTP yang dikirim oleh aplikasi klien ke Apigee tidak
berisi karakter yang tidak valid
di nama {i>header<i} sesuai dengan
RFC 7230, bagian 3.2.6: Komponen Nilai Kolom
protocol.http.NoResolvedHost
Kode status HTTP:
503 Service Unavailable
Pesan error:
Unable to resolve host {hostname}
Dalam hal: {hostname} bersifat dinamis dan nilainya
akan berubah sehubungan dengan nama {i>host<i} yang diberikan.
Alasan:
TARGET_CONNECT_HOST_NOT_REACHABLE
Kemungkinan penyebab:
Kesalahan ini terjadi jika {i>host<i} server target yang ditentukan
salah atau memiliki karakter yang tidak diinginkan (seperti spasi).
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 berisi karakter yang tidak diizinkan sesuai spesifikasi
RFC 3986, bagian 3.3: Jalur.
Pastikan jalur di URL permintaan HTTP yang dikirim oleh klien
aplikasi ke
Apigee tidak berisi karakter apa pun yang tidak diizinkan sebagai
sesuai dengan RFC 3986, bagian 3.3: Path.
protocol.http.TooBigBody
Kode status HTTP:
413 Request Entity Too Large
Pesan error:
Body buffer overflow
Kemungkinan penyebab:
Kesalahan ini terjadi jika ukuran {i>payload<i} yang dikirim oleh aplikasi klien sebagai bagian dari
Permintaan HTTP ke Apigee lebih besar dari batas yang diizinkan di Apigee.
Error ini terjadi jika ukuran baris permintaan yang dikirim oleh aplikasi klien
sebagai bagian dari permintaan HTTP ke Apigee lebih besar dari batas yang diizinkan di
Apigee.
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.
Error ini terjadi jika URL permintaan server backend, yang dinyatakan oleh
variabel alur target.url, berisi jalur yang dimulai dengan tanda tanya
(?) bukan garis miring ke depan (/), yang tidak valid.
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.
Pastikan respons HTTP yang dikirim oleh backend
server ke Apigee 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 server backend, yang diwakili 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 (=), koma (,), titik koma (;), tab,
CRLF, dan karakter Newline.
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 firewall, ACL (Daftar Kontrol Akses), DNS
masalah, ketersediaan ketersediaan
server backend, dll.
Catatan:Kode status dalam pesan error
(faultstring) memberikan penyebab umum 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:
Kesalahan ini terjadi jika server {i>
backend <i}merespons kembali dengan
Kode status 306 ke Apigee.
Kode status 306 ditentukan di versi sebelumnya
Spesifikasi HTTP. Sesuai dengan spesifikasi HTTP saat ini, kode ini
dicadangkan dan
tidak boleh digunakan.
Error ini terjadi jika respons HTTP dari server backend ke Apigee
204 No Content atau
205 Reset Content, tetapi berisi
isi respons dan/atau satu atau beberapa header berikut:
Kesalahan ini terjadi jika ukuran {i>payload<i} yang dikirim oleh aplikasi klien sebagai bagian dari
Permintaan HTTP ke Apigee lebih besar dari batas yang diizinkan di Apigee.
Kesalahan ini terjadi jika ukuran total semua {i>header<i} respons yang dikirim oleh
server backend sebagai bagian dari respons HTTP terhadap Apigee, lebih besar daripada
batas yang diizinkan di Apigee.
Error ini terjadi jika ukuran baris respons yang dikirim oleh server backend
bagian dari respons HTTP terhadap Apigee 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 encoding/payload
format yang tidak didukung oleh Apigee.
KeyAlias {KeyAlias_name} is not found in
Keystore {Keystore_Name}
Kemungkinan penyebab:
Error ini terjadi jika KeyAlias tertentu dirujuk dalam TargetEndpoint
atau TargetServer tidak ditemukan di Keystore tertentu.
Perbaiki
Memastikan KeyAlias 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 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,
memastikan bahwa Truststore berisi sertifikat yang valid dari server backend.
[[["Mudah dipahami","easyToUnderstand","thumb-up"],["Memecahkan masalah saya","solvedMyProblem","thumb-up"],["Lainnya","otherUp","thumb-up"]],[["Hard to understand","hardToUnderstand","thumb-down"],["Incorrect information or sample code","incorrectInformationOrSampleCode","thumb-down"],["Missing the information/samples I need","missingTheInformationSamplesINeed","thumb-down"],["Masalah terjemahan","translationIssue","thumb-down"],["Lainnya","otherDown","thumb-down"]],["Terakhir diperbarui pada 2024-09-02 UTC."],[],[]]