santifer/career-ops · warning
⚠️
Error message
⚠️ ${msg} What it means
verify-pipeline.mjs prints this as a warning via the warn() helper (which prefixes '⚠️ ' and increments a warnings counter). It is not a thrown exception — it is a diagnostic line emitted during a health-check when one of the pipeline checks degrades but does not fail.
Solutions
- Read the message text after the '⚠️ ' prefix — it names the specific check and condition
- Fix the underlying condition the message describes (e.g. regenerate stale data, correct config)
- Re-run node verify-pipeline.mjs to confirm the warning is gone
- If the warning is expected for a fresh setup, ignore it — warnings do not fail the check
Example fix
// before: pipeline has a soft issue ⚠️ <check-specific message> // after: fix the condition and re-run ✅ <check passed>
Defensive patterns
Strategy: validation
Validate before calling
const res = { errors: 0, warnings: 0 }; // parse verify-pipeline output lines: '⚠️ ' => warnings++, '❌' => errors++
const out = execSync('node verify-pipeline.mjs').toString();
const hasWarnings = /⚠️/.test(out); Prevention
- Run verify-pipeline.mjs regularly so warnings surface before they compound
- Treat every ⚠️ line as actionable — the tool only emits warnings for non-blocking but real conditions
- Distinguish warnings (advisory) from ❌ errors (blocking) when triaging output
When it happens
Trigger: Any check in verify-pipeline.mjs calls warn(msg) with a message string; the prefixed output '⚠️ <msg>' appears whenever a check finds a non-blocking problem (e.g. soft-stale data, skippable config issue) rather than a hard failure counted by error().
Common situations: Running `node verify-pipeline.mjs` during routine pipeline hygiene checks; a sub-check reports a soft condition the author classified as advisory. Exit code and severity depend on whether errors>0, not warnings.
Understand the failure class
Background: "missing required config value" errors: why libraries refuse to start when a configuration key is empty, unset, or blank — this error's family across 48 libraries.
Related errors
- Could not release report reservation
- Duplicate reports for same company+role
- HTTP
- pending TSVs in tracker-additions/ (not merged)
- Portal coverage check could not run
AI-assisted analysis of santifer/career-ops@e7abd431fc (2026-09-16).
Data as JSON: /api/errors/fd9a21fd2cc6341d.
Report an issue: GitHub.
Appendix: source
Thrown at verify-pipeline.mjs:78
];
const ALIASES = {
'evaluada': 'evaluated', 'condicional': 'evaluated', 'hold': 'evaluated', 'evaluar': 'evaluated', 'verificar': 'evaluated',
'aplicado': 'applied', 'enviada': 'applied', 'aplicada': 'applied', 'applied': 'applied', 'sent': 'applied',
'respondido': 'responded',
'entrevista': 'interview',
'oferta': 'offer',
'rechazado': 'rejected', 'rechazada': 'rejected',
'descartado': 'discarded', 'descartada': 'discarded', 'cerrada': 'discarded', 'cancelada': 'discarded',
'no aplicar': 'skip', 'no_aplicar': 'skip', 'monitor': 'skip', 'geo blocker': 'skip',
'contratado': 'hired', 'contratada': 'hired', 'hired': 'hired', 'accepted': 'hired', 'accept': 'hired',
};
let errors = 0;
let warnings = 0;
function error(msg) { console.log(`❌ ${msg}`); errors++; }
function warn(msg) { console.log(`⚠️ ${msg}`); warnings++; }
function ok(msg) { console.log(`✅ ${msg}`); }
// --- Read applications.md ---
if (!existsSync(APPS_FILE)) {
console.log('\n📊 No applications.md found. This is normal for a fresh setup.');
console.log(' The file will be created when you evaluate your first offer.\n');
process.exit(0);
}
const content = readFileSync(APPS_FILE, 'utf-8');
const lines = content.split('\n');
// Map columns by header name so the checks work whether the tracker uses the
// original 9-column layout or a customized one with an extra column (e.g. a
// Location column after Role). Fixed-position indexing would otherwise read
// Location where Score is expected and flag false errors. Falls back to the
// legacy fixed layout when no recognizable header row is found.
//
// Sourced from tracker-parse.mjs rather than re-declared here: this file usedView on GitHub (pinned to e7abd431fc)