Skip to content

Troubleshooting

Start here:

Terminal window
polyforge doctor

It checks that mise is present and trusted, that the wrappers resolved on PATH, and that the configuration fragments parse.

Cause. Almost always a shell that has not reloaded its profile.

Activation writes to your shell profile; the session that ran it does not see the change.

  1. Open a new shell.

  2. If it still fails, re-run activation and check for errors:

    Terminal window
    .\polyforge.ps1 activate
  3. Confirm the profile was actually written — $PROFILE on Windows, ~/.bashrc or ~/.zshrc on POSIX. A shell using a different profile file than the one activation wrote to is the usual second cause.

The command works, but only in some directories

Section titled “The command works, but only in some directories”

That is by design. The wrappers walk up the tree to find the workspace root and refuse to run outside a PolyForge repository. Any depth inside the repo is fine.

Cause. mise trust has not run on this machine, or was reset.

Terminal window
polyforge activate

This is a security boundary, not a bug: mise config can define tasks and environment variables, so it will not execute config it has not been told to trust — and a repository cannot trust itself.

Cause. It has not been installed. auto_install = false means declaring a tool never fetches it.

Terminal window
polyforge status # confirm the gap
polyforge install # close it

See explicit installs.

I added a conf.d fragment and nothing changed

Section titled “I added a conf.d fragment and nothing changed”

Check, in order:

  1. The file ends in .toml and is inside .config/mise/conf.d/.
  2. You ran polyforge install. There is no watch mode.
  3. No other fragment declares the same tool. A later-sorting file wins silently — see the merge model.
  4. polyforge doctor reports no parse errors.

These need the GitHub CLI, authenticated:

Terminal window
gh auth status
gh auth login

get commands never need gh — if only publishing fails, this is why.

Cause. It is not in the registry on this machine.

Publishing writes to polyforge.registry.toml, but committing that change is a separate step. Check the machine you published from:

Terminal window
git status # in the polyforge repo
git log -1 -- polyforge.registry.toml

If the entry was never committed and pushed, this clone does not know the repository exists. See content separation.

It is filling a gap. next always creates the lowest missing day — if day02 was deleted, it comes back before day07 does.

Terminal window
learn list go # shows exactly what next would create

Installs and caches live in .cache/, which is git-ignored.

Terminal window
polyforge clean # empty .cache
polyforge clean --all # also mise implode — removes every installed toolchain

Open an issue on GitHub with the output of polyforge doctor and your platform.