gatsbyjs/gatsby · error · Error
Received message about failed job that wasn't scheduled by t
Error message
Received message about failed job that wasn't scheduled by this worker
What it means
Mirror of the completed-job guard: a JOB_FAILED message arrived whose job id has no deferred promise in this worker's deferredWorkerPromises map, so the failure cannot be routed back to the awaiting plugin. Internal invariant break in worker/main job messaging.
Source
Thrown at packages/gatsby/src/utils/jobs/worker-messaging.ts:96
gatsbyWorkerMessenger.onMessage(msg => {
if (msg.type === MESSAGE_TYPES.JOB_COMPLETED) {
const { id, result } = msg.payload
const deferredPromise = deferredWorkerPromises.get(id)
if (!deferredPromise) {
throw new Error(
`Received message about completed job that wasn't scheduled by this worker`
)
}
deferredPromise.resolve(result)
deferredWorkerPromises.delete(id)
} else if (msg.type === MESSAGE_TYPES.JOB_FAILED) {
const { id, error, stack } = msg.payload
const deferredPromise = deferredWorkerPromises.get(id)
if (!deferredPromise) {
throw new Error(
`Received message about failed job that wasn't scheduled by this worker`
)
}
const errorObject = new WorkerError(error)
if (stack) {
errorObject.stack = stack
}
deferredPromise.reject(errorObject)
deferredWorkerPromises.delete(id)
}
})
}
}
/**
* Forwards job to main process (if executed in worker context) and returns
* a promise. Will return `undefined` if called not in worker context.View on GitHub (pinned to e85d62f177)
Solutions
- Report as a Gatsby bug with the job id
- Verify plugin code does not fabricate job ids
- Update Gatsby to a version with jobs-messaging fixes
Defensive patterns
Strategy: type-guard
When it happens
Trigger: Thrown at packages/gatsby/src/utils/jobs/worker-messaging.ts:96 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of gatsbyjs/gatsby@e85d62f177 (2026-08-26).
Data as JSON: /api/errors/24937095dd6edcba.
Report an issue: GitHub.