March 31 - April 2, 2025, in Las Vegas, Nevada. Use code MSCUST for a $150 discount! Early bird discount ends December 31.
Register NowBe one of the first to start using Fabric Databases. View on-demand sessions with database experts and the Microsoft product team to learn just how easy it is to get started. Watch now
I haven't been able to get past this error in my workspace:
How do I get past this? I don't get an error on my desktop, just in the workspace.
This is my KB4TrainingCampaignsUserSettings Query. Last step calls a function:
This is the function that is called:
I have just the one query and I've tried all possible privacy combinations:
Any guidance would be appreciated as I don't know where to proceed from here.
Thanks.
Hi @kemppaik ,
Check the similar thread posted before.
Best Regards,
Kelly
Did I answer your question? Mark my post as a solution!
Ah, the formula firewall.
The short version of what is happening is that Power BI is very helpfully attempting to stop you from inadvertently passing data from one data source into another source, which happens to be exactly what you want to do, and are deliberately doing. This is intended to safeguard folks from pulling privileged data from one system, and through Power Query's folding mechanism having this data pushed out to another external system without them knowing; inadvertently causing a security breach.
The first thing to try in this case is to break your query into two pieces. I see that you've done this already with your source step being KB4TrainigCampaigns, but give this a try:
In the query editor (not the advanced editor) on the applied steps, right-click on your custom function step, and select 'Extract Previous'. This is going to break your query into two pieces, the first being the transformations to your initial data, and the second being only the call to the external source.
In MOST cases, this is enough to eliminate the formula firewall issue.
Doing this did not change anything. I am still getting the same error.
Ok, if this were a SQL datasource, you could get around it by using Value.NativeQuery; but it isn't.
Bear with me, because my next suggestion sounds totally stupid, but it might work. Prior to your 'Source' step, try pulling the string out of the parameter, and THEN passing it to the API call.
Something like:
this_campaign = CampaignId
and then refer to this_campaign instead of the parameter directly.
My thinking here is that the engine is nesting your outer query into your inner query, which isn't allowed, so we're forcing it to evaluate first before passing the evaluated value into the API call.
No joy. Still encountering the same error.
I ran across this in the forums...
The actual question and answer aren't the interesting part. There is an anonymous answer (Message 26)
They indicate that in order for multiple calls to Web.Contents to function correctly, they must be done in the SAME query. I assume that your source step for campaigns references another query that also makes a web.contents call to get the campaign IDs, which you are then iterating through to get the people.
Try making both calls to Web.Contents in the same query, and breaking the data into two tables AFTER you've done all of the API calls.
the easiest way, I think, would be to do all of the calls and leave the people in the unexpanded column format, create 2 more queries referencing the first, in the one, keep the unexpanded people column, and expand that, and in the other drop the column and keep the campaigns.
If it STILL doesn't work, try taking the steps of the custom function, and putting them directly inline in the single query, and see if that works.
March 31 - April 2, 2025, in Las Vegas, Nevada. Use code MSCUST for a $150 discount!
Your insights matter. That’s why we created a quick survey to learn about your experience finding answers to technical questions.
Arun Ulag shares exciting details about the Microsoft Fabric Conference 2025, which will be held in Las Vegas, NV.