{"record":{"id":"b160f90751c9efc8","repo":"remix-run/remix","slug":"getoautherrormessage-json-options-fallbackerror","errorCode":null,"errorMessage":"${getOAuthErrorMessage(json, options.fallbackError)}","messagePattern":"\\$\\{getOAuthErrorMessage\\(json, options\\.fallbackError\\)\\}","errorType":"exception","errorClass":"Error","httpStatus":null,"severity":"error","filePath":"packages/auth/src/lib/provider.ts","lineNumber":294,"sourceCode":"\n  let response = await fetch(options.tokenEndpoint, {\n    method: 'POST',\n    headers: {\n      Accept: 'application/json',\n      'Content-Type': 'application/x-www-form-urlencoded',\n      ...(clientAuthentication === 'basic'\n        ? {\n            Authorization: `Basic ${encodeBasicAuth(options.clientId, options.clientSecret)}`,\n          }\n        : undefined),\n      ...options.headers,\n    },\n    body: params,\n  })\n  let json = await readJson(response)\n\n  if (!response.ok || hasOAuthError(json)) {\n    throw new Error(getOAuthErrorMessage(json, options.fallbackError))\n  }\n\n  return normalizeOAuthTokenResponse(json)\n}\n\nfunction normalizeOAuthTokenResponse(json: unknown): OAuthTokens {\n  if (typeof json !== 'object' || json == null || Array.isArray(json)) {\n    throw new Error('Expected OAuth provider to return a JSON object.')\n  }\n\n  let data = json as Record<string, unknown>\n\n  if (typeof data.access_token !== 'string' || data.access_token.length === 0) {\n    throw new Error('OAuth token response did not include an access token.')\n  }\n\n  return {\n    accessToken: data.access_token,","sourceCodeStart":276,"sourceCodeEnd":312,"githubUrl":"https://github.com/remix-run/remix/blob/9696913134be3a4423513d2775f7b31d6917c049/packages/auth/src/lib/provider.ts#L276-L312","documentation":"Error \"${getOAuthErrorMessage(json, options.fallbackError)}\" thrown in remix-run/remix.","triggerScenarios":"Thrown at packages/auth/src/lib/provider.ts:294 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":"9696913134be3a4423513d2775f7b31d6917c049","analyzedAt":"2026-08-27T19:55:01.024Z","schemaVersion":2},"datasetVersion":"2026-08-28T00:17:15.603Z"}