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
Using DirectQuery with Dynamic M Query Parameter binding.
I have a AI Summary table visual, The M Query paraters which i am passing in binding will hit the snowflake source and updating the table visual. which is generated using a Snowflake stored procedure. The parameters include Area, Market, TA, Brand, etc.
In report i have waterfall visuals support drill-down (Area → Market and TA → Brand).
AI Summary updates correctly when parameter slicers are used.
Issue:
When I use parameter-bound columns directly in the visual hierarchy, the first-level drill-down works correctly.
However, after drilling further down and selecting a second-level item (for example Brand or Market), the entire dashboard breaks in Power BI desktop with:
“Unsupported filter – this visual is producing a filter that’s unsupported for dynamic query parameters.”
Observation:
If I replace parameter-bound columns with normal fact table columns in the visuals, drill-down works perfectly and no error occurs.
But in that case, the AI Summary no longer updates dynamically because the stored procedure relies on Dynamic M Query Parameter binding.
Question:
Is there any supported approach or best practice to:
Keep interactive drill-down visuals,
Avoid unsupported filter errors with Dynamic M Query Parameters,
And still dynamically trigger/update the stored procedure or AI Summary based on visual selection?
Solved! Go to Solution.
This looks like a limitation of Dynamic M Query Parameters rather than an issue with Snowflake or the stored procedure itself. Dynamic M parameters are designed to receive values from supported slicers or filter cards, but not every filter generated by report interactions is supported. In this scenario, when you use the parameter-bound columns directly in a visual hierarchy and then drill further down, Power BI can generate a drill-down / multi-field / cross-filter type of filter. Those filter types are not supported for Dynamic M Query Parameters, which explains why the first level may work but the next drill level breaks the report with the “unsupported filter” message.
The more reliable pattern is to separate the two behaviors. Use normal model columns for the interactive waterfall visuals and drill-down experience, and use dedicated parameter tables/slicers or filter cards to drive the Dynamic M parameters that are passed to Snowflake. For example, have separate slicers for Area, Market, TA and Brand, configured as single-select or multi-select according to how the M parameter is defined. Then let the AI Summary/stored procedure respond to those slicer selections, not to visual drill-down selections.
If the requirement is that clicking a waterfall item must directly trigger the stored procedure, then I do not think this is currently a supported native pattern with Dynamic M Query Parameters. Possible alternatives are to precompute the summary at the required grain and filter it normally in Power BI, use slicer-driven cascading selections instead of drill-down, or move the interactive procedure-triggering logic outside the standard Power BI visual interaction model. I would also avoid using parameter-bound columns inside visual hierarchies, because drill-down and cross-filter interactions can easily produce unsupported filters for Dynamic M parameters.
If this post helps, then please consider Accepting it as the solution to help the other members find it more quickly
Hi @Gurureddyvelaga ,
Could you please confirm if the issue has been resolved? If not, feel free to reach out if you have any further questions.
Your update would be helpful for other members who may face a similar issue.
Best Regards,
Abdul Rafi
Hi @Gurureddyvelaga ,
Thank you for reaching out to Microsoft Fabric Community and Thanks to @Ritaf1983 and @lbendlin for Sharing valuable insights.
Just wanted to check if you had the opportunity to review the information provided. Please feel free to contact us if you have any further questions.
Best Regards,
Abdul Rafi.
This looks like a limitation of Dynamic M Query Parameters rather than an issue with Snowflake or the stored procedure itself. Dynamic M parameters are designed to receive values from supported slicers or filter cards, but not every filter generated by report interactions is supported. In this scenario, when you use the parameter-bound columns directly in a visual hierarchy and then drill further down, Power BI can generate a drill-down / multi-field / cross-filter type of filter. Those filter types are not supported for Dynamic M Query Parameters, which explains why the first level may work but the next drill level breaks the report with the “unsupported filter” message.
The more reliable pattern is to separate the two behaviors. Use normal model columns for the interactive waterfall visuals and drill-down experience, and use dedicated parameter tables/slicers or filter cards to drive the Dynamic M parameters that are passed to Snowflake. For example, have separate slicers for Area, Market, TA and Brand, configured as single-select or multi-select according to how the M parameter is defined. Then let the AI Summary/stored procedure respond to those slicer selections, not to visual drill-down selections.
If the requirement is that clicking a waterfall item must directly trigger the stored procedure, then I do not think this is currently a supported native pattern with Dynamic M Query Parameters. Possible alternatives are to precompute the summary at the required grain and filter it normally in Power BI, use slicer-driven cascading selections instead of drill-down, or move the interactive procedure-triggering logic outside the standard Power BI visual interaction model. I would also avoid using parameter-bound columns inside visual hierarchies, because drill-down and cross-filter interactions can easily produce unsupported filters for Dynamic M parameters.
If this post helps, then please consider Accepting it as the solution to help the other members find it more quickly
Most likely it works when you supply a scalar value, and breaks when you supply multiple values.
Refer to the documentation for column binding - you need to use Value.Is to probe if you get a scalar or a list, and then modify your native query accordingly.
Tip: Treat everything as a list (so a scalar value is a single item list) for easier upstream processing.
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 |
|---|---|
| 29 | |
| 28 | |
| 26 | |
| 25 | |
| 18 |
| User | Count |
|---|---|
| 54 | |
| 47 | |
| 39 | |
| 28 | |
| 21 |