Lionel Morlot
03/30/2026, 3:30 PMkapa.ai
03/30/2026, 3:31 PMFiles.Read.All (Application permission)
• Sites.Read.All (Application permission)
Also ensure that admin consent has been granted for these permissions. [SharePoint setup]
3. Expired Client Secret
Check that your client secret hasn't expired in Azure AD. [SharePoint Lists troubleshooting]
4. Long-Running Syncs (Architectural Issue)
If you're syncing large SharePoint drives (60GB+, 10K+ files) and the sync takes longer than ~1 hour, there is a known architectural issue where SharePoint embeds tempauth JWT tokens directly in download URLs with a 1-hour TTL. These tokens expire mid-sync independently of the OAuth access token. This is a confirmed bug that has been escalated to Airbyte's engineering team, and no workaround is currently available for this case. [SharePoint 401 issue] Quick Checklist • ✅ Re-authenticate the source connection
• ✅ Verify Files.Read.All and Sites.Read.All application permissions are granted with admin consent
• ✅ Check that your client secret hasn't expired
• ✅ Confirm the Tenant ID is correct
If none of these resolve the issue, consider opening a GitHub issue with your sync logs for further investigation. 👍 0 button 👎 0 button ℹ️ Tip: Mention @kapa.ai in the thread for follow-ups or DM the app for 1-to-1 help.Lionel Morlot
03/30/2026, 3:32 PMkapa.ai
03/30/2026, 3:32 PMclient_id, client_secret, and refresh_token yourself, and Airbyte will handle token refreshes automatically from that point on. [Partial OAuth legacy] Option 2: Build Your Own OAuth Flow (AI Agents / API) If you're using Airbyte's API, you can fully replicate the OAuth flow programmatically:
Step 1 (Optional): Override OAuth app credentials if you want to use your own client ID/secret instead of Airbyte's:
curl -X PUT https://api.airbyte.ai/api/v1/oauth/credentials \
-H 'Authorization: Bearer <operator_token>' \
-H 'Content-Type: application/json' \
-d '{
"connector_type": "sharepoint",
"configuration": {
"client_id": "your-client-id",
"client_secret": "your-client-secret"
}
}'
[OAuth overrides]
Step 2: Initiate the OAuth flow to get a consent URL:
curl -X POST https://api.airbyte.ai/api/v1/integrations/connectors/oauth/initiate \
-H 'Authorization: Bearer <operator_token>' \
-H 'Content-Type: application/json' \
-d '{
"customer_name": "user_12345",
"connector_type": "sharepoint",
"redirect_url": "https://yourapp.com/oauth/callback"
}'
[OAuth initiate] For SharePoint Specifically Since SharePoint Enterprise uses Application permissions (not delegated), you can skip the interactive OAuth flow entirely and configure the connector directly with client_id, client_secret, and tenant_id obtained from Azure AD. [SharePoint setup]
This is likely the most practical path if the built-in OAuth flow is broken for you. 👍 0 button 👎 0 button ℹ️ Tip: Mention @kapa.ai in the thread for follow-ups or DM the app for 1-to-1 help.