{"record":{"id":"c152a85e42ec9e62","repo":"langgenius/dify","slug":"the-console-api-client-requires-an-authenticated-c","errorCode":null,"errorMessage":"The Console API client requires an authenticated CSRF token.","messagePattern":"The Console API client requires an authenticated CSRF token\\.","errorType":"validation","errorClass":"Error","httpStatus":null,"severity":"error","filePath":"e2e/support/api/console-client.ts","lineNumber":40,"sourceCode":"}\n\nconst getCsrfToken = async (requestContext: ConsoleRequestContext) => {\n  const state = await requestContext.storageState()\n  return state.cookies.find((cookie) => cookie.name.endsWith('csrf_token'))?.value\n}\n\nexport function createConsoleClient({\n  apiBaseURL = apiURL,\n  requestContext,\n  requireCsrfToken = true,\n}: CreateConsoleClientOptions): ConsoleClient {\n  const link = new OpenAPILink<ConsoleClientContext>(consoleRouterContract, {\n    fetch: createPlaywrightFetch(requestContext),\n    headers: async () => {\n      const headers = new Headers({ Accept: 'application/json' })\n      const csrfToken = await getCsrfToken(requestContext)\n      if (!csrfToken && requireCsrfToken)\n        throw new Error('The Console API client requires an authenticated CSRF token.')\n      if (csrfToken) headers.set('X-CSRF-Token', csrfToken)\n      return headers\n    },\n    plugins: [\n      new RequestValidationPlugin<ConsoleClientContext>(consoleRouterContract),\n      new ResponseValidationPlugin<ConsoleClientContext>(consoleRouterContract),\n    ],\n    url: new URL('/console/api/', apiBaseURL).toString(),\n  })\n\n  return createORPCClient<ConsoleClient>(link)\n}\n","sourceCodeStart":22,"sourceCodeEnd":53,"githubUrl":"https://github.com/langgenius/dify/blob/ef8544b173fd6cd7a8e71df2cab576e52bebbfbc/e2e/support/api/console-client.ts#L22-L53","documentation":"Error \"The Console API client requires an authenticated CSRF token.\" thrown in langgenius/dify.","triggerScenarios":"Thrown at e2e/support/api/console-client.ts:40 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":"ef8544b173fd6cd7a8e71df2cab576e52bebbfbc","analyzedAt":"2026-08-12T05:15:17.394Z","schemaVersion":2},"datasetVersion":"2026-08-12T13:17:24.610Z"}