paperclipai/paperclip · error · Error

Invalid range " " in cron field

Error message

Invalid range "${trimmed}" in cron ${spec.name} field

What it means

Range guard in parseField's plain N-M branch: splitting on '-' yielded endpoints where parseInt produced NaN for at least one side. The quoted token shows the malformed range before any bounds validation runs.

Solutions

  1. Fix the range syntax in the named cron field.
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at server/src/services/cron.ts:135 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/fd38750377a5ecb9. Report an issue: GitHub.

Appendix: source

Thrown at server/src/services/cron.ts:135

        rangeStart = start;
      }

      validateBounds(rangeStart, spec);
      validateBounds(rangeEnd, spec);

      for (let i = rangeStart; i <= rangeEnd; i += step) {
        values.add(i);
      }
      continue;
    }

    // Check for range syntax: "N-M"
    if (trimmed.includes("-")) {
      const [aStr, bStr] = trimmed.split("-");
      const a = parseInt(aStr!, 10);
      const b = parseInt(bStr!, 10);
      if (isNaN(a) || isNaN(b)) {
        throw new Error(
          `Invalid range "${trimmed}" in cron ${spec.name} field`,
        );
      }
      validateBounds(a, spec);
      validateBounds(b, spec);
      if (a > b) {
        throw new Error(
          `Invalid range ${a}-${b} in cron ${spec.name} field (start > end)`,
        );
      }
      for (let i = a; i <= b; i++) {
        values.add(i);
      }
      continue;
    }

    // Wildcard
    if (trimmed === "*") {

View on GitHub (pinned to 120ae5428f)