paperclipai/paperclip · error · Error
networkScope must be "deny" or "allowlist".
Error message
networkScope must be "deny" or "allowlist".
What it means
parseLocalProcessNetworkScope only accepts 'deny' or 'allowlist' for the sandbox networkScope config value; anything else (or empty-with-meaning) is rejected by this enum guard.
Solutions
- Set networkScope to "deny" or "allowlist".
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at packages/adapter-utils/src/local-process-sandbox.ts:154 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/00bdd8e6f5a6adb0.
Report an issue: GitHub.
Appendix: source
Thrown at packages/adapter-utils/src/local-process-sandbox.ts:154
if (!hostname || hostname === "*" || hostname.startsWith("*.")) {
throw new Error(`networkAllowlist[${index}] must use an exact hostname; wildcards are not supported.`);
}
return { hostname, port };
}
export function parseLocalProcessNetworkAllowlist(value: unknown): string[] {
if (!Array.isArray(value)) return [];
return value.map((entry, index) => {
if (typeof entry !== "string") throw new Error(`networkAllowlist[${index}] must be a string.`);
const rule = parseNetworkAllowlistEntry(entry, index);
return rule.port ? `${rule.hostname}:${rule.port}` : rule.hostname;
});
}
export function parseLocalProcessNetworkScope(value: unknown): LocalProcessNetworkScope | null {
if (value == null || value === "") return null;
if (value === "deny" || value === "allowlist") return value;
throw new Error('networkScope must be "deny" or "allowlist".');
}
export function parseLocalProcessFilesystemScope(value: unknown): "workspace" | null {
if (value == null || value === "") return null;
if (value === "workspace") return value;
throw new Error('filesystemScope must be "workspace".');
}
function isNetworkTargetAllowed(hostname: string, port: string, rules: NetworkAllowlistRule[]): boolean {
const normalizedHostname = hostname.toLowerCase().replace(/^\[|\]$/g, "");
return rules.some((rule) => rule.hostname === normalizedHostname && (rule.port === null || rule.port === port));
}
function assertUnixSocketPathLength(socketPath: string): void {
const pathBytes = Buffer.byteLength(socketPath);
if (pathBytes > UNIX_SOCKET_PATH_MAX_BYTES) {
throw new Error(
`Paperclip sandbox proxy socket path is ${pathBytes} bytes, exceeding the Linux limit of ${UNIX_SOCKET_PATH_MAX_BYTES}: ${socketPath}`,View on GitHub (pinned to 120ae5428f)