Error dan Status Code

Referensi cepat kode kesalahan di seluruh permukaan Hubina. Tabel lengkap per jalur ada diREST API dan SMTP.

REST API

HTTPerrorPenyebab umum
400invalid_requestJSON rusak, field wajib kosong, >50 penerima, subjek >998 karakter, isi >1.000.000 karakter, body >2 MB
401unauthorizedAPI key tidak ada, salah format, atau dicabut
403sender_not_authorizedDomain pengirim bukan milik akun ini atau belum terverifikasi
403insufficient_balanceSaldo tersedia kurang dari rate akun
404not_foundPath salah, atau memanggil host yang bukan api.hubina.net
409billing_conflictIdempotency-Key dipakai ulang dengan payload berbeda, atau mengulang key yang sudah gagal
429rate_limited>60 permintaan kirim per menit per akun + key
503provider_unavailablePenyedia pengiriman tidak dapat dihubungi
500server_errorKesalahan tak terduga; aman untuk di-retry dengan Idempotency-Key yang sama

Format error selalu sama, dengan tambahan retryAfter untuk 429:

{
  "error": "sender_not_authorized",
  "message": "Sender atau domain tidak diizinkan."
}

SMTP

KodePenyebab umum
421 4.7.0Koneksi bersamaan atau percobaan koneksi melebihi batas
451 4.3.0Kegagalan sementara: cek domain terganggu, duplikat masih diproses, atau hasil belum pasti
452 4.2.2Saldo Hubina tidak cukup
452 4.5.3Penerima melebihi 50
452 4.7.0Rate limit pengiriman (300 pesan/jam per key)
504 5.5.4Mekanisme AUTH tidak didukung (hanya PLAIN dan LOGIN)
530 5.7.0Perintah dikirim sebelum autentikasi
535 5.7.8API key salah atau dicabut
538 5.7.0Autentikasi dicoba sebelum TLS (STARTTLS belum aktif)
550 5.6.0Pesan tidak punya From: / Subject: yang valid
550 5.7.0Message-ID yang sama dipakai dengan isi berbeda
550 5.7.1Domain sender (envelope atau header) tidak terverifikasi
552 5.3.4Pesan >10 MB atau header >256 KB
554 5.7.0Penyedia menolak permanen saat submit — tidak ada tagihan

Pola penanganan yang benar

  • 4xx sementara (421/451/452 4.7.0): retry dengan backoff. Pakai Message-ID (SMTP) atau Idempotency-Key (REST) yang sama.
  • 5xx permanen (535/550/552/554): jangan ulangi tanpa memperbaiki penyebabnya.
  • Saldo (452 4.2.2 / 403 insufficient_balance): top up; retry setelah saldo cukup.
  • 503 provider_unavailable: gangguan sementara di sisi penyedia; retry bertahap, tidak ada tagihan untuk percobaan yang gagal total.

Di halaman ini