fuel9 / DisplayMonkey

Display Monkey digital signage solution
Other
127 stars 51 forks source link

Error: Object already exists. when displaying Power BI frame #8

Closed kamwai closed 7 years ago

kamwai commented 7 years ago

Error: Object already exists. Where: Powerbi::callBack::onSuccess When: 2017-02-03T01:32:54-08:00 Info: {Error:Object already exists.\r\n,Data:{FrameId:1403,PanelId:119,DisplayId:41,Culture:en-US,Details:null}}

I have managed to get the BI report display once, but after i wipe and reinstall DisplayMonkey, it stops showing the charts now.

psined1 commented 7 years ago

Hi, greetings from the DisplayMonkey team!

When you reinstall DM you need to keep several things in mind. All passwords in DM are stored in the database as hashes (instead of actual values). A special RSA container uses a set of OS protected unique security keys to scramble and generate those hashes and then decode them back in the application. This RSA container is unique per machine (which runs IIS).

So, if you re-install or move DM to a different machine, you may want to synchronize the RSA container from the old server (from which the accounts were created) to the new one. The same goes if you change application pool identity for either DMM or DMP application – you must grant RSA container access to another account.

Please refer to "Multi Presentation Server Environment” section of the DM installation page:

http://www.displaymonkey.org/dm/documentation/installation/

The source code distribution of DisplayMonkey on GitHub contains 3 batch files for RSA container management:

grantDmRsaKey.bat exportDmRsaKey.bat importDmRsaKey.bat

Alternatively you can try simply re-entering the password on all account records which you have created. This includes PowerBI, Exchange and SSRS accounts.

Hope this helps. Please mind you that we are about to release a minor update to DM in the next few days, so stay tuned.

Thank you for choosing DisplayMonkey!

kamwai commented 7 years ago

Hi I have both management and presentation running on same machine and I have tried setup everything from scratch on a clean server 2012 and on Azure webapp, but the error still seen on both environment.

Is it something wrong with power BI embedded code? Other non-BI frames have no problem displaying.

Please let me know if you need more details.

thanks

DisplayMonkey commented 7 years ago

Are you using any other frame types which require authentication, such as SSRS report or Exchange calendar? If so, do they work without issues?

In DMM application, when you create PwrBI account, does it save without errors? If so, when you edit an existing PwrBI frame settings, does it pull dashboards/tiles/reports at all?

kamwai commented 7 years ago

Hi,

I am not using SSRS or Exchange Calendar. I re-installed everything and HTML frame works so far.

No issue when Create or Edit PowerBI account, under Resource type i tried both Reports and Tiles, but same error message seen.

Under Azure account setting, Tenant id is blank - does it matter?

Please see the attached screen shot, I can see the PowerBI logo loading but it just stay that way

Regards, Kam Wai


