3.9 KiB
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:
- Go to Variables tab
- Pastikan ada 4 variables ini:
FIREBASE_PROJECT_ID= project-ta-951b4FIREBASE_CLIENT_EMAIL= firebase-adminsdk-xxxxx@project-ta-951b4.iam.gserviceaccount.comFIREBASE_PRIVATE_KEY= "-----BEGIN PRIVATE KEY-----\n...\n-----END PRIVATE KEY-----\n"FIREBASE_DATABASE_URL= https://project-ta-951b4-default-rtdb.firebaseio.com
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:
- Re-download Service Account Key dari Firebase Console
- Extract 4 values yang dibutuhkan
- Set ulang variables di Railway
- PENTING:
FIREBASE_PRIVATE_KEYharus dalam quotes dan dengan\nescaped
Problem: "Redis connection error"
Cause: Redis service tidak active
Solution:
- Railway Dashboard → Add Redis Database
- Link ke worker service
- Restart worker
Problem: "Worker tidak trigger jadwal"
Cause: Timezone mismatch atau konfigurasi salah
Solution:
- Check
/kontroldi Firebase ada data - Check
waktu: true - Check jadwal format "HH:MM" (e.g., "08:00")
- Test dengan jadwal dekat waktu sekarang
Problem: "No logs di Railway"
Cause: Worker crash saat startup
Solution:
- Check Deployments tab - ada error saat build?
- Check Logs tab - ada error message?
- 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 (
/kontrolnode exists) - Timezone configured as Asia/Jakarta
- Test schedule set within 1-2 minutes from current time
📞 Still Having Issues?
- Export Railway logs: Logs tab → Copy all logs
- Export Firebase
/kontroldata: Firebase Console → Export JSON - Screenshot Flutter schedule configuration
- Run
npm run debugdan copy output
With this information, the issue can be diagnosed precisely.