Forum Discussion
Power BI Service Refresh Error: Unable to combine data (Azure SQL and Google Translate API Privacy L
- 1 month ago
Hi,
Thanks for sharing the M code. Your implementation looks correct from a Power Query perspective, and using Table.Buffer() is a good optimization. However, the issue is not with the M syntax—it's with how Power BI Service handles privacy and data source combinations.
In your code:
BufferedTable = Table.Buffer(#"Source")
BufferedTable only buffers the Azure SQL data in memory. When Table.AddColumn() calls:
Web.Contents(
"https://translate.googleapis.com",
...
)
Power BI Service still sees this as combining Azure SQL with a Web data source for every row. During scheduled refresh, the Mashup Engine enforces privacy rules and blocks this combination, resulting in the "Unable to combine data" error.
A few recommendations:
- Verify that both the Azure SQL source and the Google Translate API are configured with the same privacy level (preferably Organizational) in the dataset settings.
- If you're using an On-premises Data Gateway, ensure both data sources are configured there with valid credentials.
- Table.Buffer() and RelativePath improve performance and are best practices, but they do not bypass Power BI Service privacy restrictions.
- If the dataset contains many rows, calling Web.Contents() once per row is also likely to hit refresh/performance limitations.
For production scenarios, the recommended approach is to move the translation outside Power BI, for example:
- Translate the data before loading it into Azure SQL.
- Use Azure Functions, Power Automate, Dataflows, or an ETL process to populate a translated column.
- Import the translated data directly into Power BI instead of invoking the API during refresh.
Based on the M code you've shared, this appears to be a Power BI Service privacy/mashup limitation rather than an issue with your code.
Hope this helps!
Thanks!