Skip to content

Troubleshooting

Solutions to common Devsync issues.

devsync doctor inspects your local Devsync setup and reports any problems it finds. It checks:

  • Repository validity — whether ~/.config/devsync/sync/ exists and is a valid Git repository
  • Manifest integrity — whether manifest.json is present and syntactically valid
  • Age key — whether ~/.config/devsync/age/keys.txt exists and is readable
  • Tracked paths — whether every path registered in the manifest actually exists on disk

Run it any time you suspect something is wrong:

Terminal window
devsync doctor

If doctor reports failures, read the output carefully — each failure message includes the affected component and a suggested next step. The sections below cover the most common failures in detail.


”Age key not found” or decryption errors

Section titled “”Age key not found” or decryption errors”

Cause: ~/.config/devsync/age/keys.txt is missing or has been corrupted.

Fix: Re-register your age private key:

Terminal window
devsync init --key AGE-SECRET-KEY-...

Cause: A file or directory that was previously tracked has been moved or deleted from your local machine.

Fix: Either restore the file to its original path, or remove it from tracking:

Terminal window
devsync untrack ~/.path/to/missing/file

Cause: The manifest file was manually edited and now contains a syntax error.

Fix: Open the sync directory and correct the JSON:

Terminal window
devsync cd
# edit manifest.json to fix the syntax error
exit

“Repository not found” / sync directory missing

Section titled ““Repository not found” / sync directory missing”

Cause: ~/.config/devsync/sync/ was deleted or devsync init was never run on this machine.

Fix: Re-initialize devsync. Pass your remote repository URL to restore from an existing dotfiles repo:

Terminal window
devsync init https://github.com/yourname/dotfiles.git

Or initialize fresh without a remote:

Terminal window
devsync init

Cause: devsync push mirrors files into the local sync directory but does not create a Git commit. Your remote repository is unchanged until you commit and push manually.

Fix: After running devsync push, enter the sync directory and commit:

Terminal window
devsync cd
git add .
git commit -m "Update dotfiles"
git push
exit

Cause: Some files are assigned to a profile other than the one currently active. devsync pull only restores files belonging to the active profile.

Fix: Check which profile is active and switch if needed:

Terminal window
devsync profile list
devsync profile use <name>
devsync pull

Or pull a specific profile without switching:

Terminal window
devsync pull --profile <name>

Encrypted files (.devsync.secret) can only be decrypted with the original age private key used when devsync init was first run.

If you still have the key:

Terminal window
devsync init --key AGE-SECRET-KEY-...
devsync pull

If you have lost the key:

Recommendation: Store your AGE-SECRET-KEY-... value in a password manager (1Password, Bitwarden, etc.) immediately after running devsync init for the first time.


If you want to start completely fresh, remove the entire Devsync configuration directory:

Terminal window
rm -rf ~/.config/devsync/

After resetting, re-initialize:

Terminal window
devsync init