Proposed by the 2026-07-07 jab multi-agent review; confirmed by both skeptic verifiers. Node's CommonJS contract removes a module from the cache when its evaluation throws, so a retry re-evaluates; jab instead returns the half-initialized exports silently.
cache[abs] = module; // before eval: cycle-safe (jab require.cpp:76) then fn(module, ...) (require.cpp:78-80) with no try/catch removing the entry on failure.try { require('./a.js') } catch (e) {} ... require('./a.js') — the second call hits the cache (require.cpp:73) and returns partial exports, hiding the original failure.delete cache[abs] before rethrowing; cycle-safety preserved.