Logs
Salin prompt setup yang berisi langkah install dan panduan markdown lengkap untuk plugin ini.
Logs dan Log Insights
Bagian berjudul “Logs dan Log Insights”Aplikasi Logs tab terbuka Wawasan Log secara default. Gunakan Insights untuk memprioritaskan kategori, versi, dan perangkat untuk periode 1, 3, 7, atau 30 hari. Beralih ke Logs subtab saat Anda membutuhkan event perangkat, filter, dan timestamp yang dijelaskan di bawah ini.
Memahami Log Aplikasi
Bagian berjudul “Memahami Log Aplikasi”Subtab Logs menyediakan riwayat detail peristiwa update dan informasi diagnostik untuk aplikasi Anda. Ini berguna untuk mengonfirmasi bukti di level perangkat di balik sebuah Insight, troubleshooting jalur update, dan memahami cara perangkat berinteraksi dengan Capgo. Buka aplikasi, pilih Logs, lalu pilih Logs subtab.

Antarmuka Raw Logs meliputi:
- Subtab Logs — kontrol navigasi untuk setiap baris log.
- Tombol reload — menyegarkan daftar log dengan data terbaru.
- Filter rentang waktu dan aksi — mempersempit aliran event berdasarkan waktu dan aksi.
Setiap baris menampilkan:
- Timestamp (UTC)
- ID Perangkat
- Aksi code (apa yang terjadi)
- Nama versi (bundle atau
builtin)
Klik baris untuk menuju halaman detail perangkat guna melihat riwayat lengkapnya.
Filter berdasarkan Rentang Tanggal
Bagian berjudul “Filter berdasarkan Rentang Tanggal”Anda dapat memfilter log berdasarkan periode waktu tertentu menggunakan date picker:

- Preset Cepat - Pilih rentang waktu umum: 1j, 3j, 6j, atau 12j terakhir
- Waktu Mulai - Atur waktu mulai kustom untuk rentang tersebut
- Waktu Selesai - Atur waktu selesai kustom untuk rentang tersebut
- Kalender - Pilih tanggal tertentu menggunakan tampilan kalender
Klik “Select” untuk menerapkan rentang tanggal yang dipilih, atau “Cancel” untuk menutup pemilih.
Filter berdasarkan Tipe Action
Bagian berjudul “Filter berdasarkan Tipe Action”Dropdown Actions memungkinkan Anda memfilter log berdasarkan tipe event tertentu:

