Forum Discussion

LondiweThusi's avatar
LondiweThusi
Regular Visitor
6 months ago
Solved

Embedded Power BI composite report – DirectQuery semantic model visuals not loading

Hi everyone,

I’m facing an issue with an embedded Power BI composite report and would appreciate any guidance.

Scenario:

  • The report uses two data sources:

    • A Fabric semantic model (DirectQuery)

    • A Lakehouse table (Import mode) created from an Excel file

  • The report works correctly in the Power BI/Fabric workspace, with data visible from both sources.

  • The report uploads successfully via our custom UI.

Problem:
When the report is opened via our embedded web application:

  • Only the Lakehouse (Import) visuals load

  • Visuals that rely on the Fabric semantic model (DirectQuery) fail

  • Error received: “Failed to move the data reader to the next row”

  • This happens even though the report, semantic model, and Lakehouse are in the same workspace

What we’ve already done:

  • Verified permissions on the workspace and semantic model

  • Confirmed dataset and report IDs are correctly referenced

  • Implemented a manual step to inject all upstream datasets into the embed token (not just the immediate dataset), using a configuration table

  • The issue still persists

Questions:

  • Are there known limitations when embedding composite models (DirectQuery + Import)?

  • Are there additional permissions or configuration steps required for embedded scenarios?

  • What typically causes DirectQuery semantic model visuals to fail only in embedded apps?

Any insights or similar experiences would be greatly appreciated.
Thanks in advance!

  • v-prasare's avatar
    v-prasare
    6 months ago

    Hi  LondiweThusi,

    This behavior strongly aligns with how embedded evaluates identity and permissions in composite models, especially when DirectQuery-to-semantic-model is involved. Even though the report works in the Fabric portal and all dataset IDs are included in the embed token, the embedded runtime still validates effective permissions for each underlying semantic model at query time. In embedded scenarios, this identity propagation across semantic models is more restrictive and can fail silently, surfacing as a generic QueryUserError, even when no RLS or gateway is configured.

     

    Microsoft documents these limitations and troubleshooting steps here:
    https://learn.microsoft.com/en-us/power-bi/developer/embedded/embedded-troubleshoot


    Additionally, SQLBI explains how permissions are evaluated in composite models and why every referenced dataset must independently resolve access for the embedded identity:
    https://www.sqlbi.com/blog/marco/2021/06/03/setting-the-right-permissions-for-users-of-composite-models/

     

     

     

     

     

    Thanks,

    Prashanth

5 Replies

  • Hi LondiweThusi 

     

    I can understand your problem. As I'm using my Power BI report with import mode., embedded into Web applictaion, it's working fine. I'm not imlemented the Direct Query embeded Power BI in web application. Based on your problem let me share my thoughts as follws.

    • As per your error 'Failed to move the data reader to the next row' , it means PBI tried to execute the Direct Query but it doesn;t retrive rows from the source. The same is working for import mode becuse of data is cached. So, Hope it caused by missing dataset authorization in the embed token.
    • Cross check, make sure that your embedded token include all dataset ids such as composite datset and upstream semnatic modles. Use the GenrateTokenGroup API with datsets array covering every datatset
    • If you're appled any RLS, pass effective identites in the embed configuration. Make sure to confirm embeded identity has Read access to the semantic model.
    • As of now there is no limitation for compostite models.
    • Also, if your DirectQuery source is on premises, please configure gateway properly. 

     

    Please let know if this helps you

     

    Thank you!!

     

    Did I answer your question? Mark my post as a solution!

    Proud to be a Super User!

     

    • LondiweThusi's avatar
      LondiweThusi
      Regular Visitor

      Thank you so much for your prompt response and for taking the time to share your thoughts — I really appreciate it.

      To clarify my setup a bit further:

      • The composite report is built on two datasets:

        • One semantic model using DirectQuery

        • One Lakehouse table, where the source was a CSV file imported into the Lakehouse and then materialized as a table (Table ABC)

      • We have included all required dataset IDs in the embed token — both the composite dataset and the upstream semantic model datasets.

      • RLS has not been applied to this model.

      • The DirectQuery source is not on-premises.
        Both data sources are cloud-based and located within the same Fabric workspace:

        • The Lakehouse

        • The Fabric semantic model

      • Since both sources are in the same workspace and cloud-based, no gateway is involved.

      Despite all of this, the report still fails to open in the web application and returns a QueryUserError when accessed via the embedded app. 
      we cannot switch a DirectQuery-to-semantic-model data source to Import, Storage Mode is greyed out on each table thats linked to the semantic model

      Given this, it seems the issue may not be related to missing dataset IDs, gateway configuration. If you have any further thoughts on potential Fabric or embedded DirectQuery, identity handling, or composite model behavior in embedded scenarios,

      I’d really appreciate more insights

      Thanks again for your help 

      • v-prasare's avatar
        v-prasare
        Community Support

        Hi  LondiweThusi,

        This behavior strongly aligns with how embedded evaluates identity and permissions in composite models, especially when DirectQuery-to-semantic-model is involved. Even though the report works in the Fabric portal and all dataset IDs are included in the embed token, the embedded runtime still validates effective permissions for each underlying semantic model at query time. In embedded scenarios, this identity propagation across semantic models is more restrictive and can fail silently, surfacing as a generic QueryUserError, even when no RLS or gateway is configured.

         

        Microsoft documents these limitations and troubleshooting steps here:
        https://learn.microsoft.com/en-us/power-bi/developer/embedded/embedded-troubleshoot


        Additionally, SQLBI explains how permissions are evaluated in composite models and why every referenced dataset must independently resolve access for the embedded identity:
        https://www.sqlbi.com/blog/marco/2021/06/03/setting-the-right-permissions-for-users-of-composite-models/

         

         

         

         

         

        Thanks,

        Prashanth

  • v-prasare's avatar
    v-prasare
    Community Support

    Hi LondiweThusi 

    We would like to confirm if our community members answer resolves your query or if you need further help. If you still have any questions or need more support, please feel free to let us know. We are happy to help you.

     

     

     

    Thank you for your patience and look forward to hearing from you.
    Best Regards,
    Prashanth Are
    MS Fabric community support

  • v-prasare's avatar
    v-prasare
    Community Support

    Hi @LondiweThusi 

    We would like to confirm if our community members answer resolves your query or if you need further help. If you still have any questions or need more support, please feel free to let us know. We are happy to help you.

     

     

     

    Thank you for your patience and look forward to hearing from you.
    Best Regards,
    Prashanth Are
    MS Fabric community support