Forum Discussion
DataFormat Error when refreshing data from Azure Storage Table
- 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.
Thanks for the reply v-hashadapu !
I'm not quite sure if the fix you mentioned above, which uses OData.Feed instead, works in my scenario. I tried to use OData.Feed before, but currently I access the Azure Table with AccountKey, which seems not supported in OData.Feed. I tried to use the same key in the Web API selection when providing credential for OData feed, but did not work. Any idea if I can use that AccountKey to access the Azure Table with OData.Feed method?
Thank you!
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.