paperclipai/paperclip · error
Kubernetes syncOut refusing unparseable or ambiguous hardlin
Error message
Kubernetes syncOut refusing unparseable or ambiguous hardlink entry: ${line} What it means
Error "Kubernetes syncOut refusing unparseable or ambiguous hardlink entry: ${line}" thrown in paperclipai/paperclip.
Source
Thrown at packages/plugins/sandbox-providers/kubernetes/src/file-sync.ts:393
maxBuffer: 64 * 1024 * 1024,
});
const lines = stdout.split("\n").filter((line) => line.trim().length > 0);
for (const line of lines) {
const parsed = parseTarVerboseListingLine(line);
if (!parsed) {
throw new Error(`Kubernetes syncOut refusing tarball with an unparseable entry listing: ${line}`);
}
const typeFlag = parsed.typeFlag;
let name = parsed.rest;
let linkTarget: string | null = null;
if (typeFlag === "l") {
const split = splitLinkEntryOnce(name, " -> ");
if (!split) throw new Error(`Kubernetes syncOut refusing unparseable or ambiguous symlink entry: ${line}`);
name = split.name;
linkTarget = split.target;
} else if (typeFlag === "h") {
const split = splitLinkEntryOnce(name, " link to ");
if (!split) throw new Error(`Kubernetes syncOut refusing unparseable or ambiguous hardlink entry: ${line}`);
name = split.name;
linkTarget = split.target;
}
const cleanName = name.replace(/\/+$/, "");
if (cleanName.length > 0 && posixPathEscapes(cleanName)) {
throw new Error(`Kubernetes syncOut refusing tarball member that escapes the extraction dir: ${name}`);
}
if (linkTarget !== null) {
const resolved = path.posix.join(path.posix.dirname(cleanName), linkTarget);
if (path.posix.isAbsolute(linkTarget) || posixPathEscapes(resolved)) {
throw new Error(
`Kubernetes syncOut refusing tarball link whose target escapes the extraction dir: ${name} -> ${linkTarget}`,
);
}
}
}
}
View on GitHub (pinned to 120ae5428f)
Solutions
- Fix or exclude the ambiguous hardlink entry in the tarball.
When it happens
Trigger: Thrown at packages/plugins/sandbox-providers/kubernetes/src/file-sync.ts:393 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of paperclipai/paperclip@120ae5428f (2026-08-18).
Data as JSON: /api/errors/f9f1af3480c911e6.
Report an issue: GitHub.