1
votes

When we attempt to GenerateToken using PowerBI API v2 to get hold of an embed token in an RLS/App Owns Data scenario, we are getting back the following response:

{"error":{"code":"DMTS_MonikerNotFoundError","pbi.error":{"code":"DMTS_MonikerNotFoundError","parameters":{},"details":[]}}}

Has anyone dealt with this before and know what could be wrong or how to understand more, i.e., is there somewhere in Power BI where I can see the logs and what is going on here, and what does DMTS stand for?

I pass in a JSON object as below to the GenerateToken call:

{
  "accessLevel": "View",
  "datasetId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  "identities": [
    {
      "username": "[email protected]",
      "datasets": [
        "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
      ]
    }
  ]
}

Another observation is that, if I pass in the master account (the user who we connect to Azure as, while embedding) instead of [email protected], then the same code works fine and we get an embed token.

In the Power BI Sample app, the above error manifests as:

Operation returned an invalid status code 'NotFound'<r><r> 
at Microsoft.PowerBI.Api.V2.Reports.<GenerateTokenInGroupWithHttpMessagesAsync>d__16.MoveNext()
1

1 Answers

0
votes

In case this helps anyone else. I now have a better understanding of the issue above.

The root of the issue seems to have been that for the Dataset that was being passed in to the API request, the owner was the publisher of the report (which it support) and it wasn't the master account.

Once the master account took over ownership (you can do this from the Power BI portal > Select your Workspace > Datasets > On the Dataset of interest, go to Settings > Take over), the embed token was issued correctly.

The effective user name that is being passed in does not seem to have any role to play until, the embed token is used to render the report.

Note: I still don't know what DMTS means, but the issue is now resolved.