Get certified for free when you join Fabric Data Days 2026 and dive into Fabric, Power BI, SQL, AI, and other essential data skills.
Join nowJuly 7 - July 17 | Round 2 of the Power BI Dataviz World Championships. Don't miss your chance! Learn more
Solved! Go to Solution.
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:
For production scenarios, the recommended approach is to move the translation outside Power BI, for example:
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!
Hi @DSirisha,
Checking in to see if your issue has been resolved. let us know if you still need any assistance.
Thank you.
Hi @DSirisha,
Checking in to see if your issue has been resolved. let us know if you still need any assistance.
Thank you.
Hi @DSirisha,
THis has nothing to do with the M code in your report.
YOu need to make sure that all connections used are set as the "organizational" privacy level in the service. Modify all connections to be the same and your report will work.
Proud to be a Super User! | |
Hi,
This is a common limitation in Power BI Service when combining data from multiple sources (Azure SQL + Web API).
The key point is that "Ignore Privacy Levels and improve performance" only works in Power BI Desktop. After publishing, Power BI Service enforces privacy levels and data source isolation during refresh.
A few things to check:
Go to:
Dataset Settings → Data Source Credentials
Ensure both:
have compatible privacy levels (typically Organizational).
If your M code calls Google Translate for each row, Power BI Service may treat this as combining data from:
which often triggers the "Unable to combine data" error.
Try buffering the SQL table before calling the API:
BufferedTable = Table.Buffer(Source)
This sometimes helps Power Query treat the SQL data as local before invoking the web request.
For production scenarios, a better approach is often:
If you're using an On-Premises Data Gateway:
Using RelativePath is recommended for dynamic web requests, but it does not bypass Power BI Service privacy-level restrictions.
Bottom Line
The issue is not that Google Translate API is incompatible with Azure SQL. The problem is that Power BI Service is enforcing privacy isolation between the SQL source and the Web API call. The most reliable solutions are:
If you can share the relevant M code (especially the Web.Contents call), the community can provide a more targeted solution.
Thanks!
below M Code is using in my report
BufferedTable = Table.Buffer(#"Source"),
TranslateText = (inputText as text) as any =>
let
jsonResponse =
try Json.Document(
Text.FromBinary(
Web.Contents(
"https://translate.googleapis.com",
[
RelativePath = "translate_a/single",
Query = [
client = "gtx",
sl = "auto",
tl = "en",
dt = "t",
q = inputText
],
ManualStatusHandling = {400, 404, 500}
]
)
)
)
otherwise null,
translatedText =
if jsonResponse <> null
and List.NonNullCount(jsonResponse) > 0
and List.NonNullCount(List.First(jsonResponse)) > 0
then
try List.First(List.First(jsonResponse)){0}
otherwise null
else
null
in
translatedText,
#"Added Custom1" = Table.AddColumn(
BufferedTable,
"Translated",
each if [ResponseShortText] <> null and [ResponseShortText] <> ""
then TranslateText([ResponseShortText])
else null
)
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:
For production scenarios, the recommended approach is to move the translation outside Power BI, for example:
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!
Join us in Barcelona for FabCon and SQLCon, the Fabric, Power BI, SQL, and AI community event. Save €200 with code FABCMTY200.
Join Data Days 2026: 60 days of free live/on-demand sessions, challenges, study groups, and certification opportunities.
| User | Count |
|---|---|
| 25 | |
| 10 | |
| 10 | |
| 6 | |
| 5 |