Troubleshooting & Batasan Fitur

Masalah Umum

Tidak bisa login

Gejala: Email/password ditolak, kembali ke halaman login.

Solusi:

  1. Pastikan email terdaftar di database (User table).
  2. Minta admin reset password via Manajemen Sistem → Guru & Staf atau Siswa & Orang Tua.
  3. Pastikan NEXTAUTH_SECRET dan NEXTAUTH_URL benar di production.
  4. Clear cookie browser dan coba lagi.

Error "Cannot read properties of undefined (reading 'findMany')"

Gejala: Halaman admin/guru crash dengan error Prisma.

Penyebab: Prisma Client belum di-regenerate setelah perubahan schema.

Solusi:

npx prisma generate
# Restart server Next.js

Pembayaran tidak terupdate setelah bayar

Gejala: Status tagihan tetap UNPAID padahal sudah bayar di Midtrans.

Solusi:

  1. Cek webhook Midtrans mengarah ke https://domain.com/api/webhooks/midtrans
  2. Pastikan MIDTRANS_SERVER_KEY benar (sandbox vs production).
  3. Cek log server untuk error webhook.
  4. Admin dapat menandai lunas manual di Daftar Pembayaran.

QR Penjemputan ditolak

Gejala: Scanner menampilkan error "expired" atau "tidak dikenal".

Solusi:

  1. QR Harian: Pastikan QR di-refresh (berlaku 5 menit). Minta ortu buka ulang halaman penjemputan.
  2. Delegasi: Tiket single-use — tidak bisa dipakai dua kali.
  3. Pastikan wali/penjemput terdaftar di Wali Penjemput.
  4. Pastikan NEXTAUTH_SECRET sama antara generate dan verify token.

Pesan ke guru tidak terkirim (Quiet Hours)

Gejala: Tombol kirim disabled atau pesan ditolak.

Penyebab: Fitur Quiet Hours aktif di luar jam kerja.

Solusi:

  1. Tunggu jam aktif (default 06:00–21:00 WIB).
  2. Admin dapat menyesuaikan di Konfigurasi Sistem (QUIET_HOURS_*).

Virtual Tour tidak tampil

Gejala: Halaman /virtual-tour hanya menampilkan placeholder.

Solusi: Admin → Manajemen Sistem → Konfigurasi Sistem → bagian Portal Publik — Virtual Tour 360° → isi URL embed yang valid → Simpan.

Virtual Tour: "This content is blocked"

Gejala: Iframe menampilkan pesan This content is blocked. Contact the site owner to fix the issue.

Penyebab umum:

  1. URL bukan format embed (mis. link Matterport ?m=example yang tidak valid).
  2. Penyedia tour melarang iframe (gunakan URL embed resmi dari Matterport/Kuula).

Solusi:

  1. Pastikan URL Matterport memakai format: https://my.matterport.com/show/?m=MODEL_ID
  2. Salin URL dari menu Embed di dashboard Matterport, bukan dari address bar biasa.
  3. Klik Buka Virtual Tour di bawah iframe untuk membuka di tab baru sebagai alternatif.
  4. Setelah update middleware, restart server Next.js (npm run dev atau pm2 restart).

Cron tagihan tidak jalan

Gejala: Tagihan bulanan tidak terbuat otomatis.

Solusi:

  1. Pastikan crontab/serverless scheduler memanggil /api/cron/generate-tagihan.
  2. Pastikan header Authorization: Bearer {CRON_SECRET} benar.
  3. Pastikan kategori punya isAutoGenerate: true dan tipePeriode: BULANAN.
  4. Cek apakah tagihan bulan ini sudah pernah dibuat (sistem skip duplikat).

Build gagal di production

Solusi:

npx prisma generate
npm run build

Pastikan DATABASE_URL tersedia saat build jika halaman membutuhkan koneksi DB.

db:seed gagal — kolom tidak ada di database

Gejala: Error Prisma P2022 — kolom seperti waktuKejadian atau konteksEnv tidak ditemukan.

Penyebab: Schema Prisma belum di-push ke database.

Solusi:

npx prisma db push --accept-data-loss
npm run db:seed

Grafik tren perkembangan kosong di portal ortu

Gejala: Halaman Perkembangan tidak menampilkan line chart.

Solusi:

  1. Pastikan guru sudah mengisi Perkembangan Harian dengan indikator perkembangan (bukan hanya indikator kurikulum lama).
  2. Jalankan ulang seed demo: npm run db:seed — siswa Kiki (202601001) memiliki data observasi multi-hari.
  3. Pilih anak yang benar di pemilih siswa.

Intervensi tidak muncul otomatis

Gejala: Guru mengisi skor MB berulang tetapi tidak ada rekomendasi intervensi.

Solusi:

  1. Pastikan indikator memiliki spiTriggerMin dan spiTriggerSesi yang dikonfigurasi di Indikator Perkembangan.
  2. Pastikan Bank Intervensi terhubung ke indikator tersebut.
  3. Trigger SPI dievaluasi saat simpan observasi — cek log server jika masih gagal.

Fitur yang Belum Tersedia

Dokumentasikan ekspektasi berikut agar pengguna tidak mengharapkan fitur yang belum diimplementasikan:

FiturStatusAlternatif Saat Ini
Bus tracking GPS liveBelum tersedia
Auto-debet payment gatewayBelum tersediaCicilan manual di admin
Push notification WhatsAppBelum tersediaNotifikasi in-app / inbox
OCR dokumen PPDBBelum tersediaVerifikasi manual admin
Sound announcement penjemputanBelum tersediaNotifikasi ke ponsel ortu
Email otomatis kuitansiBelum tersediaUnduh PDF dari portal ortu
Log pajak otomatisBelum tersediaExport manual dari laporan
Sizing seragam di PPDBBelum tersedia
Video benchmark inter-rater reliabilityBelum tersediaKuis teks di modul pelatihan
Rekaman suara anekdotBelum tersediaCatatan teks + lampiran foto/video
Cloud storage terpisah untuk portofolioBelum tersediaURL lampiran eksternal / upload lokal

Kontak Dukungan Teknis

Untuk masalah yang tidak terselesaikan di atas:

  1. Cek log server (pm2 logs atau output npm run dev).
  2. Cek Prisma Studio: npx prisma studio.
  3. Hubungi tim developer dengan menyertakan: URL halaman, peran user, pesan error, dan screenshot.