{"record":{"id":"8b04b2b6d2a9f444","repo":"paperclipai/paperclip","slug":"paperclip-sandbox-proxy-socket-path-is-pathbytes","errorCode":null,"errorMessage":"Paperclip sandbox proxy socket path is ${pathBytes} bytes, exceeding the Linux limit of ${UNIX_SOCKET_PATH_MAX_BYTES}: ${socketPath}","messagePattern":"Paperclip sandbox proxy socket path is (.+?) bytes, exceeding the Linux limit of (.+?): (.+?)","errorType":"exception","errorClass":"Error","httpStatus":null,"severity":"error","filePath":"packages/adapter-utils/src/local-process-sandbox.ts","lineNumber":171,"sourceCode":"  if (value === \"deny\" || value === \"allowlist\") return value;\n  throw new Error('networkScope must be \"deny\" or \"allowlist\".');\n}\n\nexport function parseLocalProcessFilesystemScope(value: unknown): \"workspace\" | null {\n  if (value == null || value === \"\") return null;\n  if (value === \"workspace\") return value;\n  throw new Error('filesystemScope must be \"workspace\".');\n}\n\nfunction isNetworkTargetAllowed(hostname: string, port: string, rules: NetworkAllowlistRule[]): boolean {\n  const normalizedHostname = hostname.toLowerCase().replace(/^\\[|\\]$/g, \"\");\n  return rules.some((rule) => rule.hostname === normalizedHostname && (rule.port === null || rule.port === port));\n}\n\nfunction assertUnixSocketPathLength(socketPath: string): void {\n  const pathBytes = Buffer.byteLength(socketPath);\n  if (pathBytes > UNIX_SOCKET_PATH_MAX_BYTES) {\n    throw new Error(\n      `Paperclip sandbox proxy socket path is ${pathBytes} bytes, exceeding the Linux limit of ${UNIX_SOCKET_PATH_MAX_BYTES}: ${socketPath}`,\n    );\n  }\n}\n\nasync function createNetworkProxyTempDir(): Promise<string> {\n  const candidates = Array.from(new Set([\"/tmp\", os.tmpdir()]));\n  let lastError: unknown;\n  for (const baseDir of candidates) {\n    try {\n      const tempDir = await fs.mkdtemp(path.join(baseDir, NETWORK_PROXY_TEMP_PREFIX));\n      try {\n        assertUnixSocketPathLength(path.join(tempDir, \"proxy.sock\"));\n        return tempDir;\n      } catch (error) {\n        await fs.rm(tempDir, { recursive: true, force: true });\n        lastError = error;\n      }","sourceCodeStart":153,"sourceCodeEnd":189,"githubUrl":"https://github.com/paperclipai/paperclip/blob/120ae5428fa29bee300bcf806491cd4d965fbb7c/packages/adapter-utils/src/local-process-sandbox.ts#L153-L189","documentation":"assertUnixSocketPathLength checks the sandbox proxy socket path against Linux's 107-byte unix socket limit; the composed path exceeds it and the proxy cannot bind there.","triggerScenarios":"Thrown at packages/adapter-utils/src/local-process-sandbox.ts:171 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Shorten the sandbox proxy socket path (move the workspace closer to a short base path) so it fits the Linux unix socket limit."],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"120ae5428fa29bee300bcf806491cd4d965fbb7c","analyzedAt":"2026-08-18T22:49:45.177Z","contentChangedAt":"2026-08-18T22:49:45.177Z","schemaVersion":2},"datasetVersion":"2026-09-23T08:17:48.524Z"}