{"record":{"id":"190b1c4f631c0c3c","repo":"vitest-dev/vitest","slug":"worker-state-is-not-found-this-is-an-issue-with-v","errorCode":null,"errorMessage":"Worker state is not found. This is an issue with Vitest. Please, open an issue.","messagePattern":"Worker state is not found\\. This is an issue with Vitest\\. Please, open an issue\\.","errorType":"exception","errorClass":"Error","httpStatus":null,"severity":"error","filePath":"packages/browser/src/client/utils.ts","lineNumber":125,"sourceCode":"    off: (event: string, listener: (payload: any) => void) => void\n    send: (method: string, params?: Record<string, unknown>) => Promise<unknown>\n    emit: (event: string, payload: unknown) => void\n  }\n  aria: typeof import('ivya/aria')\n}\n\n/* @__NO_SIDE_EFFECTS__ */\nexport function getBrowserState(): BrowserRunnerState {\n  // @ts-expect-error not typed global\n  return window.__vitest_browser_runner__\n}\n\n/* @__NO_SIDE_EFFECTS__ */\nexport function getWorkerState(): WorkerGlobalState {\n  // @ts-expect-error not typed global\n  const state = window.__vitest_worker__\n  if (!state) {\n    throw new Error('Worker state is not found. This is an issue with Vitest. Please, open an issue.')\n  }\n  return state\n}\n","sourceCodeStart":107,"sourceCodeEnd":129,"githubUrl":"https://github.com/vitest-dev/vitest/blob/1fa9837ec26533512fdcad8baebf249771bd340a/packages/browser/src/client/utils.ts#L107-L129","documentation":"Thrown by `getWorkerState` when `window.__vitest_worker__` is undefined/null. The browser tester sets this global before tests run (it holds the `WorkerGlobalState` with config, RPC, mocker, etc.). Missing it means the code is executing outside the browser tester's prepared context — e.g. in a plain page, before the tester bootstrap ran, or in Node where `window` is undefined/polyfilled.","triggerScenarios":"Calling `getWorkerState()` from a non-tester page, before the tester bootstrap script ran, or from Node code that imported browser-only utilities.","commonSituations":"Importing `@vitest/browser` client utilities in a Node test file; the tester HTML being loaded standalone; an ordering bug where the utility runs before `state.ts` assigns `window.__vitest_worker__`.","solutions":["Run the code only inside a Vitest browser test (the tester sets the global).","For Node-side logic, use Node-appropriate utilities, not the browser client helpers.","If this appears inside a browser test, it is a tester bootstrap bug — report it with a reproduction."],"exampleFix":null,"handlingStrategy":"validation","validationCode":"// guard before using browser worker utilities\nconst g = globalThis as { __vitest_worker__?: unknown }\nif (!g.__vitest_worker__) {\n  throw new Error('Not running inside the Vitest browser tester')\n}","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Run browser-only utilities only inside browser tests.","Do not import `@vitest/browser` client helpers in Node test files.","Confirm the tester bootstrap has run before relying on worker state."],"tags":["internal","browser","worker-state","bootstrap"],"backgroundTag":null,"analyzedSha":"1fa9837ec26533512fdcad8baebf249771bd340a","analyzedAt":"2026-08-11T16:11:39.638Z","contentChangedAt":null,"schemaVersion":2},"datasetVersion":"2026-09-23T08:17:48.524Z"}