Troubleshooting
Solutions to common problems and issues with Overdeck.PR stuck with stale failed checks after main recovers
A pull request may remainUNSTABLE with a failed test check and
ready_for_merge=0 even though its review, test, and verification stages passed
and main is green. ready_for_merge=0 means the merge gate is deliberately
holding the pull request out of the merge queue because GitHub still reports a
required check failure.
This happens when the pull request’s check ran while main was failing and
GitHub did not run it again after main recovered. The dashboard’s stale-check
re-trigger service detects these inherited failures and re-runs them once. A
red window is the period from a completed failing run on main until the
next completed successful run of the same workflow. The service only acts on a
pull request run created inside a closed red window, never while that workflow
is still failing on main.
The service also requires the GitHub workflow run to have attempt: 1. This
once-only attempt guard means a run that Overdeck already retriggered, including
one that failed again, is not put into a retry loop. Decisions and actions are
logged with the [stale-check-retrigger] prefix.
If the dashboard is down, the run predates the available main history, or the
run is already on attempt 2 or later, re-run the failed jobs manually:
Issue passed review but is missing from Awaiting Merge
The canonical review status may reportreadyForMerge: true while the issue is
missing from Awaiting Merge and merge actions remain disabled. This means a
review.status_changed event was lost, so the dashboard’s event-driven read
model is stale even though the canonical record is correct.
The dashboard checks for this drift every 60 seconds and re-emits canonical
status automatically, so the issue normally repairs itself within one minute.
To recover immediately, open the issue action menu and choose Recover →
Re-sync pipeline state, or run:
WSL2 Stability Issues (Windows Users)
WSL2 can experience crashes and networking issues, especially under heavy AI agent workloads. Here are recommended.wslconfig settings to improve stability.
Recommended Configuration
Create/editC:\Users\<username>\.wslconfig:
.wslconfig:
Windows 10 Limitations
Windows 10 users: Most advanced WSL2 features require Windows 11. On Windows 10, only the basic resource limits and
localhostForwarding/guiApplications settings are supported. Other settings will be silently ignored or may cause instability.
If you experience frequent WSL2 crashes on Windows 10, consider:
- Using only the basic settings shown above (memory, processors, swap, localhostForwarding, guiApplications)
- Reducing
memoryallocation if system is under pressure - Upgrading to Windows 11 for full WSL2 feature support
- Checking Windows Event Viewer for specific crash causes
Additional Windows 10 Workarounds
If NAT networking is unstable on Windows 10:- VPN clients (especially corporate VPNs)
- Docker Desktop (can conflict with WSL networking)
- Third-party firewalls
- Hyper-V virtual switch issues
"Failed to configure network (networkingMode Nat), falling back to networkingMode VirtioProxy."
References:
Slow Vite/React Frontend with Multiple Workspaces
If running multiple containerized workspaces with Vite/React frontends, you may notice CPU spikes and slow HMR. This is because Vite’s default file watching polls every 100ms, which compounds with multiple instances. Fix: Increase the polling interval in yourvite.config.mjs:
Dev server dies with ENOSPC — inotify watch exhaustion
If a workspace’s frontend container crash-loops at startup withENOSPC: System limit for number of file watchers reached while the rest of the host looks healthy, the per-user inotify watch budget (fs.inotify.max_user_watches) is exhausted. This budget is a kernel limit shared by every process and container the user runs — Docker does not isolate it — so a few heavy file watchers can starve every other workspace on the machine.
The dashboard shows a File watchers running low / exhausted banner when usage crosses 80% / 90% of the limit, and pan doctor reports usage, the top consumers, and whether the configured limit survives a reboot.
Fix, in order of leverage:
-
Shrink the watchers. The usual culprit is a huge directory inside the watched project root that the watcher does not ignore by default — e.g. pnpm’s
.pnpm-store/(pnpm places it inside the project when installing into a Docker bind mount, and Vite ignoresnode_modulesbut not.pnpm-store). Add it to the watch ignore list:In one real incident this cut each dev server from ~157k watches to ~13k — a 12× reduction. -
Raise and persist the limit (requires sudo; Overdeck never runs sudo itself):
A
sysctl -walone does not survive a reboot; the/etc/sysctl.dfile does.pan doctorwarns when the live limit is higher than anything persisted.
Corrupted Workspaces
A workspace can become “corrupted” when it exists as a directory but is no longer a valid git worktree. The dashboard will show a yellow “Workspace Corrupted” warning with an option to clean and recreate.Symptoms
- Dashboard shows “Workspace Corrupted” warning
git statusin the workspace fails with “not a git repository”- The
.gitfile is missing from the workspace directory
Common Causes
Resolution
Via Dashboard (recommended):- Click on the issue to open the detail panel
- Click “Clean & Recreate” button
- Review the files that will be deleted
- Check “Create backup” to preserve your work (recommended)
- Click “Backup & Recreate”
Prevention
- Don’t interrupt
pan workspace createcommands - Don’t run
git worktree prunein the main repo without checking for active workspaces - Ensure adequate disk space before creating workspaces
Docker Issues
Container won’t start
”No such network: overdeck”
Permission denied on mounted volumes
If containers run as root and create files, you won’t be able to delete them:Network Issues
HTTPS not working
-
Check certificates exist:
-
Regenerate if missing:
-
Install the CA:
Can’t reach workspace URLs
-
Check Traefik is running:
-
Check DNS resolution:
- Check Traefik dashboard (http://localhost:8080) for routing rules
Agent Issues
Agent stuck / not responding
Agent keeps failing
Check the handoff count in state.json. If it’s high, the task may be too complex:- Breaking the issue into smaller tasks
- Adding more context to the issue description
- Manually handling complex parts
Messages not reaching agent
Use the proper messaging API:Command Deck Issues
Command Deck shows “Unknown project”
A URL such as/command-deck/<slug> shows an Unknown project state when
<slug> matches neither a registered project key nor its display name. This
usually means the URL is stale, the project was renamed, or the project is not
registered on this machine. The page does not open a functional project deck
for that slug.
Use the registered-project buttons in the recovery panel to navigate to a valid
deck, or select Back to Command Deck to return to /command-deck. To inspect
the registered keys from the CLI, run:
Conversation creation fails from a launcher
When a launcher cannot create a conversation, the failure appears inline beside the composer and the typed query remains available for correction or retry. The launcher blocks duplicate keyboard and pointer submissions while creation is in progress, and it opens a conversation pane only after the server reports a successful creation. If the inline error reports an unknown project, use the recovery steps above to open a registered project deck before retrying.Workspace Issues
Workspace creation fails
Can’t delete workspace
If containers created root-owned files:Performance Issues
Dashboard slow to load
High CPU usage
- Check number of concurrent workspaces
- Increase Vite polling interval (see above)
- Run
docker statsto identify resource-heavy containers
High memory usage
Getting Help
Health page
The dashboard’s Health page reports live host, admission, agent, and optional-service health. Use it when the running fleet looks unhealthy: it shows current pressure evidence, spawn headroom, agent/session state, and service state without turning unavailable measurements into zeroes.Diagnostic Information
When reporting issues, include:Resources
- GitHub Issues: https://github.com/eltmon/overdeck/issues
- Documentation: https://docs.overdeck.ai
- CLI Help:
pan --helporpan <command> --help
Related Guides
- Docker & HTTPS Setup - Network configuration
- Architecture - System internals
- Core Commands - CLI reference