Troubleshooting¶
Cross-cutting troubleshooting guide for common issues across the entire Owlette system.
Agent Won't Connect to Cloud¶
Symptoms: Machine shows offline in dashboard, agent logs show connection errors.
Check:
- Verify internet connectivity on the agent machine
- Check firewall rules — outbound HTTPS (port 443) must be allowed to
*.googleapis.comand*.firebaseio.com - Check
C:\ProgramData\Owlette\logs\service.logfor specific errors - Verify
firebase.enabledistruein config.json - Verify
firebase.site_idmatches a site that exists in Firestore
Common errors:
| Log Message | Cause | Fix |
|---|---|---|
| "Agent not authenticated" | Missing or corrupt tokens | Re-register with a new code |
| "HTTP error 403" | Firestore rules blocking access | Verify security rules are deployed |
| "Token expired" | Refresh failed | Check refresh token in logs, re-register if needed |
| "Connection refused" | Firewall or proxy | Allow outbound HTTPS |
Dashboard Shows Machine Offline¶
Symptoms: Agent is running but dashboard shows offline.
- Check heartbeat age — If last seen was recently, the machine may be experiencing intermittent connectivity
- Check agent service:
sc query OwletteService(should show RUNNING) - Check ConnectionManager state in logs — look for BACKOFF or DISCONNECTED
- Verify site_id — Agent and dashboard must be looking at the same site
- Check Firestore directly — Go to Firebase Console → Firestore →
sites/{siteId}/machines/{machineId}/presence→ checklastHeartbeat
Processes Not Auto-Restarting¶
- Verify
autolaunchistruefor the process - Check if
relaunch_attemptslimit was reached (reboot prompt should appear) - Verify
exe_pathexists on the machine (INACTIVE state means file not found) - Check agent logs for launch errors
- Verify the service is running and the main loop is executing (look for periodic log entries)
OAuth Token Issues¶
"Agent not authenticated - no refresh token found"¶
The encrypted token file is missing or unreadable.
Fix: Re-pair the agent:
- Delete the token file:
del C:\ProgramData\Owlette\.tokens.enc - Run the pairing flow:
C:\ProgramData\Owlette\python\python.exe C:\ProgramData\Owlette\agent\src\configure_site.py - Authorize on the web page that opens, then restart the service
Token refresh failing¶
Check service.log for refresh errors. Common causes:
- Machine ID mismatch — The machine was renamed since registration
- Token revoked — An admin revoked the token from the dashboard
- Network issue — Can't reach the refresh endpoint
Deployment Stuck¶
Symptoms: Deployment shows "downloading" or "installing" indefinitely.
- Check agent logs for download/install progress
- Verify the installer URL is accessible from the agent machine (test in browser)
- Check if the installation timed out (default: 40 minutes)
- For large installers on slow connections, the download may simply be slow
- Try cancelling and re-deploying
Project Distribution Failed¶
- Download failed — Test URL in browser; ensure it's a direct download link
- Extraction failed — Verify the ZIP is valid; check disk space
- Verification failed — Check that verify file paths match the actual ZIP structure
- Permission denied — The extract path may not be writable
MFA Issues¶
Lost Authenticator¶
Use one of your backup codes at the MFA prompt. Each code can only be used once.
No Backup Codes¶
Contact an admin to disable MFA on your account by clearing the mfaEnabled, mfaSecret, and mfaBackupCodes fields in your Firestore user document.
Code Not Working¶
- Ensure your device's clock is synchronized (TOTP is time-based)
- Codes expire every 30 seconds — enter the current one
- Verify you're using the correct account in your authenticator app
Cortex Not Responding¶
- No LLM key configured — Check Cortex settings for API key
- Invalid API key — Verify the key is correct and has credits
- Machine offline — Cortex checks machine status before executing tools
- Tool timeout — Some tools may take longer than 30 seconds; try again
- Rate limited — The API may be rate-limiting requests
Email Alerts Not Working¶
- Verify
RESEND_API_KEYenvironment variable is set in Railway - Check that the Resend API key is valid
- Verify
CRON_SECRETis configured for health check cron - Check Railway cron schedule is set:
*/5 * * * * - Send a test email from Admin Panel → Email Test
- Check spam/junk folders
Dashboard Performance Issues¶
Slow Loading¶
- Cold starts (Railway Hobby plan) — Upgrade to Pro for no cold starts
- Large dataset — Many machines/processes increase Firestore reads
- Bundle size — Check
.next/staticoutput during build
Real-Time Updates Not Working¶
- Check browser console for Firestore listener errors
- Verify Firebase config is correct
- Try hard refresh (Ctrl+Shift+R)
- Check if the Firestore quota has been exceeded
Log Locations¶
Agent Logs¶
| Log | Path |
|---|---|
| Service | C:\ProgramData\Owlette\logs\service.log |
| GUI | C:\ProgramData\Owlette\logs\gui.log |
| Tray | C:\ProgramData\Owlette\logs\tray.log |
| Installer | C:\ProgramData\Owlette\logs\setup.log |
Dashboard Logs¶
| Log | Location |
|---|---|
| Build logs | Railway → Deployments → [deployment] → Logs |
| Runtime logs | Railway → Deployments → [latest] → Logs |
| Client errors | Browser → F12 → Console |
Firestore Logs¶
| Log | Location |
|---|---|
| Rule evaluations | Firebase Console → Firestore → Rules → Monitoring |
| Usage metrics | Firebase Console → Firestore → Usage |
| Auth events | Firebase Console → Authentication → Users |
Debug Mode¶
Run the agent in debug mode for detailed console output:
Requires an elevated (Administrator) command prompt. Shows real-time logging of all service operations.
Getting Help¶
- Check the relevant section of this documentation
- Review agent logs and browser console for specific error messages
- Check the Firestore Data Model to verify data structure
- Open an issue on GitHub