# X_JOB_CRASH_UNBOUNDED

## Means

a crash proof needs more kill points than its bound

## Typical cause

the job crossed more distinct step boundaries than crashProof kills at — usually one step per row named by something other than the row id (a slug, an email), so the boundaries of one loop do not read as one point and the proof would grow with the rows

## Fix

step.run(`<name>:${row.id}`, async () => …)   # name a per-row step by the row's id, in the job crashProof named, so its loop is one kill point; then: x test job --filter <the test file>

[Testing](/error-codes#testing)
