paperclipai/paperclip · error · Error
workspace_durable_seed_root_invalid
workspace_durable_seed_root_invalid
Error message
workspace_durable_seed_root_invalid
What it means
Guard in persistDurableSeedArchive: after mkdir of the target's parent directory, an lstat shows the parent is a symlink or not a directory. The durable seed storage root fails the runtime's safety checks — typically because a symlink was planted at the parent path or something replaced the directory between creation and verification.
Source
Thrown at packages/adapter-utils/src/sandbox-managed-runtime.ts:787
}
if (
input.expectedSha256 &&
(await sha256File(input.sourcePath)) !== input.expectedSha256
) {
throw new Error("workspace_durable_seed_digest_mismatch");
}
await fs.copyFile(input.sourcePath, input.targetPath);
}
async function persistDurableSeedArchive(input: {
sourcePath: string;
targetPath: string;
}): Promise<void> {
const parent = path.dirname(input.targetPath);
await fs.mkdir(parent, { recursive: true, mode: 0o700 });
const parentStat = await fs.lstat(parent);
if (parentStat.isSymbolicLink() || !parentStat.isDirectory()) {
throw new Error("workspace_durable_seed_root_invalid");
}
const temporary = path.join(
parent,
`.${path.basename(input.targetPath)}.${randomUUID()}.tmp`,
);
try {
await fs.copyFile(input.sourcePath, temporary);
await fs.chmod(temporary, 0o600);
await fs.rename(temporary, input.targetPath);
} finally {
await fs.rm(temporary, { force: true }).catch(() => undefined);
}
}
async function execTar(args: string[]): Promise<void> {
await execFile("tar", args, {
env: {
...process.env,View on GitHub (pinned to 01ad858492)
Solutions
- Remove the offending symlink or non-directory at the parent path and retry the prepare
- Check the runtime root (under the workspace remote dir) for leftover artifacts from a prior failed run
- Ensure no external process is mutating .paperclip-runtime storage while the sandbox prepares
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at packages/adapter-utils/src/sandbox-managed-runtime.ts:787 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of paperclipai/paperclip@01ad858492 (2026-09-10).
Data as JSON: /api/errors/19106b44f657f9dd.
Report an issue: GitHub.