Troubleshooting Guide
Common Issues
Application Won't Start
Symptoms: Container fails to start or crashes immediately
Solutions:
- Check Docker logs:
docker compose logs lager-guru - Verify environment variables in
.env - Check port availability:
netstat -tulpn | grep 80 - Verify Docker daemon:
docker ps
Database Connection Errors
Symptoms: "Failed to connect to Supabase" or authentication errors
Solutions:
- Verify
VITE_SUPABASE_URLandVITE_SUPABASE_PUBLISHABLE_KEYin.env - Check Supabase project status
- Verify network connectivity
- Check RLS policies allow access
Real-time Updates Not Working
Symptoms: Changes don't appear without refresh
Solutions:
- Check Supabase Realtime is enabled
- Verify WebSocket connection in browser console
- Check RLS policies allow SELECT
- Verify subscription channels are correct
Barcode Scanner Not Working
Symptoms: Camera doesn't open or scanning fails
Solutions:
- Verify HTTPS is enabled (required for camera access)
- Check browser permissions for camera
- Test on different device/browser
- Check console for errors
GPS Tracking Not Working
Symptoms: Driver locations not updating
Solutions:
- Verify location permissions granted
- Check HTTPS is enabled
- Verify
driver_locationstable exists - Check RLS policies for
driver_locations
Build Failures
Symptoms: npm run build fails
Solutions:
- Clear node_modules:
rm -rf node_modules && npm install - Check TypeScript errors:
npx tsc --noEmit - Verify all dependencies installed
- Check for syntax errors
Performance Issues
Symptoms: Slow page loads or laggy UI
Solutions:
- Check network tab for slow requests
- Verify database queries are optimized
- Check for memory leaks
- Review RLS policy performance
- Enable service worker caching
Error Messages
"useAuth must be used within an AuthProvider"
Cause: Component using useAuth outside of AuthProvider
Solution: Wrap component tree with AuthProvider
"Row-level security policy violation"
Cause: RLS policy blocking access
Solution:
- Check user role
- Verify RLS policy conditions
- Check table permissions
"Failed to fetch"
Cause: Network error or CORS issue
Solution:
- Check network connectivity
- Verify Supabase URL is correct
- Check CORS settings in Supabase
- Verify API endpoint exists
Debugging Tips
Enable Debug Logging
Add to browser console:
javascript
localStorage.setItem('debug', 'true')Check Supabase Connection
javascript
import { supabase } from '@/integrations/supabase/client'
const { data, error } = await supabase.from('shipments').select('*').limit(1)
console.log('Connection test:', { data, error })Monitor Realtime Subscriptions
javascript
const channel = supabase.channel('test')
.on('postgres_changes', { event: '*', schema: 'public', table: 'shipments' },
(payload) => console.log('Realtime event:', payload)
)
.subscribe()Check Service Worker
javascript
navigator.serviceWorker.getRegistrations().then(registrations => {
console.log('Service Workers:', registrations)
})Getting Help
Check Logs
Docker logs:
bash
docker compose logs -f lager-guruNginx logs:
bash
sudo tail -f /var/log/nginx/error.logBrowser console: Open DevTools (F12)
Resources
- Runbook - Operational procedures
- Maintenance Guide - Maintenance checklist
- GitHub Issues
Prevention
Best Practices
- Test before deploying - Verify changes locally
- Monitor health endpoint - Set up alerts
- Regular backups - Schedule database backups
- Update dependencies - Keep packages current
- Review logs - Check logs regularly
Monitoring
Set up monitoring for:
- Application health
- Database performance
- Error rates
- Response times
- Resource usage