{"record":{"id":"acb4c5befd59bda8","repo":"paperclipai/paperclip","slug":"missing-git-push-remote","errorCode":"missing_git_push_remote","errorMessage":"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.","messagePattern":"Issue (.+?) requested the GitHub PR workflow, but checkout \"(.+?)\" has no configured push remote\\. Bind the run to a writable repo checkout before dispatching the agent\\.","errorType":"validation","errorClass":"WorkspaceValidationFailure","httpStatus":null,"severity":"error","filePath":"server/src/services/heartbeat.ts","lineNumber":2228,"sourceCode":"}\n\nasync function materializeManagedProjectWorkspace(\n  cwd: string,\n  input: {\n    repoUrl: string | null;\n    resolveGitAuth?: GitRemoteAuthProvider | null;\n  },\n): Promise<{ cwd: string; warning: string | null }> {\n  await fs.mkdir(path.dirname(cwd), { recursive: true });\n  const stats = await fs.stat(cwd).catch(() => null);\n\n  if (!input.repoUrl) {\n    if (!stats) {\n      await fs.mkdir(cwd, { recursive: true });\n    }\n    return { cwd, warning: null };\n  }\n\n  const hasAdoptableGitDir = () =>\n    fs\n      .stat(path.resolve(cwd, \".git\"))\n      .then((entry) => entry.isDirectory())\n      .catch(() => false);\n  if (await hasAdoptableGitDir()) {\n    return { cwd, warning: null };\n  }\n\n  if (stats) {\n    const entries = await fs.readdir(cwd).catch(() => []);\n    if (entries.length > 0) {\n      return {\n        cwd,\n        warning: `Managed workspace path \"${cwd}\" already exists but is not a git checkout. Using it as-is.`,\n      };\n    }\n    await fs.rm(cwd, { recursive: true, force: true });","sourceCodeStart":2210,"sourceCodeEnd":2246,"githubUrl":"https://github.com/paperclipai/paperclip/blob/01ad8584922b5d85292b1723cae71fa0d9b07a19/server/src/services/heartbeat.ts#L2210-L2246","documentation":"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.","triggerScenarios":"Thrown at server/src/services/heartbeat.ts:2060 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Bind the run to a writable repo checkout with a configured push remote before dispatching the agent."],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"01ad8584922b5d85292b1723cae71fa0d9b07a19","analyzedAt":"2026-08-18T22:49:45.177Z","contentChangedAt":"2026-08-18T22:49:45.177Z","schemaVersion":2},"datasetVersion":"2026-09-14T00:17:10.932Z"}