TKK_E32230814/RAILWAY_TROUBLESHOOTING.md

3.9 KiB

Railway Worker Troubleshooting Guide

Masalah: Jadwal tidak berjalan, tidak ada log di Railway

Langkah Diagnosis:

1. Check Railway Worker Status

Di Railway Dashboard:

  • Masuk ke project ApsGo
  • Klik service worker
  • Tab Deployments → Lihat status deployment terakhir
  • Tab Logs → Periksa apakah worker running

Expected logs:

🚀 Starting ApsGo Railway Worker...
📡 Firebase Project: project-ta-951b4
📦 Redis: xxxx:6379
⏰ Timezone: Asia/Jakarta (Current: 11/02/2026 14:30:00)
✅ All required environment variables are set
✅ Firebase Admin initialized
✅ Redis connected
✨ ApsGo Railway Worker is running!

2. Test Environment Variables

Di Railway Console, jalankan debug script:

# Di Railway service console
npm run debug

Atau manual check:

3. Test Firebase Configuration

Check apakah Flutter app berhasil menyimpan jadwal:

  • Buka Firebase Console → Realtime Database
  • Check node /kontrol
  • Harus ada data seperti:
{
  "waktu": true,
  "waktu_1": "08:00",
  "waktu_2": "16:00",
  "durasi_1": 600,
  "durasi_2": 600
}

4. Time Sync Check

  • Railway Worker menggunakan timezone Asia/Jakarta
  • Check apakah jadwal yang di-set di Flutter sesuai dengan waktu sekarang
  • Test dengan set jadwal 1-2 menit dari waktu sekarang

🛠️ Solusi untuk Masalah Umum

Problem: "Firebase initialization failed"

Cause: Environment variables salah/kurang

Solution:

  1. Re-download Service Account Key dari Firebase Console
  2. Extract 4 values yang dibutuhkan
  3. Set ulang variables di Railway
  4. PENTING: FIREBASE_PRIVATE_KEY harus dalam quotes dan dengan \n escaped

Problem: "Redis connection error"

Cause: Redis service tidak active

Solution:

  1. Railway Dashboard → Add Redis Database
  2. Link ke worker service
  3. Restart worker

Problem: "Worker tidak trigger jadwal"

Cause: Timezone mismatch atau konfigurasi salah

Solution:

  1. Check /kontrol di Firebase ada data
  2. Check waktu: true
  3. Check jadwal format "HH:MM" (e.g., "08:00")
  4. Test dengan jadwal dekat waktu sekarang

Problem: "No logs di Railway"

Cause: Worker crash saat startup

Solution:

  1. Check Deployments tab - ada error saat build?
  2. Check Logs tab - ada error message?
  3. Run debug script: npm run debug

🔍 Debug Commands

Local Debug (di komputer Anda)

cd railway-worker
npm install
node debug.js

Railway Debug (di Railway Console)

npm run debug

Manual Test (di Railway Console)

# Check environment
env | grep FIREBASE

# Test Firebase connection 
node -e "console.log('DB URL:', process.env.FIREBASE_DATABASE_URL)"

# Test current time
node -e "console.log('Time:', new Date().toLocaleString('id-ID', {timeZone: 'Asia/Jakarta'}))"

Quick Fix Checklist

  • Railway worker service running (green status)
  • All 4 Firebase environment variables set correctly
  • Redis database service added and linked
  • Firebase Realtime Database rules allow admin access
  • Flutter app successfully saved schedule (/kontrol node exists)
  • Timezone configured as Asia/Jakarta
  • Test schedule set within 1-2 minutes from current time

📞 Still Having Issues?

  1. Export Railway logs: Logs tab → Copy all logs
  2. Export Firebase /kontrol data: Firebase Console → Export JSON
  3. Screenshot Flutter schedule configuration
  4. Run npm run debug dan copy output

With this information, the issue can be diagnosed precisely.