Error 504: apa yang harus dilakukan saat grok-4.3 gagal

Kode 504 berarti gateway kehabisan waktu menunggu model hulu: permintaan sudah dikirim, tetapi hulu tidak merespons dalam batas waktu gateway.

504 Gateway Timeout berarti gateway berhenti menunggu respons upstream. Permintaan sudah diteruskan, tetapi tidak ada hasil yang kembali dalam batas gateway. Memperpendek output, mengaktifkan streaming, atau menurunkan max_tokens biasanya menyelesaikannya.

grok-4.3 disediakan oleh xAI. 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: Hulu memerlukan waktu lebih lama dari batas gateway. Tindakan pertama yang disarankan: Beralih ke keluaran streaming.

Penyebab umum

  • Hulu memerlukan waktu lebih lama dari batas gateway
  • Konteks panjang menambah waktu inferensi
  • Node hulu macet
  • Permintaan non-streaming dengan keluaran sangat panjang

Cara mengatasi

  • Beralih ke keluaran streaming
  • Perpendek konteks dan turunkan max_tokens
  • Coba lagi setelah menunggu sebentar
  • Gunakan model dengan inferensi lebih cepat

Contoh percobaan ulang dengan exponential backoff

Kode di bawah mencoba ulang ketika grok-4.3 mengembalikan 504, 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 = 'grok-4.3'


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 APIhttps://api.airai.cc/v1
Kompatibel OpenAIOpenAI-compatible
VendorxAI
Konteks1M
KemampuanReasoning, Tools, Files, Vision
Format APIopenai, openai-response, openai-response-compact, anthropic, gemini, openai-alpha-search
Rumus penagihanp * 1.25 + cr * 0.2 + c * 2.5) : tier("200k_plus", p * 2.5 + cr * 0.4 + c * 5

FAQ

Apakah saya ditagih saat grok-4.3 mengembalikan 504?

Tidak ada tagihan, hanya output yang benar-benar dihasilkan yang dihitung. Hanya output yang sudah dihasilkan yang ditagihkan; bagian yang gagal tidak. Penagihan mengikuti p * 1.25 + cr * 0.2 + c * 2.5) : tier("200k_plus", p * 2.5 + cr * 0.4 + c * 5, tanpa output berarti tanpa tagihan. Periksa saldo dan batas laju di konsol dulu, baru periksa kodenya. Saat memperkirakan biaya dari p * 1.25 + cr * 0.2 + c * 2.5) : tier("200k_plus", p * 2.5 + cr * 0.4 + c * 5, sertakan juga anggaran percobaan ulang.

Saat grok-4.3 mengembalikan 504, field mana di body yang perlu diperiksa?

Simpan request ID dan isi respons mentahnya, kalau tidak tidak ada yang bisa dilacak. Jika hanya terjadi di produksi, biasanya itu perbedaan lingkungan, bukan modelnya. Model ini dilayani oleh xAI, sehingga status upstream mengikuti pengumuman penyedia. Reproduksi dulu di lingkungan pengujian dengan request body yang sama.

Apakah beralih ke streaming mengurangi 504?

Parameter permintaan harus diubah, mencoba ulang saja tidak membantu. Ini masalah konfigurasi sisi klien, sisi server tidak perlu diubah. Tag kemampuan adalah Reasoning, Tools, Files, Vision, dan batas parameter mengikuti set kemampuan tersebut. 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 504 secara nyata.

Bagaimana cara menggunakan header Retry-After pada respons?

Biasanya kode bisnis tidak perlu diubah, cukup atur ritme pemanggilan. Dengan penagihan p * 1.25 + cr * 0.2 + c * 2.5) : tier("200k_plus", p * 2.5 + cr * 0.4 + c * 5, permintaan yang gagal tidak dihitung dalam penggunaan. Tetapkan batas percobaan ulang ke 3–5 kali dan tambahkan jitter.

Error lain pada model ini

Model lain dengan error yang sama

Data diperbarui: 2026-10-10 18:35

Dukungan teknisDukungan langsung
Kembali ke atas