21. Panduan Troubleshooting & Perbaikan Eror

Ringkasan

Panduan ini berisi solusi langkah-demi-langkah untuk mengatasi masalah umum seputar setup, otentikasi, koneksi database, dan penyebaran server.


Masalah Umum & Solusi

1. Eror Koneksi Prisma (PrismaClientInitializationError)

Gejala: Can't reach database server at localhost:3306 atau Access Denied.

Penyebab: Kredensial database pada .env salah atau server MySQL belum dinyalakan.

Solusi:

  • Periksa nilai DATABASE_URL pada .env.
  • Verifikasi host, port, username, password, dan nama database.
  • Uji koneksi MySQL via CLI: mysql -u root -p.
  • 2. Eror Rahasia NextAuth (NO_SECRET)

    Gejala: [next-auth][error][NO_SECRET] Please define a secret in NextAuth options.

    Penyebab: Variabel lingkungan NEXTAUTH_SECRET belum diisi.

    Solusi:

    Tambahkan string rahasia minimal 32 karakter pada .env:

    env
    NEXTAUTH_SECRET="string-rahasia-random-minimal-32-karakter"

    3. Peringatan Fallback Memori Rate Limiter

    Gejala: Log menunjukkan Upstash Redis credentials missing. Falling back to in-memory rate limiting.

    Penyebab: UPSTASH_REDIS_REST_URL tidak diisi.

    Solusi: Ini adalah peringatan normal. Sistem secara otomatis beralih ke rate limiter memori lokal secara gratis. Untuk menggunakan Redis di produksi, masukkan kredensial Upstash pada .env.


    Berkas Terkait

  • .env.example — Template environment
  • src/lib/rate-limit.ts — Helper fallback rate limiter
  • src/server/auth/config.ts — Konfigurasi NextAuth