paperclipai/paperclip · error · Error
Unable to create a Linux-safe Paperclip sandbox proxy…
Error message
Unable to create a Linux-safe Paperclip sandbox proxy socket directory.
What it means
createNetworkProxyTempDir tried mkdtemp under /tmp and os.tmpdir() and every candidate failed (or produced an unsafe socket path), so no Linux-safe socket directory is available.
Solutions
- Use a shorter workspace or temp base path so a Linux-safe socket directory can be created.
Defensive patterns
Strategy: fallback
When it happens
Trigger: Thrown at packages/adapter-utils/src/local-process-sandbox.ts:194 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/48eed07abc12515a.
Report an issue: GitHub.
Appendix: source
Thrown at packages/adapter-utils/src/local-process-sandbox.ts:194
async function createNetworkProxyTempDir(): Promise<string> {
const candidates = Array.from(new Set(["/tmp", os.tmpdir()]));
let lastError: unknown;
for (const baseDir of candidates) {
try {
const tempDir = await fs.mkdtemp(path.join(baseDir, NETWORK_PROXY_TEMP_PREFIX));
try {
assertUnixSocketPathLength(path.join(tempDir, "proxy.sock"));
return tempDir;
} catch (error) {
await fs.rm(tempDir, { recursive: true, force: true });
lastError = error;
}
} catch (error) {
lastError = error;
}
}
throw new Error("Unable to create a Linux-safe Paperclip sandbox proxy socket directory.", { cause: lastError });
}
function parseTrustedNetworkUrl(value: string): NetworkAllowlistRule | null {
try {
const parsed = new URL(value);
if (parsed.protocol !== "http:" && parsed.protocol !== "https:") return null;
return {
hostname: parsed.hostname.toLowerCase(),
port: parsed.port || (parsed.protocol === "https:" ? "443" : "80"),
};
} catch {
return null;
}
}
function writeProxyError(response: http.ServerResponse, status: number, code: string, message: string): void {
const body = `${JSON.stringify({ error: { code, message } })}\n`;
response.writeHead(status, {View on GitHub (pinned to 120ae5428f)