paperclipai/paperclip · error · Error
Unsupported expose field(s): ${unknownKeys.sort().join(", ")
Error message
Unsupported expose field(s): ${unknownKeys.sort().join(", ")} What it means
Strict-schema guard in resolveDeclaredRuntimeExposureConfig: the exposure block's declared type is recognized, but it contains keys outside the known sub-fields. Unknown keys throw (rather than being silently dropped) so typos like 'hosts' vs 'host' surface immediately; the sorted key list names exactly which fields were unrecognized.
Source
Thrown at packages/shared/src/validators/runtime-exposure.ts:154
}
/**
* Resolve the exposure config a service *declared* (as opposed to the one it
* inherits by default). Returns null unless the block explicitly opts in.
*
* Recognized sub-fields fall back to {@link DEFAULT_TAILSCALE_HTTPS_EXPOSURE},
* so `{ type: "tailscale_https" }` is a complete declaration; unknown keys still
* throw rather than being silently dropped.
*/
export function resolveDeclaredRuntimeExposureConfig(
value: unknown,
): RuntimeExposureConfigInput | null {
if (readRuntimeExposureIntent(value) !== "enabled") return null;
const expose = value as Record<string, unknown>;
const known = new Set<string>([...RUNTIME_EXPOSURE_CONFIG_KEYS, ...RUNTIME_EXPOSURE_TRANSPORT_KEYS]);
const unknownKeys = Object.keys(expose).filter((key) => !known.has(key));
if (unknownKeys.length > 0) {
throw new Error(`Unsupported expose field(s): ${unknownKeys.sort().join(", ")}`);
}
const merged: Record<string, unknown> = { ...DEFAULT_TAILSCALE_HTTPS_EXPOSURE };
for (const key of RUNTIME_EXPOSURE_CONFIG_KEYS) {
if (expose[key] !== undefined) merged[key] = expose[key];
}
// `tailscaleHttps: true` is shorthand for the provider; normalize it away.
merged.type = "tailscale_https";
return runtimeExposureConfigSchema.parse(merged);
}
View on GitHub (pinned to 120ae5428f)
Solutions
- Remove the unsupported fields from the expose config; use only documented keys.
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at packages/shared/src/validators/runtime-exposure.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/153dd4fdd1666eb8.
Report an issue: GitHub.