{"record":{"id":"c708dc7b8600fa3f","repo":"microsoft/playwright","slug":"expected-value-of-header-key-to-be-string-bu","errorCode":null,"errorMessage":"Expected value of header \"${key}\" to be String, but \"${typeof value}\" is found.","messagePattern":"Expected value of header \"(.+?)\" to be String, but \"(.+?)\" is found\\.","errorType":"validation","errorClass":"Error","httpStatus":null,"severity":"error","filePath":"packages/playwright-core/src/client/network.ts","lineNumber":827,"sourceCode":"      const waiter = Waiter.createForEvent(this, event);\n      waiter.rejectOnTimeout(timeoutOptions, `Timeout ${timeoutOptions.timeout}ms exceeded while waiting for event \"${event}\"`);\n      if (event !== Events.WebSocket.Error)\n        waiter.rejectOnEvent(this, Events.WebSocket.Error, new Error('Socket error'));\n      if (event !== Events.WebSocket.Close)\n        waiter.rejectOnEvent(this, Events.WebSocket.Close, new Error('Socket closed'));\n      waiter.rejectOnEvent(this._page, Events.Page.Close, () => this._page._closeErrorWithReason());\n      const result = await waiter.waitForEvent(this, event, predicate as any);\n      waiter.dispose();\n      return result;\n    });\n  }\n}\n\nexport function validateHeaders(headers: Headers) {\n  for (const key of Object.keys(headers)) {\n    const value = headers[key];\n    if (!Object.is(value, undefined) && !isString(value))\n      throw new Error(`Expected value of header \"${key}\" to be String, but \"${typeof value}\" is found.`);\n  }\n}\n\nexport class RouteHandler {\n  private handledCount = 0;\n  private readonly _baseURL: string | undefined;\n  private readonly _times: number;\n  readonly url: URLMatch;\n  readonly handler: RouteHandlerCallback;\n  private _ignoreException: boolean = false;\n  private _activeInvocations: Set<{ complete: Promise<void>, route: Route }> = new Set();\n  private _savedZone: Zone;\n\n  constructor(baseURL: string | undefined, url: URLMatch, handler: RouteHandlerCallback, times: number = Number.MAX_SAFE_INTEGER) {\n    this._baseURL = baseURL;\n    this._times = times;\n    this.url = url;\n    this.handler = handler;","sourceCodeStart":809,"sourceCodeEnd":845,"githubUrl":"https://github.com/microsoft/playwright/blob/c8fc3bf8d31542d59b4d4d9eaab1df93ff541dc6/packages/playwright-core/src/client/network.ts#L809-L845","documentation":"Error \"Expected value of header \"${key}\" to be String, but \"${typeof value}\" is found.\" thrown in microsoft/playwright.","triggerScenarios":"Thrown at packages/playwright-core/src/client/network.ts:827 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":[],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"c8fc3bf8d31542d59b4d4d9eaab1df93ff541dc6","analyzedAt":"2026-08-12T07:26:36.950Z","schemaVersion":2},"datasetVersion":"2026-08-12T13:17:24.610Z"}