From: Display Monkey notifications@github.com Sent: Friday, February 3, 2017 12:38 PM To: fuel9/DisplayMonkey Cc: kamwai; Author Subject: Re: [fuel9/DisplayMonkey] Error: Object already exists. when displaying Power BI frame (#8)

Are you using any other frame types which require authentication, such as SSRS report or Exchange calendar? If so, do they work without issues?

In DMM application, when you create PwrBI account, does it save without errors? If so, when you edit an existing PwrBI frame settings, does it pull dashboards/tiles/reports at all?

- You are receiving this because you authored the thread. Reply to this email directly, view it on GitHubhttps://github.com/fuel9/DisplayMonkey/issues/8#issuecomment-277356042, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AYMnS-nNLGFfQrRR9XYrGN_nDKO4By9eks5rY5AzgaJpZM4L2Hs7.

DisplayMonkey commented 7 years ago

Hi, your PwrBI admin should be able to advise whether or not your organization is using tenants.

DisplayMonkey commented 7 years ago

Unfortunately the screenshots did not come attached, could you resend/repost please?

kamwai commented 7 years ago

untitled

kamwai commented 7 years ago

I have tried setting this up on 3 different systems - Win 2003, Win 2012 & Azure webapp.

Same problem still seen.

DisplayMonkey commented 7 years ago

OK, we have released update 1.3.3 this morning. Please install it and I will provide you instructions on how to trace into more details of the error.

kamwai commented 7 years ago

nice, will you be updating the binaries in here? http://www.displaymonkey.org/dm/download/

DisplayMonkey commented 7 years ago

Yes, if they are not there yet. Give me your email, I'll send you the zip archive otherwise.

kamwai commented 7 years ago

BTW, I have deployed to Azure webapp via github.

When i tried to add an Azure account, I am getting this error....no problem previously using the last version

_Source AzureAccount/Create Message The field IdToken must be a string or array type with a maximum length of '1000'. Stack trace at DisplayMonkey.Models.DisplayMonkeyEntities.SaveChanges() at DisplayMonkey.Controllers.AzureAccountController.d5.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Web.Mvc.Async.TaskAsyncActionDescriptor.EndExecute(IAsyncResult asyncResult) at System.Web.Mvc.Async.AsyncControllerActionInvoker.<>cDisplayClass37.b36(IAsyncResult asyncResult) at System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncResult1.CallEndDelegate(IAsyncResult asyncResult) at System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncResultBase1.End() at System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeActionMethod(IAsyncResult asyncResult) at System.Web.Mvc.Async.AsyncControllerActionInvoker.AsyncInvocationWithFilters.b3d() at System.Web.Mvc.Async.AsyncControllerActionInvoker.AsyncInvocationWithFilters.<>cDisplayClass46.b3f() at System.Web.Mvc.Async.AsyncControllerActionInvoker.<>cDisplayClass33.b32(IAsyncResult asyncResult) at System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncResult1.CallEndDelegate(IAsyncResult asyncResult) at System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncResultBase1.End() at System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeActionMethodWithFilters(IAsyncResult asyncResult) at System.Web.Mvc.Async.AsyncControllerActionInvoker.<>cDisplayClass21.<>cDisplayClass2b.b1c() at System.Web.Mvc.Async.AsyncControllerActionInvoker.<>cDisplayClass21.b_1e(IAsyncResult asyncResult)

DisplayMonkey commented 7 years ago

any luck since my last email?

kamwai commented 7 years ago

no luck, still the same error and here is the trace

{"Error":"Client ID is required.","Stack":" at DisplayMonkey.DataAccess.\u003cExecuteTransactionAsync\u003ed1e.MoveNext()\r\n--- End of stack trace from previous location where exception was thrown ---\r\n at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)\r\n at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n at DisplayMonkey.Powerbi.\u003cGetAccessTokenAsync\u003ed11.MoveNext()\r\n--- End of stack trace from previous location where exception was thrown ---\r\n at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)\r\n at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n at DisplayMonkey.Powerbi.\u003cGetAccessTokenAsync\u003ed0.MoveNext()\r\n--- End of stack trace from previous location where exception was thrown ---\r\n at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)\r\n at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult()\r\n at DisplayMonkey.getAzureToken.\u003cProcessRequestAsync\u003ed0.MoveNext()","Data":{"FrameId":1403,"PanelId":119,"DisplayId":41,"Culture":"en-us","Details":null}}


From: Display Monkey notifications@github.com Sent: Wednesday, February 8, 2017 7:32 AM To: fuel9/DisplayMonkey Cc: kamwai; Author Subject: Re: [fuel9/DisplayMonkey] Error: Object already exists. when displaying Power BI frame (#8)

any luck since my last email?

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHubhttps://github.com/fuel9/DisplayMonkey/issues/8#issuecomment-278361217, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AYMnS6YFnPkz3q5QLpJ5p1_tzKVGUzTtks5rad_2gaJpZM4L2Hs7.

psined1 commented 7 years ago

Please delete and recreate the azure account. Are you making sure to enter Client ID and Client Secret as you save the account?

Thanks // Denis

On Feb 8, 2017, at 6:49 PM, kamwai notifications@github.com wrote:

no luck, still the same error and here is the trace

{"Error":"Client ID is required.","Stack":" at DisplayMonkey.DataAccess.\u003cExecuteTransactionAsync\u003ed1e.MoveNext()\r\n--- End of stack trace from previous location where exception was thrown ---\r\n at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)\r\n at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n at DisplayMonkey.Powerbi.\u003cGetAccessTokenAsync\u003ed11.MoveNext()\r\n--- End of stack trace from previous location where exception was thrown ---\r\n at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)\r\n at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n at DisplayMonkey.Powerbi.\u003cGetAccessTokenAsync\u003ed0.MoveNext()\r\n--- End of stack trace from previous location where exception was thrown ---\r\n at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)\r\n at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult()\r\n at DisplayMonkey.getAzureToken.\u003cProcessRequestAsync\u003ed0.MoveNext()","Data":{"FrameId":1403,"PanelId":119,"DisplayId":41,"Culture":"en-us","Details":null}}


From: Display Monkey notifications@github.com Sent: Wednesday, February 8, 2017 7:32 AM To: fuel9/DisplayMonkey Cc: kamwai; Author Subject: Re: [fuel9/DisplayMonkey] Error: Object already exists. when displaying Power BI frame (#8)

any luck since my last email?

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHubhttps://github.com/fuel9/DisplayMonkey/issues/8#issuecomment-278361217, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AYMnS6YFnPkz3q5QLpJ5p1_tzKVGUzTtks5rad_2gaJpZM4L2Hs7. — You are receiving this because you commented. Reply to this email directly, view it on GitHub, or mute the thread.

thadspencer commented 7 years ago

REF: "The field IdToken must be a string or array type with a maximum length of '1000'"

I'm getting this when I edit or try and re-create the Azure account.

I've tried resetting the user password, issuing new azure ad app keys, blanking the DM database.

Any ideas of what else to try?

It was working fine then my colleague changed the Azure User's password, then this started :(

DisplayMonkey commented 7 years ago

Yes, we are working on the solution right now. Please stay tuned

DisplayMonkey commented 7 years ago

Hi @thadspencer, are you working together with @kamwai on the same problem by any chance?

thadspencer commented 7 years ago

no, but my situation seems similar

DisplayMonkey commented 7 years ago

Please give me your email, I'm going to send you a patch to try

thadspencer commented 7 years ago

thank you for the patch - working now 👍

monkey loves max columns :D

kamwai commented 7 years ago

no luck for me, may I know what you have done?


From: thadspencer notifications@github.com Sent: Thursday, February 9, 2017 9:10 AM To: fuel9/DisplayMonkey Cc: kamwai; Mention Subject: Re: [fuel9/DisplayMonkey] Error: Object already exists. when displaying Power BI frame (#8)

thank you for the patch - working now 👍

monkey loves max columns :D

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHubhttps://github.com/fuel9/DisplayMonkey/issues/8#issuecomment-278707128, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AYMnS2lQ1kwpe0U0luEGXhL1jw2LitTJks5ra0iMgaJpZM4L2Hs7.

thadspencer commented 7 years ago

DM mailed me a patch including a couple of binaries and a query to run

psined1 commented 7 years ago

That’s great! As it appears the Azure token sizes have increased recently, we will release another fix in a day or so. Thanks for your help.

thadspencer commented 7 years ago

My pleasure and thank you too, and congratulations on making such awesome software. The D Monkey rocks!

DisplayMonkey commented 7 years ago

awaiting @kamwai to confirm that the issue can be closed

kamwai commented 7 years ago

No luck, still the same error trace. I have deleted every thing and re-do already

{"Error":"Client ID is required.","Stack":" at DisplayMonkey.DataAccess.\u003cExecuteTransactionAsync\u003ed1e.MoveNext()\r\n--- End of stack trace from previous location where exception was thrown ---\r\n at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)\r\n at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n at DisplayMonkey.Powerbi.\u003cGetAccessTokenAsync\u003ed11.MoveNext()\r\n--- End of stack trace from previous location where exception was thrown ---\r\n at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)\r\n at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n at DisplayMonkey.Powerbi.\u003cGetAccessTokenAsync\u003ed0.MoveNext()\r\n--- End of stack trace from previous location where exception was thrown ---\r\n at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)\r\n at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult()\r\n at DisplayMonkey.getAzureToken.\u003cProcessRequestAsync\u003ed0.MoveNext()","Data":{"FrameId":1403,"PanelId":119,"DisplayId":41,"Culture":"en-us","Details":null}}

DisplayMonkey commented 7 years ago

Have not heard back from the OP for over 2 weeks now. Considering the issue closed now?

techie-pete commented 7 years ago

I am having the same issue as the orginal poster kamwai.
Object already exists. Where: Powerbi::callBack::onSuccess {Error:Object already exists.\r\n,Data:{FrameId:1440,PanelId:132,DisplayId:45,Culture:,Details:null}}

I have deleted the Azure account multiple times and successfully added it back. I have replaced the presentation and the management code with the latest release. I can traverse my Workspace and see Tiles and Reports to choose for Frames. I have altered the column in SQL to extend for Azure Token. I still have the red dialogue pop up every time a PowerBi component first renders on the screen.

Any thoughts? @DisplayMonkey @kamwai

Update: If I run the source code from my local machine it will connect to Azure Report without the error message. Please help me understand how the SQL hash for the stored passwords work.

Update 2: I can launch the project from my localhost in Visual Studio and successfully create a PowerBI connection and successfully display a Report. I cannot add the connection from the server I'm deployed to. I receive a message stating: AADSTS90014: The request body must contain the following parameter: 'password'., Trace ID: ......

hitzand commented 7 years ago

We are now getting the same error on editing or setting up any new Azure accounts: AADSTS90014: The request body must contain the following parameter: 'password'., Trace ID: ......

Any luck getting the connection added after getting that error, @techie-pete?

EDIT: Turns out our issue was corporate firewall rules blocking some packets. When we ran the management application under my account, which is whitelisted for Azure sites, I was able to modify Azure connections fine. The server account was not whitelisted, so requests weren't getting through properly.

DisplayMonkey commented 7 years ago

Hi, we have just released an update 1.4.0. Please upgrade and see if it will take care of your issue.

Please note that in this release we have offered an alternative encryption method, to workaround RSA container manageability issues associated with Azure deployment. Please refer to Application Settings paragraph in the DM documentation for more details and examples.

DisplayMonkey commented 7 years ago

For Azure deployments please consider the new AES with stored key encryption mode DMM application setting. Once you have selected the new encryption mode, please re-enter passwords for all accounts under application settings in DMM.

DisplayMonkey commented 7 years ago

display_monkey_2__running_

DisplayMonkey commented 7 years ago

We are going to close this particular issue for we believe it has been addressed in the latest DM release. If you still have this or similar issue. Please open another ticket. Thanks.

// DM team.