Error Codes

Katalog error code DYOGG — HTTP status, machine-readable code, human message.

Semua error response DYOGG menggunakan error.code machine-readable + error.message human-readable.

HTTP status ↔ error class

StatusClassKapan terjadi
400Bad RequestFormat request salah (invalid UID, missing field).
401UnauthenticatedHeader Authorization hilang atau invalid.
403ForbiddenAPI key valid tapi scope tidak cocok.
404Not FoundResource tidak ditemukan (UID, character ID, dsb).
409ConflictDuplicate submit (mis. Scam Report untuk UID+category+reporter sudah ada).
422Unprocessable EntityBusiness rule violation (mis. reporter melapor UID sendiri).
429Rate LimitedQuota exceeded.
500Internal ErrorBug kami — request_id akan otomatis di-alert ke on-call.
502Bad GatewayUpstream data provider error.
503Service UnavailableCircuit breaker aktif — upstream degraded.
504Gateway TimeoutUpstream timeout >12s.

Katalog error.code

Client errors

CodeHTTPDeskripsi
invalid_uid400UID format salah (harus 9-10 digit angka).
unknown_game400game param bukan genshin/hsr/zzz.
missing_field400Field required kosong (error.field = nama field).
invalid_body400Body JSON tidak parseable.
unauthenticated401Header Bearer hilang / kadaluarsa.
invalid_api_key401Format prefix salah (dyo_test_ / dyo_live_).
insufficient_scope403Key tidak punya scope untuk endpoint ini.
ip_not_allowlisted403Request datang dari IP di luar allowlist project.
player_not_found404UID tidak ada atau showcase disembunyikan.
character_not_found404Avatar ID tidak dikenali.
resource_not_found404Resource ID lain tidak ada.
duplicate_report409Report untuk kombinasi sama sudah exist.
self_report_not_allowed422Reporter melapor UID sendiri.
report_quota_exceeded422Reporter sudah lapor >5 kali hari ini.
rate_limited429Bucket habis — cek Retry-After.

Server / upstream errors

CodeHTTPDeskripsi
internal_error500Bug kami. Reply ke support@dyogg.com dengan request_id.
upstream_error502Data provider return error.
upstream_unavailable503Circuit breaker aktif — retry setelah Retry-After detik.
upstream_timeout504Provider >12s response.

Retry policy

  • Idempotent 5xx (GET): retry with exponential backoff — mulai 1s, kali 2, cap 60s, max 5x.
  • 429: respect Retry-After header.
  • 4xx: jangan retry — fix request dulu.
  • POST/PUT: hanya retry jika response 502/503/504 dan kamu YAKIN request idempotent (mis. sudah ada X-Request-Id unique).

request_id

Setiap response menyertakan meta.request_id. Include ini di email support atau GitHub issue untuk mempercepat investigasi log.