paperclipai/paperclip · error

Failed to move managed checkout into place at

Error message

Failed to move managed checkout into place at "${cwd}": ${reason}

What it means

Materialization race/failure in heartbeat workspace materialization: the staged clone succeeded but fs.rename from the temp dir into the final cwd failed for the stated reason. The temp clone is cleaned up; if the target appeared concurrently the caller may adopt that checkout, otherwise the managed checkout cannot be placed and the error propagates.

Solutions

  1. Fix the reported failure moving the checkout into place (permissions, existing files), then retry.
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at server/src/services/heartbeat.ts:1679 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of paperclipai/paperclip@3f1d897a7c (2026-08-18). Data as JSON: /api/errors/7f8a69613c1957ca. Report an issue: GitHub.

Appendix: source

Thrown at server/src/services/heartbeat.ts:1894

    (input.environmentDriver ?? null) !== "sandbox"
  ) {
    const resolvedEnv = parseObject(resolvedConfig.env);
    const readiness = await evaluateCodexCredentialReadiness({
      env: process.env,
      companyId: input.companyId,
      configuredCodexHome: readNonEmptyString(resolvedEnv.CODEX_HOME),
      configuredApiKey: readNonEmptyString(resolvedEnv.OPENAI_API_KEY),
    });
    if (readiness.managed && !readiness.ready) {
      throw new ConfigurationIncompleteFailure(
        `configuration incomplete: no Codex credentials available for managed home "${readiness.effectiveHome}". ` +
          `Sign in to Codex on the host with a ChatGPT subscription, or bind a per-agent OPENAI_API_KEY secret for this agent.`,
        {
          configurationIncomplete: {
            reason: "codex_credentials_missing",
            companyId: input.companyId,
            agentId: input.agentId ?? null,
            issueId: input.issueId ?? null,
            projectId: input.projectId ?? null,
            routineId: input.routineId ?? null,
            responsibleUserId: input.responsibleUserId ?? null,
            adapterType: "codex_local",
            requiredEnvKeys: ["OPENAI_API_KEY"],
            effectiveCodexHome: readiness.effectiveHome,
            missingBindings: [],
          },
        },
      );
    }
  }
  return {
    resolvedConfig,
    secretKeys,
    secretManifest: [
      ...(environmentEnvResolution.manifest ?? []),
      ...(manifest ?? []),

View on GitHub (pinned to 3f1d897a7c)