Forum Discussion

XichengWang's avatar
XichengWang
Microsoft Employee
1 year ago
Solved

DataFormat Error when refreshing data from Azure Storage Table

I have a dashboard to show data from my Azure Storage Table. It was working correctly before June.13. But recently I got an error when auto refreshing data in my semantic model:   DataFormat.Error:...
  • v-hashadapu's avatar
    v-hashadapu
    1 year ago

    Hi XichengWang , Thank you for reaching out to the Microsoft Community Forum.

     

    Power BI Service has started enforcing stricter Accept headers on OData requests, such as: application/json;odata=fullmetadata;streaming=true;charset=utf-8. Azure Table Storage doesn’t support this format and Power BI Service doesn’t allow overriding these headers, even if you configure OData.Feed() with custom settings in Power Query. That’s why your model still refreshes in Power BI Desktop but fails in the Service, including during manual refreshes.

     

    This issue can’t be resolved by using OData.Feed() with an AccountKey. The connector is no longer reliable for Azure Table Storage in the Power BI Service, due to both unsupported metadata formats and lack of support for AccountKey-based authentication. Power BI Service strips custom headers and only supports OAuth or SAS-based access for OData sources.

     

    The only stable approach is to stop using OData entirely and connect to Azure Table Storage through its REST API using Web.Contents(). This lets you control headers directly and avoids the metadata negotiation that causes refresh failures. If you’re using a SAS token, the connection can be made without needing a gateway, since the token handles authentication through the URL itself.

     

    If you need to use an AccountKey or require custom headers, the recommended solution is to create an Azure Function or small API that reads from Azure Table Storage and returns clean JSON. This avoids all OData and header constraints and refreshes reliably in Power BI Service without requiring a gateway.

     

    If this helped solve the issue, please consider marking it “Accept as Solution” so others with similar queries may find it more easily. If not, please share the details, always happy to help.
    Thank you.