{"id":"99093428f7e597d2","repo":"vitest-dev/vitest","slug":"the-context-provider-name-provider-does-not-sup","errorCode":null,"errorMessage":"The ${context.provider.name} provider does not support tracing.","messagePattern":"The (.+?) provider does not support tracing\\.","errorType":"exception","errorClass":"TypeError","httpStatus":null,"severity":"error","filePath":"packages/browser-playwright/src/commands/trace.ts","lineNumber":62,"sourceCode":"    await context.tracing.startChunk({ name, title })\n    return\n  }\n  throw new TypeError(`The ${provider.name} provider does not support tracing.`)\n}\n\nexport const stopChunkTrace: BrowserCommand<[{ name: string }]> = async (\n  context,\n  { name },\n) => {\n  if (isPlaywrightProvider(context.provider)) {\n    const path = resolveTracesPath(context, name)\n    assertBrowserApiWrite(context.project, path)\n    assertBrowserFileAccess(context.project, path)\n    context.provider.pendingTraces.delete(path)\n    await context.context.tracing.stopChunk({ path })\n    return { tracePath: path }\n  }\n  throw new TypeError(`The ${context.provider.name} provider does not support tracing.`)\n}\n\nexport const markTrace: BrowserCommand<[payload: { name: string; element?: SerializedLocator; stack?: string }]> = async (\n  context,\n  payload,\n) => {\n  if (isPlaywrightProvider(context.provider)) {\n    // skip if tracing is not active\n    // this is only safe guard and this isn't expected to happen since\n    // runner already checks if tracing is active before sending this command\n    if (!context.provider.tracingContexts.has(context.sessionId)) {\n      return\n    }\n    const { name, element, stack } = payload\n    const location = parseLocation(context, stack)\n    // mark trace via group/groupEnd with dummy calls to force snapshot.\n    // https://github.com/microsoft/playwright/issues/39308\n    await context.context.tracing.group(name, { location })","sourceCodeStart":44,"sourceCodeEnd":80,"githubUrl":"https://github.com/vitest-dev/vitest/blob/d568f8ce3739b532d5bf2c1ee1e45e8a8a473d09/packages/browser-playwright/src/commands/trace.ts#L44-L80","documentation":"Thrown as a TypeError by the stopChunkTrace browser command when the provider is not Playwright. stopChunkTrace calls context.context.tracing.stopChunk to finalize and write the trace.zip; only Playwright exposes this API.","triggerScenarios":"The runner dispatches stopChunkTrace against a webdriverio or preview provider, e.g. because trace was enabled globally while the active provider lacks tracing support.","commonSituations":"Provider mismatch in shared configs, or partial teardown that calls stopChunkTrace after a provider swap mid-run.","solutions":["Run the affected tests under provider 'playwright'.","Disable browser.trace for non-playwright providers.","Ensure startChunkTrace and stopChunkTrace are only dispatched in playwright runs."],"exampleFix":"// before\nexport default defineConfig({\n  test: { browser: { provider: 'webdriverio', trace: { enabled: true } } },\n})\n\n// after\nexport default defineConfig({\n  test: { browser: { provider: 'playwright', trace: { enabled: true } } },\n})","handlingStrategy":"validation","validationCode":"if (context.provider.name !== 'playwright') {\n  throw new Error(`stopChunkTrace needs playwright, got ${context.provider.name}`)\n}\nawait stopChunkTrace(context, { name })","typeGuard":"function isPlaywright(p: BrowserProvider): p is PlaywrightBrowserProvider {\n  return p.name === 'playwright'\n}","tryCatchPattern":null,"preventionTips":["Keep startChunkTrace and stopChunkTrace paired within playwright runs.","Disable tracing when switching to webdriverio/preview.","Make trace config conditional on provider."],"tags":["browser","tracing","provider","playwright","vitest"],"analyzedSha":"d568f8ce3739b532d5bf2c1ee1e45e8a8a473d09","analyzedAt":"2026-08-03T20:23:56.861Z","schemaVersion":2}