paperclipai/paperclip · error · Error
Invalid
Error message
Invalid ${label}: ${value} What it means
parsePositiveInt converted an option value with Number() and it was not a positive integer; a generic numeric-option guard used for limits and durations.
Solutions
- Correct the value for the named field to the expected format.
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at cli/src/commands/pipelines.ts:713 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/b92cf5a07dd435c2.
Report an issue: GitHub.
Appendix: source
Thrown at cli/src/commands/pipelines.ts:713
} catch (error) {
throw new Error(`Invalid JSON: ${error instanceof Error ? error.message : String(error)}`);
}
}
function asObject(value: unknown): JsonObject {
if (!value || typeof value !== "object" || Array.isArray(value)) {
throw new Error("Expected a JSON object.");
}
return value as JsonObject;
}
function asOptionalObject(value: unknown): JsonObject | undefined {
return value && typeof value === "object" && !Array.isArray(value) ? value as JsonObject : undefined;
}
function parsePositiveInt(value: string, label: string): number {
const parsed = Number(value);
if (!Number.isInteger(parsed) || parsed <= 0) throw new Error(`Invalid ${label}: ${value}`);
return parsed;
}
function parseCsv(value: string): string[] {
return value.split(",").map((item) => item.trim()).filter(Boolean);
}
function setIfDefined(target: JsonObject, key: string, value: unknown): void {
if (value !== undefined) target[key] = value;
}
function looksLikeUuid(value: string): boolean {
return /^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i.test(value);
}
function exactlyOneFlag(first: boolean | undefined, second: boolean | undefined, firstName: string, secondName: string): string {
if (Boolean(first) === Boolean(second)) throw new Error(`Pass exactly one of ${firstName} or ${secondName}.`);
return first ? firstName : secondName;View on GitHub (pinned to 120ae5428f)