Error 400: apa yang harus dilakukan saat glm-5.3-flash gagal
Kode 400 berarti permintaannya sendiri tidak valid: ada field yang hilang, tipe salah, atau parameter yang tidak didukung model ini. Mencoba ulang tidak akan menyelesaikannya; isi permintaan harus diubah.
400 Bad Request berarti server menolak permintaan karena body-nya tidak valid. Berbeda dengan 5xx, 400 tidak akan selesai dengan mencoba ulang, Anda akan selalu menerima respons yang sama. Parameter harus diperbaiki lebih dulu.
glm-5.3-flash disediakan oleh Z.AI. Semua di halaman ini — penyebab, solusi, dan data terukur — disusun dari perilaku runtime nyata model ini di lapisan gateway.
Di gateway ini, pemicu yang paling umum adalah: Field wajib hilang (model atau messages). Tindakan pertama yang disarankan: Cocokkan isi permintaan dengan tabel parameter di halaman ini.
Penyebab umum
- Field wajib hilang (model atau messages)
- Tipe parameter salah
- Parameter tidak didukung model ini
- Struktur messages salah atau nilai role tidak valid
Cara mengatasi
- Cocokkan isi permintaan dengan tabel parameter di halaman ini
- Hapus parameter yang tidak didukung lalu coba lagi
- Pastikan messages berupa array dan nilai role valid
- Mulai dari permintaan paling minimal, lalu tambahkan parameter satu per satu
Contoh percobaan ulang dengan exponential backoff
Kode di bawah mencoba ulang ketika glm-5.3-flash mengembalikan 400, maksimal 5 kali, dengan waktu tunggu yang meningkat plus jitter acak agar permintaan paralel tidak mengulang bersamaan. Baca base URL dan API key dari environment variable, jangan hardcode.
import os, time, random
import requests
BASE = os.getenv("OPENAI_BASE_URL") # e.g. https://<your-gateway>/v1
KEY = os.getenv("OPENAI_API_KEY")
MODEL = 'glm-5.3-flash'
def chat(messages, retries=5):
"""Retry with exponential backoff + jitter."""
for i in range(retries):
try:
r = requests.post(
BASE + "/chat/completions",
headers={"Authorization": "Bearer " + KEY},
json={"model": MODEL, "messages": messages, "stream": True},
timeout=60,
)
if r.status_code == 429 or r.status_code >= 500:
time.sleep(min(2 ** i + random.uniform(0, 1), 30))
continue
r.raise_for_status()
return r.json()
except requests.exceptions.Timeout:
time.sleep(min(2 ** i + random.uniform(0, 1), 30))
raise RuntimeError("gave up after " + str(retries) + " retries")
print(chat([{"role": "user", "content": "hello"}]))Data penting model ini
| Endpoint API | https://api.airai.cc/v1 |
|---|---|
| Kompatibel OpenAI | OpenAI-compatible |
| Vendor | Z.AI |
|---|---|
| Konteks | 1M |
| Kemampuan | Reasoning, Tools, Files, Open Weights, Vision |
| Format API | openai, openai-response, openai-response-compact, anthropic, gemini, openai-alpha-search |
| Rumus penagihan | p * 0.15 + cr * 0.03 + cc * 0 + c * 0.5 |
FAQ
Apakah beralih ke streaming mengurangi 400?
Parameter permintaan harus diubah, mencoba ulang saja tidak membantu. Ini masalah konfigurasi sisi klien, sisi server tidak perlu diubah. Jendela konteks 1M menentukan input maksimum per permintaan; yang melebihinya langsung ditolak. Untuk error parameter, gagalkan langsung daripada menghabiskan percobaan ulang. Potong atau ringkas input yang panjang — ini menurunkan 400 secara nyata.
Bagaimana cara menggunakan header Retry-After pada respons?
Biasanya kode bisnis tidak perlu diubah, cukup atur ritme pemanggilan. Mencoba ulang adalah langkah pertama yang paling efektif. Dengan penagihan p * 0.15 + cr * 0.03 + cc * 0 + c * 0.5, permintaan yang gagal tidak dihitung dalam penggunaan. Tetapkan batas percobaan ulang ke 3–5 kali dan tambahkan jitter.
Apakah saya ditagih saat glm-5.3-flash mengembalikan 400?
Tidak ada tagihan, hanya output yang benar-benar dihasilkan yang dihitung. Dengan penagihan p * 0.15 + cr * 0.03 + cc * 0 + c * 0.5, biaya output panjang sebagian besar dari token output. Dengan penagihan p * 0.15 + cr * 0.03 + cc * 0 + c * 0.5, permintaan yang gagal tidak dihitung dalam penggunaan. Periksa saldo dan batas laju di konsol dulu, baru periksa kodenya. Saat memperkirakan biaya dari p * 0.15 + cr * 0.03 + cc * 0 + c * 0.5, sertakan juga anggaran percobaan ulang.
Informasi apa yang perlu diberikan ke dukungan saat melaporkan masalah?
Jika hanya terjadi di produksi, biasanya itu perbedaan lingkungan, bukan modelnya. Model ini dilayani oleh Z.AI, sehingga status upstream mengikuti pengumuman penyedia. Catat request ID pada setiap kegagalan — lebih berguna daripada kode status. Reproduksi dulu di lingkungan pengujian dengan request body yang sama.
Error lain pada model ini
- glm-5.3-flash: error 429 — penyebab dan solusi
- glm-5.3-flash: error timeout — penyebab dan solusi
- glm-5.3-flash: error 500 — penyebab dan solusi
- glm-5.3-flash: error 502 — penyebab dan solusi
- glm-5.3-flash: error 503 — penyebab dan solusi
- glm-5.3-flash: error 504 — penyebab dan solusi
- glm-5.3-flash: error 401 — penyebab dan solusi
- glm-5.3-flash: error 403 — penyebab dan solusi
Model lain dengan error yang sama
- gpt-5
- claude-opus-5
- gemini-2.5-pro
- deepseek-v4-pro
- grok-4.3
- llama-3.3-70b-instruct
- qvq-max
- qwq-32b
- glm-5
- MiniMax-M3
- kimi-k3
- hy3
- doubao-seed-evolving
- mimo-v2.5
- gpt-4o
- claude-opus-4-6
Data diperbarui: 2026-10-10 15:45