Reputation: 980
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()
Upvotes: 1
Views: 1446
Reputation: 21
I had a problem that was similar to this. I had a report that I published to my personal workspace. When I realized that I couldn't embed reports from my personal workspace I created a new workspace and then copied the report over to that workspace. Everything worked when view the report from the portal but I was getting this exact same error in my embedded app. What I didn't realize was that copying the report doesn't also copy the datasource. The datasource was still in my personal workspace which doesn't allow embeded access. I ended up deleting the report and dataset from both workspaces and then republishing it to my shared workspace. After doing this and changing the reportid to the newly uploaded one everything worked perfectly.
Upvotes: 0
Reputation: 980
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.
Upvotes: 1