Kode galat
Galat selalu berbentuk:
{ "code": "validation_failed", "message": "input tidak valid", "fieldErrors": { "route": "channel.route_invalid" } }code stabil dan aman diproses program. message hanya untuk dibaca manusia. fieldErrors (opsional) memetakan nama field ke kode galat.
| Status | code (contoh) |
Arti |
|---|---|---|
| 401 | unauthorized |
Header kosong atau bukan Bearer tpat_…. |
| 401 | auth.invalid_token |
Token tidak dikenal, dicabut, atau kedaluwarsa. |
| 403 | forbidden |
Token tidak punya izin untuk aksi atau objek itu. |
| 403 | pat.not_allowed |
Rute di luar /api/v1/workspaces/.... |
| 403 | quota.channels_exceeded, quota.devices_exceeded, quota.workspaces_exceeded |
Kuota pemilik workspace tercapai. |
| 404 | channel.not_found, device.not_found, … |
Tidak ada, atau tidak boleh dibaca oleh token (tidak dibedakan). |
| 409 | config.not_deliverable, dashboard.version_conflict, … |
Bentrok keadaan, misalnya rule penyimpanan sudah ada atau versi dashboard usang. |
| 422 | validation_failed |
Input tidak valid; lihat fieldErrors. |
| 429 | rate_limited |
Terlalu sering (batas laju). |
| 503 | backend_unreachable |
Web tidak bisa menjangkau backend. |
Kode yang sering muncul
Section titled “Kode yang sering muncul”| Kode | Penyebab dan penanganan |
|---|---|
workspace.last_admin |
Workspace wajib punya minimal satu Admin aktif. Jadikan anggota lain Admin dulu. |
rule.cannot_enable |
Rule belum lengkap atau tidak valid; perbaiki galat per node, lalu aktifkan. |
rule.lua_missing_logic_function |
Skrip Lua harus berbentuk function logicFunction() … end dan return logicFunction(). |
config.no_channel / config.not_deliverable |
Tidak ada channel tujuan yang diikuti (subscribe) device atau gateway-nya. |
config.serial_required |
Device belum punya Serial; isi dulu. |
device.gateway_has_children |
Gateway masih dipakai device lain; lepaskan dulu. |
group.cycle, group.too_deep, group.has_children |
Hierarki group tidak valid atau group masih punya anak. |
invitation.email_mismatch |
Pendaftaran lewat undangan harus memakai e-mail yang sama dengan undangan. |
bootstrap.invalid_proof, bootstrap.disabled |
Proof salah (atau workspace/External ID/nonce salah), atau konfigurasi dinonaktifkan. |
report.busy, report.rows_limit, report.pdf_unavailable |
Report sedang berjalan, data melebihi batas baris, atau layanan PDF tidak tersedia. |
workspace.delete_not_owner, workspace.confirm_mismatch |
Hanya pemilik yang bisa menghapus, dan konfirmasi harus berupa route. |
Tip: tampilkan message kepada pengguna akhir, tetapi percabangan logika program Anda pada code.