Lewati ke konten utama

Errors

Semua response non-/health pake shape ErrBody { error } waktu gagal. HTTP status code map ke kategori failure-nya.

StatusArti
400JSON malformed / argumen wajib ilang
401token salah / gak ada
403endpoint butuh auth elevated (mis. dispatch encrypted)
404command / route gak dikenal
429bucket PIN dikunci (terlalu banyak salah PIN)
500dispatcher panic atau return Err(...)

Bentuk response

{ "error": "wrong pin" }

Selalu JSON, bahkan di 4xx — klien bisa konsisten if (!resp.ok) { const { error } = await resp.json(); ... }.

Bedain kasus 404

Ada dua varian 404:

  • Route gak dikenal — kamu hit path yang gak ada. Di-return sebagai HTML plain dari fallback default axum.
  • Command gak dikenal — kamu POST /invoke dengan cmd yang dispatcher gak kenal. Return-nya {"error":"unknown command: <name>"}.

Kalau ragu apakah suatu fitur sudah expose, cek source dispatcher (api_dispatch.rs) sebelum bikin issue.

Error dispatcher

Mayoritas response 500 dateng dari Tauri command yang return Err(...) (network failure, race file-system, lua compile error). Teks error-nya forward verbatim — gak di-scrub — jadi message yang keliatan persis sama dengan yang di-log bot.

Kalau 500 keterusan tanpa cause yang jelas, tail events stream — error yang sama biasanya muncul di sana dengan context lengkap (bot mana, packet mana, scope mana).