Filter action yang tersedia meliputi:
- Heartbeat perangkat - Pengecekan kesehatan perangkat secara berkala
- Permintaan penghapusan versi - Saat versi bundle dihapus
- Reset ke versi default - Saat perangkat kembali ke bundle bawaan
- Versi berhasil diinstal - Instalasi bundle berhasil
- Versi baru dikirim ke perangkat - Saat Capgo mengirim update ke perangkat
- Instalasi versi gagal - Saat instalasi bundle gagal
Gunakan kotak pencarian di atas untuk mencari tipe aksi tertentu dengan cepat. Anda bisa memilih beberapa aksi untuk menampilkan log yang cocok dengan tipe yang dipilih.
Cuplikan log contoh (data palsu)
Bagian berjudul “Contoh cuplikan log (data palsu)”| Waktu (UTC) | ID Perangkat | Aksi | Versi | Informasi yang ditampilkan |
|---|---|---|---|---|
| 2025-01-14 10:00:01 | A1B2C3 | get | 2.4.1 | Perangkat menanyakan Capgo apakah ada update tersedia |
| 2025-01-14 10:00:03 | A1B2C3 | download_manifest_start | 2.4.1 | Delta download dimulai; SDK akan mengunduh file delta yang berubah |
| 2025-01-14 10:00:07 | A1B2C3 | download_40 | 2.4.1 | Download bundle selesai 40% |
| 2025-01-14 10:00:12 | A1B2C3 | download_zip_complete | 2.4.1 | Download zip selesai |
| 2025-01-14 10:00:13 | A1B2C3 | set | 2.4.1 | Bundle terinstal dan ditandai untuk dijalankan berikutnya |
| 2025-01-14 10:05:00 | B9C8D7 | disableAutoUpdateToMajor | 1.9.0 | Kebijakan channel memblokir lompatan ke 2.x |
| 2025-01-14 10:05:05 | B9C8D7 | rateLimited | builtin | Limit request perangkat tercapai; SDK akan menunggu hingga restart |
Contoh Skenario Log
Bagian berjudul “Contoh Skenario Log”Untuk membantu Anda memahami isi log, berikut adalah contoh urutan yang menunjukkan perjalanan update perangkat secara nyata:
Alur Update Berhasil
Bagian berjudul “Alur Update Berhasil”Inilah tampilan update yang berjalan lancar di dalam log Anda:
| Waktu | ID Perangkat | Aksi | Versi | Apa artinya |
|---|---|---|---|---|
| 10:00:01 | a1b2c3d4 | get | 1.2.0 | Perangkat memeriksa update dan menerima info versi 1.2.0 |
| 10:00:02 | a1b2c3d4 | download_10 | 1.2.0 | Download dimulai, 10% selesai |
| 10:00:03 | a1b2c3d4 | download_50 | 1.2.0 | Download 50% |
| 10:00:05 | a1b2c3d4 | download_complete | 1.2.0 | Download berhasil diselesaikan |
| 10:00:06 | a1b2c3d4 | set | 1.2.0 | Bundle berhasil diinstal dan diaktifkan |
Perangkat Sudah Up-to-Date
Bagian berjudul “Perangkat Sudah Up-to-Date”Saat perangkat mengecek namun sudah memiliki versi terbaru:
| Waktu | ID Perangkat | Aksi | Versi | Apa artinya |
|---|---|---|---|---|
| 14:30:00 | e5f6g7h8 | noNew | 1.2.0 | Perangkat sudah di versi terbaru, tidak perlu update |
Update Gagal dengan Rollback
Bagian berjudul “Failed Update with Rollback”Saat update gagal dan perangkat melakukan rollback:
| Waktu | ID Perangkat | Aksi | Versi | Apa artinya |
|---|---|---|---|---|
| 11:15:00 | i9j0k1l2 | get | 1.3.0 | Perangkat menerima info update |
| 11:15:02 | i9j0k1l2 | download_complete | 1.3.0 | Download selesai |
| 11:15:03 | i9j0k1l2 | set | 1.3.0 | Bundle telah diatur |
| 11:15:10 | i9j0k1l2 | update_fail | 1.3.0 | App crash atau notifyAppReady() tidak dipanggil - rollback dipicu |
| 11:15:11 | i9j0k1l2 | reset | bawaan | Device kembali ke versi bawaan |
Perlu tindakan: Pastikan app Anda memanggil notifyAppReady() setelah inisialisasi berhasil. Lihat dokumentasi plugin detailnya.
Kegagalan Download
Bagian berjudul “Download Failure”Jika masalah jaringan menghambat download:
| Waktu | ID Perangkat | Aksi | Versi | Apa artinya |
|---|---|---|---|---|
| 09:45:00 | m3n4o5p6 | get | 1.2.0 | Perangkat menerima info update |
| 09:45:01 | m3n4o5p6 | download_30 | 1.2.0 | Download dimulai, tapi... |
| 09:45:15 | m3n4o5p6 | download_fail | 1.2.0 | Download gagal (network timeout, koneksi terputus, dll.) |
Perlu tindakan: Perangkat akan mencoba lagi secara otomatis saat aplikasi dibuka kembali. Tidak perlu tindakan apa pun kecuali jika ini terjadi terus-menerus.
Batas Plan Tercapai
Bagian berjudul “Batas Plan Tercapai”Saat akun Anda mencapai batas perangkat:
| Waktu | ID Perangkat | Aksi | Versi | Apa artinya |
|---|---|---|---|---|
| 16:00:00 | q7r8s9t0 | needPlanUpgrade | - | Perangkat ini tidak akan menerima update sampai Anda upgrade atau siklus penagihan direset |
Perlu tindakan: Upgrade plan Anda atau tunggu siklus penagihan berikutnya.
Konfigurasi Channel Memblokir Update
Bagian berjudul “Konfigurasi Channel yang Memblokir Update”Saat pengaturan channel mencegah update:
| Waktu | ID Perangkat | Aksi | Versi | Apa artinya |
|---|---|---|---|---|
| 12:00:00 | u1v2w3x4 | disableAutoUpdateToMajor | 2.0.0 | Perangkat di v1.x tidak bisa auto-update ke v2.x (lompatan major version diblokir) |
| 12:05:00 | y5z6a7b8 | disableEmulator | 1.2.0 | Emulator terdeteksi, dan channel memblokir emulator |
| 12:10:00 | c9d0e1f2 | disableDevBuild | 1.2.0 | Dev build terdeteksi, dan channel memblokir dev build |
Perlu tindakan: Ini adalah proteksi yang disengaja. Jika ingin mengizinkan update ini, ubah pengaturan channel.
Kode log (Capgo backend enum)
Bagian berjudul “Log codes (Capgo backend enum)”Kode-kode ini berasal dari stats_action enum yang digunakan oleh dashboard API (capgo/src/types/supabase.types.ts). Jika Anda melihat code baru di UI, itu dikirim oleh SDK atau backend dan divalidasi terhadap daftar ini.
Alur kerja & siklus hidup
| Code(s) | Arti |
|---|---|
get | Device meminta Capgo untuk bundle yang terhubung ke channel-nya |
download_manifest_start, download_manifest_complete | Delta download dimulai / selesai (untuk bundle yang di-upload dengan delta files) |
download_zip_start, download_zip_complete | Zip archive download dimulai / selesai |
download_10 … download_90 | Milestone progres download |
download_0 | Penanda progres 0% untuk event progres pertama |
download_complete | Seluruh bundle berhasil di-download |
set | Bundle disiapkan untuk launch berikutnya |
reset | Device dikembalikan ke builtin bundle |
delete | Bundle dihapus dari local storage |
uninstall | Uninstall aplikasi terdeteksi |
app_moved_to_foreground, app_moved_to_background | Event lifecycle aplikasi dicatat oleh SDK |
ping | Pengecekan health/heartbeat dari device |
setChannel, getChannel | Channel di-override atau diambil via call SDK |
Perbaikan cepat baru untuk policy-block / throttle
Bagian berjudul “Perbaikan cepat policy-block / throttle”| Code | Penyebab masalah | Langkah selanjutnya |
|---|---|---|
invalidIp | Capgo mendeteksi trafik yang menyerupai bot (IP infrastruktur Google/cloud). | Abaikan jika ini user asli; coba lagi dari perangkat asli dan jaringan normal, atau cek kembali nanti. |
needPlanUpgrade | Organisasi telah mencapai limit plan/perangkat. | Upgrade plan di dashboard atau tunggu siklus penagihan berikutnya. |
semver_error | Versi Native app di config hilang atau semver tidak valid (x.y.z). | Atur plugins.CapacitorUpdater.version ke semver yang valid, lalu verifikasi di Penguji SemVer dan rebuild app tersebut. |
disablePlatformIos | iOS dinonaktifkan dalam kebijakan channel. | Jika ini tidak sengaja, aktifkan iOS di channel tersebut dan publish ulang routing. Jika Anda sengaja memblokir iOS di track ini, biarkan tetap nonaktif dan pindahkan build iOS ke channel terpisah. |
disablePlatformAndroid | Android dinonaktifkan dalam kebijakan channel. | Jika ini tidak sengaja, aktifkan Android di channel tersebut dan publish ulang routing. Jika Anda sengaja memblokir Android di track ini, biarkan tetap nonaktif dan pindahkan build Android ke channel terpisah. |
disableAutoUpdate | Mode auto-update channel memblokir jenis update ini. | Ubah kebijakan auto-update channel (major/minor/patch/metadata/none) untuk mengizinkan rollout yang Anda inginkan. |
disableAutoUpdateUnderNative | Channel diatur untuk memblokir update yang lebih lama dari baseline perangkat. | Push versi yang setara atau lebih tinggi dari baseline native, atau nonaktifkan proteksi under-native tersebut. |
disableAutoUpdateMetadata | Channel memerlukan min_update_version metadata dan aplikasi lebih lama. | Atur min_update_version untuk bundle target atau rilis dari versi native yang lebih baru. |
disableAutoUpdateToMajor | Channel ini memblokir lompatan versi major. | Tetapkan versi major dalam strategi channel yang sama, atau izinkan lompatan major untuk track ini. |
disableAutoUpdateToMinor | Channel ini memblokir lompatan versi minor. | Tetapkan versi minor dalam strategi channel yang sama, atau izinkan lompatan minor untuk track ini. |
disableAutoUpdateToPatch | Channel ini memblokir lompatan patch-level untuk flow ini. | Sesuaikan cadence rilis Anda, atau buka izin lompatan patch pada kebijakan channel untuk track ini. |
disableEmulator | Update emulator tidak diizinkan untuk channel ini. | Jika ini tidak sengaja, aktifkan update emulator di test channel tempat Anda memvalidasi emulator. Jika disengaja, biarkan channel ini memblokir emulator dan gunakan channel lain untuk emulator build. |
disableDevBuild | Dev build diblokir untuk channel ini. | Jika ini tidak sengaja, izinkan dev update atau pindahkan perangkat ini ke channel yang mendukung dev. Jika disengaja, biarkan channel ini terkunci hanya untuk release build. |
disableProdBuild | Build perangkat dalam mode produksi bernama /updates, padahal channel Anda memblokirnya. | Jika ini tidak sengaja, izinkan update produksi di channel tersebut lalu publish ulang. Jika sengaja, pertahankan pembatasan ini dan kirim build produksi ke channel/build yang benar. |
cannotGetBundle | Capgo tidak dapat membuat URL download yang valid untuk bundle yang dipilih. | Upload ulang bundle (dengan --delta jika ingin file delta) dan periksa pengaturan R2/public bundle. |
cannotUpdateViaPrivateChannel | App mencoba pindah sendiri ke channel private yang tidak mengizinkan self-assignment. | Aktifkan allow_device_self_set pada channel tersebut atau pindah ke channel public/yang diizinkan. |
channelMisconfigured | Aturan auto-update channel kekurangan data yang diperlukan (version_number tanpa min_update_version). | Lengkapi konfigurasi yang kurang untuk aturan tersebut atau gunakan mode auto-update yang lebih simpel. |
missingBundle | Bundle tidak memiliki payload yang bisa didownload (kurang external_url/r2_path dan tidak ada file delta). | Build ulang/upload kembali versi tersebut dan pastikan bundle memiliki konten file asli. |
NoChannelOrOverride | Tidak ada channel yang cocok untuk perangkat ini (tidak ada cloud default + tidak ada config fallback + tidak ada override). | Atur channel default di dashboard atau gunakan test defaultChannel pada build tersebut. |
rateLimited | Terlalu banyak panggilan update/channel dalam waktu singkat (sering terjadi di render-loop) setChannel/getChannel). | Jangan panggil di dalam render. Panggil hanya saat ada aksi user. Gunakan defaultChannel di capacitor.config. |
keyMismatch | ID kunci enkripsi app dan bundle berbeda (device_key_id vs bundle_key_id). | Di konsol, bandingkan ID kunci device dan bundle. Jika berbeda, publish dengan kunci yang sama dan versi CLI/plugin yang cocok; encoding kunci bisa berbeda antar versi. |
disableDevice | Perangkat/tablet asli diblokir karena channel ini diatur untuk memblokir perangkat asli. | Jika tidak sengaja, aktifkan real-device updates di channel tersebut. Jika sengaja, biarkan tetap diblokir dan arahkan perangkat asli ke channel lain. |
disablePlatformElectron | Electron diblokir di channel ini. | Jika ini tidak sengaja, aktifkan Electron di channel ini dan publish ulang routing. Jika disengaja, biarkan tetap diblokir dan arahkan pengguna Electron ke channel khusus. |
customIdBlocked | Custom device ID terdeteksi, tetapi aplikasi ini tidak menerima custom ID. | Matikan pengiriman custom ID atau aktifkan custom ID hanya jika workflow Anda membutuhkannya. |
blocked_by_server_url | Aplikasi telah server.url dikonfigurasi, sehingga Capacitor melayani URL remote alih-alih file lokal. | Hapus/bersihkan server.url untuk production build dan biarkan payload update tetap lokal. |
backend_refusal | Updater menggunakan v4, yang sudah tidak didukung oleh backend. | Upgrade plugin/CLI ke v5+ (disarankan v8), dengan Capacitor v5+, lalu rebuild dan publish ulang metadata bundle. |
| Blokir konfigurasi atau kebijakan |
| Code(s) | Alasan update diblokir |
|---|---|
disableAutoUpdate, disableAutoUpdateToMajor, disableAutoUpdateToMinor, disableAutoUpdateToPatch, disableAutoUpdateMetadata, disableAutoUpdateUnderNative | Strategi channel melarang ini lonjakan semver |
disablePlatformIos, disablePlatformAndroid | Platform dinonaktifkan pada channel ini |
disableDevBuild, disableEmulator | Build dev atau emulator tidak diizinkan |
disableProdBuild, disableDevice, disablePlatformElectron | Build production, perangkat asli, atau Electron diblokir untuk channel ini. |
customIdBlocked | Custom device ID tidak diterima untuk aplikasi ini. |
cannotUpdateViaPrivateChannel, NoChannelOrOverride, channelMisconfigured | Pemilihan atau override channel gagal |
missingBundle, cannotGetBundle | Channel mengarah ke bundle yang tidak bisa disajikan Capgo |
needPlanUpgrade | Org mencapai limit plan/perangkat |
Kegagalan download / integritas / instalasi
| Code(s) | Arti |
|---|---|
download_fail | Gagal download bundle (error jaringan atau response) |
download_manifest_file_fail, download_manifest_checksum_fail, download_manifest_brotli_fail | File delta gagal diambil atau divalidasi |
checksum_fail, checksum_required | Cek integritas gagal atau checksum hilang |
unzip_fail, directory_path_fail, canonical_path_fail, windows_path_fail | Validasi file system atau unzip gagal |
decrypt_fail | Gagal dekripsi (bundle terenkripsi) |
update_fail | Bundle terinstal tapi app tidak pernah memanggilnya notifyAppReady(); rollback dipicu |
download_zip_* with no subsequent set | Download selesai tapi fase instalasi tidak pernah tuntas |
Event runtime / platform
Bagian berjudul “Runtime / platform events”| Code(s) | Arti |
|---|---|
app_crash, app_crash_native | Event crash dari layer JavaScript atau runtime native. Metadata biasanya mencakup stack, source, dan info versi aktif. |
app_anr | Android melaporkan Application Not Responding. |
app_killed_low_memory, app_killed_excessive_resource_usage | Terminasi proses aplikasi karena limit memori atau resource. |
app_initialization_failure, app_memory_warning | Startup terganggu atau terjadi memory pressure sebelum runtime normal. |
webview_javascript_error, webview_unhandled_rejection, webview_resource_error, webview_security_policy_violation, webview_unclean_restart, webview_render_process_gone, webview_content_process_terminated | Lifecycle WebView dan error JS/rendering. Install Sentry di layer JS dan native untuk menangkap stack trace, konteks sesi/perangkat, serta URL/state agar perbaikan lebih cepat. |
os_version_changed, native_app_version_changed | Versi OS atau native app berubah; ini membantu membedakan efek rollout level platform dengan perilaku web bundle. |
➡️ Butuh panduan code yang lebih mendalam? Lihat Referensi Lengkap Log Code dan Panduan Debugging.
Mendapatkan Detail Lebih Lanjut Tentang Log
Bagian berjudul “Mendapatkan Detail Lebih Lanjut Tentang Log”Jika Anda mengklik entri log tertentu, biasanya Anda akan diarahkan ke halaman perangkat. Ini memungkinkan Anda melihat riwayat lengkap perangkat tersebut, yang sangat berguna untuk mendiagnosis masalah spesifik perangkat atau memahami riwayat update-nya.
Lanjutkan dari Logs
Bagian berjudul “Lanjutkan dari Logs”Jika Anda menggunakan Logs untuk merencanakan operasi dashboard dan API, hubungkan dengan Ringkasan API untuk detail implementasi di API Overview, Pendahuluan untuk detail implementasi di Introduction, Kunci API untuk detail implementasi di API Keys, Perangkat untuk detail implementasi di Devices, dan Bundle untuk detail implementasi di Bundles.