paperclipai/paperclip · error · Error
must be an absolute path.
Error message
${label} must be an absolute path. What it means
normalizeAbsolutePath trims a sandbox path option and checks path.isAbsolute; the input is empty or relative, and sandbox bind-mount paths must be absolute.
Solutions
- Provide an absolute path for ${label}.
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at packages/adapter-utils/src/local-process-sandbox.ts:77 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/9db67b2b2dd8a5ae.
Report an issue: GitHub.
Appendix: source
Thrown at packages/adapter-utils/src/local-process-sandbox.ts:77
"/etc/resolv.conf",
"/etc/hosts",
"/etc/nsswitch.conf",
"/etc/passwd",
"/etc/group",
"/etc/localtime",
"/etc/timezone",
"/etc/gitconfig",
] as const;
const PROXY_ENV_KEYS = ["HTTP_PROXY", "HTTPS_PROXY", "ALL_PROXY", "http_proxy", "https_proxy", "all_proxy"] as const;
const SANDBOX_PROXY_PORT = 31_337;
const UNIX_SOCKET_PATH_MAX_BYTES = 107;
const NETWORK_PROXY_TEMP_PREFIX = "paperclip-network-sandbox-";
function normalizeAbsolutePath(candidate: string, label: string): string {
const trimmed = candidate.trim();
if (!trimmed || !path.isAbsolute(trimmed)) {
throw new Error(`${label} must be an absolute path.`);
}
return path.resolve(trimmed);
}
async function pathExists(candidate: string): Promise<boolean> {
return fs.lstat(candidate).then(() => true).catch(() => false);
}
function parentDirectories(candidate: string): string[] {
const directories: string[] = [];
let current = path.dirname(candidate);
while (current !== path.dirname(current)) {
directories.push(current);
current = path.dirname(current);
}
return directories.reverse();
}
View on GitHub (pinned to 120ae5428f)