| Gejala |
Penyebab |
Solusi |
| “Izin kamera ditolak” |
Browser tidak diberi izin kamera. |
Buka pengaturan situs (ikon gembok di samping alamat), izinkan Kamera, lalu tekan Coba lagi. Sementara itu pakai Catat manual. |
| “Kamera butuh koneksi aman” |
Aplikasi dibuka lewat http://. |
Buka lewat https://. Hanya localhost yang boleh memakai http://. |
| “Kamera tidak tersedia” |
Tidak ada kamera, atau dipakai aplikasi lain. |
Tutup aplikasi lain yang memakai kamera lalu tekan Coba lagi. |
| QR tidak terbaca |
Cahaya kurang, pantulan, atau jarak salah. |
Dekatkan 15 sampai 25 cm, hindari pantulan, tahan HP stabil. |
| “Koneksi terputus, scan ini tidak tercatat.” |
Internet putus. |
Sambungkan lagi lalu scan ulang. Scan itu tidak tersimpan. |
| “Di luar waktu …” |
Jam di luar jendela sholat yang dipilih. |
Pilih sholat yang benar, atau minta admin mengubah jam di Jadwal sholat. |
| “Kartu tidak dikenali” |
Kartu sudah diterbitkan ulang, atau bukan kartu aplikasi ini. |
Pakai kartu terbaru. |
| “Sholat (nama) sedang tidak dicatat” |
Sholat dimatikan, dibatasi hari atau tanggal, atau ditiadakan di tanggal itu. |
Pilih sholat lain, atau tanyakan ke admin. |
| “Hari ini libur” padahal masuk |
Tanggal terdaftar di Hari libur. |
Admin menghapusnya di menu Hari libur. |
| Gejala |
Penyebab |
Solusi |
| “Email atau password salah.” |
Salah ketik, atau akun nonaktif. |
Periksa ulang. Minta admin mengatur ulang password atau mengaktifkan akun. |
| “Terlalu banyak percobaan masuk.” |
5 kali gagal berturut-turut mengunci akun 15 menit. |
Tunggu 15 menit, atau minta admin mengatur ulang password. |
| Tiba-tiba keluar sendiri |
Sesi habis (12 jam), password diganti, atau sesi dicabut admin. |
Masuk lagi. |
| “Akun Google ini belum terhubung ke akun staf.” |
Google belum dihubungkan. |
Masuk dengan password lalu Akun > Hubungkan Google, atau minta admin mengundang ulang. |
| “Akun Google ini sudah terhubung ke akun staf lain.” |
Satu akun Google hanya untuk satu staf. |
Pakai akun Google lain. |
| “Undangan tidak valid, sudah dipakai, atau kedaluwarsa.” |
Tautan lebih dari 7 hari, dipakai, atau diganti undangan baru. |
Admin menekan Kirim ulang dan memakai tautan terbaru. |
| “Akun ini dinonaktifkan.” |
Status staf Nonaktif. |
Hubungi admin. |
| Tidak bisa memutuskan Google |
Akun belum punya password. |
Buat password dulu di menu Akun. |
| Gejala |
Penyebab |
Solusi |
redirect_uri_mismatch |
Redirect URI di Google tidak sama persis dengan APP_URL + /api/v1/auth/google/callback. |
Samakan persis (https, tanpa slash akhir, tanpa www yang tidak dipakai). Tunggu beberapa menit setelah mengubah. |
Access blocked / app not verified |
Aplikasi masih Testing di Google. |
Publish app di OAuth consent screen. |
| “Login Google belum diaktifkan di aplikasi ini.” |
GOOGLE_CLIENT_ID atau GOOGLE_CLIENT_SECRET kosong. |
Isi lalu deploy ulang. |
Email gagal terkirim, log berisi Invalid login |
Gmail memakai password akun, bukan App Password. |
Buat App Password 16 karakter dan pakai sebagai SMTP_PASS. Pastikan verifikasi 2 langkah aktif. |
| Email gagal terkirim, pengirim ditolak |
EMAIL_FROM bukan akun atau domain terverifikasi. |
Samakan dengan akun SMTP atau pengirim terverifikasi di penyedia. |
| “Pengiriman email belum diatur” |
SMTP_HOST atau EMAIL_FROM kosong. |
Isi lalu deploy ulang. Sementara itu salin tautan undangan dan kirim sendiri. |
| Gejala |
Penyebab |
Solusi |
| Satu siswa muncul dua kali untuk sholat yang sama di rekap |
Unique index belum terbentuk di database. |
Hapus data gandanya, lalu jalankan bun run db:push. Lihat Deploy. |
| Log build berisi “PERINGATAN: db push gagal” |
prisma db push gagal, biasanya karena data ganda lama atau database tidak terjangkau. |
Jalankan bun run db:push manual untuk melihat pesan lengkap, lalu perbaiki. |
| Aplikasi langsung error saat start |
DATABASE_URL atau JWT_SECRET kosong atau tidak valid. |
Isi sesuai .env.example. Pesan error menyebut variabelnya. |
| Tidak bisa terhubung ke MongoDB Atlas |
Akses jaringan belum diizinkan untuk hosting. |
Izinkan IP hosting (Vercel) di Network Access Atlas. |
| Siswa tidak muncul di rekap |
Status Nonaktif. Rekap hanya menghitung siswa aktif. |
Ubah status menjadi Aktif di menu Siswa. |
| Impor CSV melewati beberapa baris |
ID sudah ada, atau format baris salah. |
Baca alasan per baris di hasil impor. |
| Kartu tercetak terpotong |
Skala cetak bukan 100% atau header/footer aktif. |
Atur A4, skala 100%, matikan header dan footer. |
Catat pesan yang muncul dan langkah yang dilakukan, lalu hubungi admin sekolah atau pengembang aplikasi.