Troubleshooting
Start here:
polyforge doctorIt checks that mise is present and trusted, that the wrappers resolved on
PATH, and that the configuration fragments parse.
polyforge is not recognised as a command
Section titled “polyforge is not recognised as a command”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.
-
Open a new shell.
-
If it still fails, re-run activation and check for errors:
Terminal window .\polyforge.ps1 activateTerminal window ./polyforge.sh activate -
Confirm the profile was actually written —
$PROFILEon Windows,~/.bashrcor~/.zshrcon 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.
mise refuses to run: config not trusted
Section titled “mise refuses to run: config not trusted”Cause. mise trust has not run on this machine, or was reset.
polyforge activateThis 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.
A tool is declared but “not found”
Section titled “A tool is declared but “not found””Cause. It has not been installed. auto_install = false means declaring a
tool never fetches it.
polyforge status # confirm the gappolyforge install # close itSee 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:
- The file ends in
.tomland is inside.config/mise/conf.d/. - You ran
polyforge install. There is no watch mode. - No other fragment declares the same tool. A later-sorting file wins silently — see the merge model.
polyforge doctorreports no parse errors.
publish or forge new fails
Section titled “publish or forge new fails”These need the GitHub CLI, authenticated:
gh auth statusgh auth loginget commands never need gh — if only publishing fails, this is why.
A project did not come back with get all
Section titled “A project did not come back with get all”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:
git status # in the polyforge repogit log -1 -- polyforge.registry.tomlIf the entry was never committed and pushed, this clone does not know the repository exists. See content separation.
learn next created the wrong day
Section titled “learn next created the wrong day”It is filling a gap. next always creates the lowest missing day — if
day02 was deleted, it comes back before day07 does.
learn list go # shows exactly what next would createDisk usage is growing
Section titled “Disk usage is growing”Installs and caches live in .cache/, which is git-ignored.
polyforge clean # empty .cachepolyforge clean --all # also mise implode — removes every installed toolchainSomething else
Section titled “Something else”Open an issue on
GitHub with the output of
polyforge doctor and your platform.