paperclipai/paperclip · error · Error

Invalid integer value

Error message

Invalid integer value: ${value}

What it means

parseOptionalInt ran Number.parseInt on an option value and got NaN, so a numeric CLI option (limits, indexes) received a non-integer string; a generic integer-parse guard.

Solutions

  1. Pass a valid integer value for the flag.
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at cli/src/commands/client/issue.ts:1364 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of paperclipai/paperclip@3f1d897a7c (2026-08-18). Data as JSON: /api/errors/c935cda071ba1185. Report an issue: GitHub.

Appendix: source

Thrown at cli/src/commands/client/issue.ts:1370

            ? await ctx.api.post(`${apiPath`/api/issues/${issueId}`}${pathSuffix}`, {})
            : await ctx.api.delete(`${apiPath`/api/issues/${issueId}`}${pathSuffix}`);
          printOutput(result, { json: ctx.json });
        } catch (err) {
          handleCommandError(err);
        }
      }),
  );
}

function parseJson(value: string): unknown {
  return JSON.parse(value) as unknown;
}

function parseOptionalInt(value: string | undefined): number | undefined {
  if (value === undefined) return undefined;
  const parsed = Number.parseInt(value, 10);
  if (!Number.isFinite(parsed)) {
    throw new Error(`Invalid integer value: ${value}`);
  }
  return parsed;
}

function parseHiddenAt(value: string | undefined): string | null | undefined {
  if (value === undefined) return undefined;
  if (value.trim().toLowerCase() === "null") return null;
  return value;
}

function filterIssueRows(rows: Issue[], match: string | undefined): Issue[] {
  if (!match?.trim()) return rows;
  const needle = match.trim().toLowerCase();
  return rows.filter((row) => {
    const text = [row.identifier, row.title, row.description]
      .filter((part): part is string => Boolean(part))
      .join("\n")
      .toLowerCase();

View on GitHub (pinned to 3f1d897a7c)