paperclipai/paperclip · error · WorkspaceValidationFailure
missing_git_push_remote
missing_git_push_remote
Error message
Issue ${input.issue.identifier ?? input.issue.id} requested the GitHub PR workflow, but checkout "${cwd}" has no configured push remote. Bind the run to a writable repo checkout before dispatching the agent. What it means
Error "Issue ${input.issue.identifier ?? input.issue.id} requested the GitHub PR workflow, but checkout "${cwd}" has no configured push remote. Bind the run to a writable repo checkout before dispatching the agent." thrown in paperclipai/paperclip.
Source
Thrown at server/src/services/heartbeat.ts:2228
}
async function materializeManagedProjectWorkspace(
cwd: string,
input: {
repoUrl: string | null;
resolveGitAuth?: GitRemoteAuthProvider | null;
},
): Promise<{ cwd: string; warning: string | null }> {
await fs.mkdir(path.dirname(cwd), { recursive: true });
const stats = await fs.stat(cwd).catch(() => null);
if (!input.repoUrl) {
if (!stats) {
await fs.mkdir(cwd, { recursive: true });
}
return { cwd, warning: null };
}
const hasAdoptableGitDir = () =>
fs
.stat(path.resolve(cwd, ".git"))
.then((entry) => entry.isDirectory())
.catch(() => false);
if (await hasAdoptableGitDir()) {
return { cwd, warning: null };
}
if (stats) {
const entries = await fs.readdir(cwd).catch(() => []);
if (entries.length > 0) {
return {
cwd,
warning: `Managed workspace path "${cwd}" already exists but is not a git checkout. Using it as-is.`,
};
}
await fs.rm(cwd, { recursive: true, force: true });View on GitHub (pinned to 01ad858492)
Solutions
- Bind the run to a writable repo checkout with a configured push remote before dispatching the agent.
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at server/src/services/heartbeat.ts:2060 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of paperclipai/paperclip@01ad858492 (2026-08-18).
Data as JSON: /api/errors/acb4c5befd59bda8.
Report an issue: GitHub.