Errors
Semua response non-/health pake shape ErrBody { error } waktu
gagal. HTTP status code map ke kategori failure-nya.
| Status | Arti |
|---|---|
400 | JSON malformed / argumen wajib ilang |
401 | token salah / gak ada |
403 | endpoint butuh auth elevated (mis. dispatch encrypted) |
404 | command / route gak dikenal |
429 | bucket PIN dikunci (terlalu banyak salah PIN) |
500 | dispatcher 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 /invokedengancmdyang 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).