vercel/next.js · error · Error
check() is only allowed in idle status
Error message
check() is only allowed in idle status
What it means
webpack HMR runtime state machine invariant inside hotCheck: module.hot.check() was invoked while the HMR status was not "idle" (e.g. a check already in progress). The status machine forbids overlapping checks, so the call is rejected rather than queued.
Source
Thrown at packages/next/src/bundles/webpack/packages/HotModuleReplacement.runtime.js:261
promise.then(unblock, unblock);
return promise;
default:
return promise;
}
}
function waitForBlockingPromises(fn) {
if (blockingPromises === 0) return fn();
return new Promise(function (resolve) {
blockingPromisesWaiting.push(function () {
resolve(fn());
});
});
}
function hotCheck(applyOnUpdate) {
if (currentStatus !== "idle") {
throw new Error("check() is only allowed in idle status");
}
return setStatus("check")
.then($hmrDownloadManifest$)
.then(function (update) {
if (!update) {
return setStatus(applyInvalidatedModules() ? "ready" : "idle").then(
function () {
return null;
}
);
}
return setStatus("prepare").then(function () {
var updatedModules = [];
currentUpdateApplyHandlers = [];
return Promise.all(
Object.keys($hmrDownloadUpdateHandlers$).reduce(function (View on GitHub (pinned to 0eb3775416)
Solutions
- Wait for the webpack HMR runtime to reach idle status before calling check(); this is an internal invariant and usually indicates a build tool bug — upgrade Next.js.
Defensive patterns
Strategy: validation
When it happens
Trigger: Calling HotModuleReplacement.check() while the HMR runtime is not in idle status.
Common situations: A hot-update check is triggered while another update is already being applied or downloaded during next dev.
AI-assisted analysis of vercel/next.js@0eb3775416 (2026-08-19).
Data as JSON: /api/errors/8dcbc024d8b20e24.
Report an issue: GitHub.