{"record":{"id":"966d9e17bb466774","repo":"Budibase/budibase","slug":"failed-to-fetch-sharepoint-list-data-response-s","errorCode":null,"errorMessage":"Failed to fetch SharePoint list data (${response.status})","messagePattern":"Failed to fetch SharePoint list data \\((.+?)\\)","errorType":"http","errorClass":"HTTPError","httpStatus":400,"severity":"error","filePath":"packages/server/src/sdk/workspace/ai/knowledgeSources/sharepoint/connection.ts","lineNumber":508,"sourceCode":"  initialUrl: string,\n  bearerToken: string,\n  signal?: AbortSignal\n): Promise<T[]> => {\n  const pages: T[] = []\n  let nextLink = initialUrl\n\n  while (nextLink) {\n    const response = await requestWithRetries(\n      operation,\n      () =>\n        fetch(nextLink, {\n          signal,\n          headers: { Authorization: bearerToken },\n        }),\n      signal\n    )\n    if (!response.ok) {\n      throw new HTTPError(\n        response.status === 401 || response.status === 403\n          ? \"Access denied by Microsoft Graph. Ensure SharePoint read permissions are granted.\"\n          : `Failed to fetch SharePoint list data (${response.status})`,\n        400\n      )\n    }\n\n    const page = (await response.json()) as T\n    pages.push(page)\n    const nextPageLink = page[\"@odata.nextLink\"]\n    if (!nextPageLink) {\n      nextLink = \"\"\n    } else if (!isAllowedSharePointNextLink(nextPageLink)) {\n      throw new HTTPError(\"Invalid SharePoint pagination URL\", 400)\n    } else {\n      nextLink = nextPageLink\n    }\n  }","sourceCodeStart":490,"sourceCodeEnd":526,"githubUrl":"https://github.com/Budibase/budibase/blob/a81a902e9a8fe55b467d106765f6638f12e35c49/packages/server/src/sdk/workspace/ai/knowledgeSources/sharepoint/connection.ts#L490-L526","documentation":"Error \"Failed to fetch SharePoint list data (${response.status})\" thrown in Budibase/budibase.","triggerScenarios":"Thrown at packages/server/src/sdk/workspace/ai/knowledgeSources/sharepoint/connection.ts:508 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":"a81a902e9a8fe55b467d106765f6638f12e35c49","analyzedAt":"2026-08-29T01:03:10.972Z","schemaVersion":2},"datasetVersion":"2026-08-29T02:17:18.158Z"}