paperclipai/paperclip · error · Error
Empty element in cron ${spec.name} field
Error message
Empty element in cron ${spec.name} field What it means
Token guard in the cron parser's parseField: after splitting a field on commas, one element trims to the empty string (e.g. "1,,5" or a trailing comma). An empty list element cannot denote a value, range, or step, so parsing aborts with the field name (minute/hour/dom/month/dow).
Source
Thrown at server/src/services/cron.ts:79
// Parsing
// ---------------------------------------------------------------------------
/**
* Parse a single cron field token (e.g. `"5"`, `"1-3"`, `"* /10"`, `"1,3,5"`).
*
* @returns Sorted deduplicated array of matching integer values within bounds.
* @throws {Error} on invalid syntax or out-of-range values.
*/
function parseField(token: string, spec: FieldSpec): number[] {
const values = new Set<number>();
// Split on commas first — each part can be a value, range, or step
const parts = token.split(",");
for (const part of parts) {
const trimmed = part.trim();
if (trimmed === "") {
throw new Error(`Empty element in cron ${spec.name} field`);
}
// Check for step syntax: "X/S" where X is "*" or a range or a number
const slashIdx = trimmed.indexOf("/");
if (slashIdx !== -1) {
const base = trimmed.slice(0, slashIdx);
const stepStr = trimmed.slice(slashIdx + 1);
const step = parseInt(stepStr, 10);
if (isNaN(step) || step <= 0) {
throw new Error(
`Invalid step "${stepStr}" in cron ${spec.name} field`,
);
}
let rangeStart = spec.min;
let rangeEnd = spec.max;
if (base === "*") {View on GitHub (pinned to 120ae5428f)
Solutions
- Remove empty elements (e.g. double commas) from the named cron field.
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at server/src/services/cron.ts:79 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/352526a545bfc979.
Report an issue: GitHub.