Saat Authelia bermasalah, pengguna tidak bisa login dan semua aplikasi terkunci. Episode ini membedah masalah paling umum: 503 dari proxy, redirect loop, sesi yang tidak konsisten, database tidak tersambung, TOTP gagal, cookie domain mismatch, hingga debug alur autentikasi langkah demi langkah.

Episode 28 membuat Authelia cepat. Sekarang bagian yang tidak bisa dihindari: hari ketika sesuatu rusak. Gejala Authelia bisa menyesatkan — pengguna melihat "halaman tidak bisa diakses", padahal akar masalahnya jauh di dalam konfigurasi. Episode 29 melatih kalian menelusuri gejala sampai ke akar.
Kunci troubleshooting Authelia adalah memahami arus: browser → reverse proxy → Authelia (verify) → Redis (sesi) → database (data) → redirection. Setiap gejala bisa dipetakan ke salah satu tautan dalam rantai ini. Mulailah dari yang paling sering terjadi.
Gejala paling umum: semua aplikasi menampilkan 502 atau 503, seolah tidak ada yang hidup. Padahal Authelia berjalan. Yang terjadi hampir selalu salah satu dari:
curl -fsS http://authelia:9091/api/health. Gagal berarti masalah network, DNS, atau container tidak hidup./api/verify, bukan root /. Pastikan URL auth di konfigurasi proxy persis.authelia_request_duration dari episode 26.Urutan pemeriksaan: container hidup? → health check lulus? → network tersambung? → endpoint benar?
Pengguna login, berhasil, lalu diarahkan balik ke halaman login terus-menerus. Ini gejala klasik sesi tidak terlihat oleh instance yang mengevaluasi verify. Dua penyebab utama:
session.redis tidak konsisten antar-instance (ingat episode 24).Set-Cookie.Periksa dengan browser developer tools: apakah cookie authelia_session ter-set, di domain apa, dan apakah ikut terkirim pada request verify. Kalau cookie hilang di tengah jalan, masalahnya ada di header yang di-strip proxy.
Sesi berperilaku aneh — login ulang terus, atau berhenti total. Periksa urutan ini:
redis-cli ping dari sisi Authelia.session.expiration dan session.inactivity yang agresif membuat sesi mati terlalu cepat. Cocokkan dengan harapan pengguna dan kebijakan keamanan.Authelia gagal menyimpan atau membaca data MFA. Log menunjukkan error koneksi atau error enkripsi:
storage. Verifikasi langsung dengan psql -U authelia -h postgres -d authelia -c 'SELECT 1'.storage.encryption_key berbeda dengan saat data ditulis. Ini selalu berujung pada rotasi yang tidak disengaja — restore secret dari backup (episode 27).Pengguna yakin kode TOTP-nya benar, tapi selalu ditolak. TOTP adalah fungsi waktu — kode hanya valid dalam jendela 30 detik yang dihitung dari jam server. Selisih jam antara server Authelia dan perangkat pengguna, atau jam server yang melenceng sendiri, menyebabkan kode selalu salah.
Authelia memeriksa waktu lewat NTP bawaan. Pastikan server sehat secara waktu:
timedatectl status
chronyc trackingSelain itu, perhatikan totp.skew di konfigurasi — berapa jendela waktu (default 1) yang ditoleransi. Naikkan sedikit saat transisi perangkat, tapi jangan terlalu longgar; itu melemahkan jaminan keamanan TOTP yang dibangun di episode 9.
Cookie sesi hanya dikirim untuk domain yang cocok. Jika Authelia di auth.example.com tetapi cookie di-set untuk domain example.com atau sebaliknya, sesi tidak pernah tiba. Konfigurasi sesi multi-domain di Authelia modern didefinisikan di blok cookies — setiap entri punya domain dan authelia_url sendiri. Pastikan keduanya konsisten dengan cara proxy mengarahkan request.
Tip
Semua masalah di atas punya pola yang sama: gejala di permukaan, akar di konfigurasi. Selalu mulai dari log dan health check sebelum mengganti konfigurasi secara membabi buta. Satu perubahan konfigurasi sekaligus, lalu uji.
Dua alat yang menyelesaikan setengah masalah sebelum menyentuh runtime. Pertama, validasi konfigurasi — Authelia menolak konfigurasi yang tidak valid sejak awal, jadi error syntax ketahuan lebih dulu:
authelia validate-config --config /config/configuration.ymlKedua, uji keputusan access control secara logis — lebih cepat daripada me-reload browser:
authelia access-control check-policy \
--config /config/configuration.yml \
--user arman \
--url https://app.example.comPerintah ini menjawab pertanyaan "apa kebijakan yang diterima user ini untuk URL ini?" — alat debugging terbaik untuk aturan yang membingungkan dari episode 6.
Saat masalah berhasil lewat dari validasi, log adalah saksi utama. Naikkan level ke debug untuk melihat alur keputusan otorisasi, lalu amati pesan per langkah. Pertanyaan kunci yang dijawab log:
Satu pola yang sering menyesatkan: error di log level error pada request verify biasanya adalah respons yang diharapkan untuk user yang belum login — verify mengembalikan 401/302 dan itu normal. Jangan baca log tanpa memahami alur; baca log sambil melihat respons HTTP yang sebenarnya.
Episode 29 membekali kalian keterampilan detektif: memetakan enam masalah paling umum — 503 dari proxy, redirect loop, sesi, database, TOTP yang bergantung sinkronisasi waktu, dan cookie domain mismatch — lalu menangani masing-masing dari akar, memvalidasi konfigurasi dengan authelia validate-config, menguji aturan dengan authelia access-control check-policy, dan membaca log debug tanpa salah tafsir.
Poin kunci:
debug + check-policy adalah pasangan debugging terbaik.Semua keterampilan sudah dimiliki. Episode 30 — episode terakhir — merangkum semuanya dalam Production Checklist & Best Practices: daftar periksa pra-produksi, praktik terbaik keamanan dan operasional, jebakan umum, rekap perjalanan, dan masa depan Authelia. Sampai jumpa di episode 30!