Troubleshooting
Note
This feature is experimental and may change without notice in future releases.
Test Sync Availability
From a workspace terminal, test if sync is working using coder exp sync ping:
coder exp sync ping
- If sync is working, expect the output to be
Success. - Otherwise, you will see an error message similar to the below:
error: connect to agent socket: connect to socket: dial unix /tmp/coder-agent.sock: connect: permission denied
Check Unit Status
You can check the status of a specific unit using coder exp sync status:
coder exp sync status git-clone
If the unit exists, you will see output similar to the below:
# coder exp sync status git-clone
Unit: git-clone
Status: completed
Ready: true
If the unit is not known to the agent, you will see output similar to the below:
# coder exp sync status doesnotexist
Unit: doesnotexist
Status: not registered
Ready: true
Dependencies:
No dependencies found
Common Issues
Workspace startup script hangs
If the workspace startup scripts appear to 'hang', one or more of your startup scripts may be waiting for a dependency that never completes.
- Inside the workspace, review
/tmp/coder-script-*.logfor more details on your script's execution.Tip: add
set -xto the top of your script to enable debug mode and update/restart the workspace. - Review your template and verify that
coder exp sync complete <unit>is called after the script completes e.g. with an exit trap. - View the unit status using
coder exp sync status <unit>.
Workspace startup scripts fail
If the workspace startup scripts fail:
-
Review
/tmp/coder-script-*.loginside the workspace for script errors. -
Verify the Coder CLI is available in
$PATHinside the workspace:command -v coder
Cycle detected
If you see an error similar to the below in your startup script logs, you have defined a cyclic dependency:
error: declare dependency failed: cannot add dependency: adding edge for unit "bar": failed to add dependency
adding edge (bar -> foo): cycle detected
To fix this, review your dependency declarations and redesign them to remove the cycle. It may help to draw out the dependency graph to find the cycle.


