Join us at FabCon Atlanta from March 16 - 20, 2026, for the ultimate Fabric, Power BI, AI and SQL community-led event. Save $200 with code FABCOMM.
Register now!The Power BI Data Visualization World Championships is back! Get ahead of the game and start preparing now! Learn more
Hi Power BI Community,
I have the following model on my Power BI:
As you can see, there is a circular relationship between the 3 tables "learners_by_month", "paths" and "courses". I know that it is not recommended, but I don't really have other options because I want filters on each table to interact with the 2 other tables. Without applying RLS, this model works fine, even if we filter the 3 tables. The relationship types used in the model don't create any ambiguities.
Though, when I add RLS and filter "paths" or "courses", I get an error looking like this on the other table:
"Impossible to load data to this visual element":
The thing is, when I think about it, I don't get why everything should be fine before RLS gets implemented, and a problem appears with RLS.
First, I thought the RLS acted like a filter. The RLS table (_RLS V3) would filter "learners_by_month", so that would be as if we directly filtered "learners_by_month" without applying RLS. An error occurs with RLS so no, it doesn't act the same way.
Then, I thought that it was a "pre-filter" modifying the data on all the tables before the "normal" filters. But if this was the case, it means that it could act like data filtering on the dataset, like Power Query would, and thus wouldn't depend on the other filters applied.
So, my question is, how exactly RLS is being applied in Power BI? I searched the forums and documentation but I couldn't find anything that could help me. If you know a website or something that details everything, any help would be much appreciated.
I know that there is a way to correct my specific problem, by having only inactive relationships and calling them in every measure, but this would take a lot of time, so I would prefer to know if other options are possible first.
Thank you in advanced!
RLS is applied along the arrows. So in your example it is only affecting learners_by_month but is ineffective for paths and courses.
In addition your data model introduces ambiguities between the right three tables. Stick with a star schema and avoid bidirectional joins.
But there is a bi-directional relationship between learners_by_month and paths, as well as between learners_by_month and courses, so RLS is applied to those tables as well, right?
And yes, I know that it is preferable to have a star schema but I can't in my example, I need a filter on one of the 3 tables to be effective on the two others.
But there is a bi-directional relationship between learners_by_month and paths, as well as between learners_by_month and courses, so RLS is applied to those tables as well, right?
not by default. You need to explicity request the security context to be passed bidirectional as well.
Another - less preferred - option is to apply the RLS rules to all dimension tables.
This solution will result in the same problem as learners_by_month will still be the only fact table to be filtered by the RLS.
In any case, the main thing I would like to figure out is "why" it doesn't work as expected
The Power BI Data Visualization World Championships is back! Get ahead of the game and start preparing now!
| User | Count |
|---|---|
| 40 | |
| 35 | |
| 34 | |
| 31 | |
| 28 |
| User | Count |
|---|---|
| 137 | |
| 102 | |
| 71 | |
| 67 | |
| 64 |