santifer/career-ops · error · SeedError
INVALID_DATE
INVALID_DATE
Error message
Application #${row?.num ?? '?'} notes carry an impossible "Applied ${notesDate}" date; fix the notes or pass --date What it means
Error "Application #${row?.num ?? '?'} notes carry an impossible "Applied ${notesDate}" date; fix the notes or pass --date" thrown in santifer/career-ops.
Source
Thrown at followup-seed.mjs:135
* order: explicit `--date` > "Applied YYYY-MM-DD" in the tracker row's notes >
* today. The tracker's `date` column is never consulted — it is usually the
* evaluation date, not the submission date (see followup-cadence.mjs).
*
* A notes date that isn't a real calendar date (e.g. "Applied 2026-02-31")
* throws rather than falling through: `parseDate` would return null for it and
* the pin would be written with a literal "null" next-date.
*
* @param {{num?: number, notes?: string}} row - Parsed tracker row (or any object with `notes`).
* @param {string|null|undefined} explicitDate - `--date` value, already validated.
* @returns {string} YYYY-MM-DD
* @throws {SeedError} INVALID_DATE when the notes carry an impossible date.
*/
export function resolveAppliedDate(row, explicitDate) {
if (explicitDate) return explicitDate;
const notesDate = parseAppliedDate(row?.notes);
if (notesDate) {
if (!isValidCalendarDate(notesDate)) {
throw new SeedError('INVALID_DATE', `Application #${row?.num ?? '?'} notes carry an impossible "Applied ${notesDate}" date; fix the notes or pass --date`);
}
return notesDate;
}
return todayStr();
}
/**
* Format one pin directive line. The parser side lives in
* followup-cadence.mjs's `OVERRIDE_RE` / `parseNextOverrides`.
*
* @param {number} appNum
* @param {string} nextDate - YYYY-MM-DD
* @param {string} setDate - YYYY-MM-DD
* @returns {string}
*/
export function formatPinLine(appNum, nextDate, setDate) {
return `- next #${appNum} ${nextDate} (set ${setDate})`;
}View on GitHub (pinned to 9b17a8ac97)
Solutions
- Correct the impossible 'Applied <date>' note in applications.md so it is not in the future.
- Or pass --date explicitly to override the seeded follow-up date.
Example fix
node followup-seed.mjs 42 --date 2026-08-10
When it happens
Trigger: Thrown at followup-seed.mjs:135 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of santifer/career-ops@9b17a8ac97 (2026-08-13).
Data as JSON: /api/errors/35d7fe68aada8eeb.
Report an issue: GitHub.