Docs/Reference
Troubleshooting
Status surprises, busy workspaces, a dedicated clone that reset itself, and a worker that ignores a new lump.
On this page
- Status looks toDo after I merged
- lump-status versus daemon-status
- workspacePathBusy / gitCommonDirBusy
- Dedicated mode wiped my files
- local.json missing
- Worker does not pick up my new lump
- lump-plan printed no contexts
- lump-plan succeeded, run did not
- Agent not found
- Context name rejected
- Too many open branches, later scan lines starve
- JSON config cannot see my function
- First PR looks like the prompt is wrong
Status looks toDo after I merged
The marker string LUMP: <lumpName> - <contextName> is missing from git history on origin/<baseBranch>. Squash and rebase drop the subject unless you keep that line in the squash message.
Fix: put the string back, or:
lumpcode context-status myLump myContext --setToFinishedThat pushes an empty marker commit on the base branch. Use sparingly.
branchPushed is not finished. Dependencies wait on merge, not on a PR existing.
lump-status versus daemon-status
| Command | Question |
|---|---|
daemon-status |
Is the worker process running? |
lump-status |
What is each context’s git state? |
They do not answer each other. Commands.
workspacePathBusy / gitCommonDirBusy
Another run or worker holds the folder or the shared git lock. Manual run fails fast. A worker waits up to 15 minutes, then skips and tries next cron.
If you just stop --forced, the next acquire removes a stale lock when the PID is dead. You should not delete lock files by hand.
Dedicated mode wiped my files
mode: "dedicated" hard-resets this clone to the remote branch before each run. That is why the worker is a second folder you never edit. Laptops stay on shared.
There is no undo inside Lumpcode. Recover from git if the work was committed; if it was only in the working tree, it is gone.
local.json missing
run and start require it. Run lumpcode project-setup on a new repo. On a worker clone, copy the mode file by hand ({ "mode": "dedicated" }); do not re-run project-setup if .lumpcode/ is already in git.
Worker does not pick up my new lump
- The lump must be on the branch the worker tracks (usually the primary). Push and merge; wait for the next cron (default five minutes), or
lumpcode restart. --include/--excludeon that worker may filter it out.- Lump
"disabled": truesoft-skips (exit 0). Local"disabled": truepauses every lump on that machine. maximumNumberOfConcurrentBranchescan skip while olderlump/<name>/*branches are still open. Merge orlumpcode clean --lumpName <name>.- Dedicated discovery allowlist: the lump’s
discoveryBranchmust match configuredprimaryBranches. Launch fails closed on a mismatch; check the worker log. - TypeScript lumps that import
@lumpcode/recipesneednpm installon the worker clone. The global CLI does not provide those packages.
lump-plan printed no contexts
The path templates or matcher did not hit any files in this repo. contextListJson only creates a context when every template resolves to a real path. Change the paths to files that exist here, or start from the README smoke test.
Captures that include dots or spaces become illegal context names. Slug them in contextMatchFn / getContextListFn.
lump-plan succeeded, run did not
lump-plan does not pre-flight or take the workspace lock. run does. Typical deltas: missing local.json, git fetch failure, workspacePathBusy, agent binary missing from PATH on that machine, dedicated allowlist.
--prompts on lump-plan can throw inside your promptFn even though a default validate passed.
Agent not found
The preset needs cursor-agent, copilot, claude, opencode, or codex on PATH on the machine that runs the lump. A laptop install does not help the worker VM. Log in / auth that CLI on the worker too.
Context name rejected
Names must match ^[a-zA-Z0-9_-]+$ and be unique. No / in a context name. Use / only in dependsOnContexts as otherLump/contextName. Captures from path templates that include dots or spaces will fail; slug them in contextMatchFn / getContextListFn.
Too many open branches, later scan lines starve
The cap is per lump name, across every discovery line. A dedicated worker that scans dev then feature/* can skip later lines while dev still has open lump/<name>/* branches. Merge, raise the cap, or split lumps.
JSON config cannot see my function
Inline functions need config.js or config.ts. In JSON, *Fn fields are string paths to modules. Precedence if several configs exist: TypeScript wins.
First PR looks like the prompt is wrong
That is the point of one context per branch. Tweak the prompt, push the lump, merge or close the bad PR. The next context uses the new prompt. Blast radius stays one review.