Hi,
This is a known issue with how the Power BI Service handles OAuth refresh tokens with Databricks. Databricks enables Single-Use Refresh Tokens (SURTs) by default for Power BI integrations. If a token refresh fails mid-flight (network hiccup, timing, etc.), the old token is consumed, but the new one is never stored, leaving the connection in a state that requires manual re-authentication.
Recommended fix: Switch to M2M OAuth with a Databricks Service Principal. This uses client credentials instead of user-bound refresh tokens, which eliminates the problem entirely. It's GA and documented here:
Note: M2M OAuth is configured after publishing your semantic model — go to the semantic model's Data source credentials -> Edit Credentials -> Basic, then enter your service principal's application ID and secret.
Other things to check in parallel:
- Entra ID Conditional Access policies: these can enforce shorter session lifetimes that conflict with refresh schedules
- Raise a Microsoft support case: the DMTS_OAuthTokenRefreshFailedError is in Microsoft-owned code, so they may have additional mitigations on their side
- Contact Databricks support to request disabling SURTs for the Power BI app integration on your account and extending refresh token TTL
I hope that helps, let me know if you have any questions.