Notation Express "Allow connection" dialog

Hi, is anyone else getting this “Allow connection” dialog upon first launching Dorico after boot? Any way to allow the connection, set and forget?

I contacted Philip from Notation Expression a while back, but we were unable to find the culprit. He confirmed this is not supposed to happen. I was in the middle of a project and couldn’t reinstall Dorico, but after the 4.3 update, I decided to do a fresh install, as well as Notation Express and the Stream Deck app, just to make sure. Unfortunately, I’m still getting the dialog.

Windows 11 21H2, Dorico 4.3 and Stream Deck 6.0.1.17722

The dialog can appear in two different scenarios:

  1. Dorico’s splash screen, halting the initialization process until I press OK (that’s the worst case)
  2. After the splash screen, on top of the Steinberg Hub

I rebooted my computer several times and #1 seems to be the one that happens the most.

Here are the lines in application.log related to Notation Express:

2022-09-27 10:23:25.549 [info] Posting command (force): Application.ShowAllowRemoteClientDialog Name=Notation Express Stream Deck Plugin for Dorico, ID=0, Post=true
2022-09-27 10:23:25.591 [info] Executing command: Application.ShowAllowRemoteClientDialog?Name=Notation Express Stream Deck Plugin for Dorico&ID=0
2022-09-27 10:23:28.197 [info] notifyPostCommandExecute: Application.ShowAllowRemoteClientDialog?Name=Notation Express Stream Deck Plugin for Dorico&ID=0 (2606 ms)

It seems that Dorico is forcing Application.ShowAllowRemoteClientDialog and won’t remember that I already allowed Notation Express. If I close and open Dorico again in the same session, the RemoteClientDialog doesn’t appear and is also omitted from the log file.

I’ve attached a few log files, in case it helps.
NE_D4_log.zip (33.7 KB)

The only reasons why you would be repeatedly prompted to accept the connection would be if Notation Express isn’t storing the handshake secret properly, or if Dorico isn’t storing it.

Provided Notation Express sends the right handshake secret (which it receives when the first time it connects to Dorico) and it matches the one that Dorico expects, then it won’t prompt you to allow the connection.

I don’t know what path Notation Express uses to cache the handshake information, but that would be my next port of call – perhaps @pianoleo or @davemacdo know off the tops of their heads where that information is saved by Notation Express.

I’m not at my computer to check, but I think this location is handled by the Stream Deck app, like a browser cache. I haven’t seen the behavior above or heard reports of it from other users. I also am not a Windows user, so I can’t test it very well. Is it possible that Stream Deck needs some kind of file read/write permission?

Thank you, Dave and Daniel.

Both Dorico and Stream Deck are running with elevated privileges, and folders have all read/write permissions.

I noticed that the “Token” field in remoteclients.xml changes to a new value once I click OK to connect. And it stays the same value until I reboot my computer and get another “Allow connection” dialog, then it changes value. Is this behaviour expected?

It’s like Dorico won’t remember that I already gave the permission to accept a new token from Stream Deck.

Yes, the value in Dorico’s remoteclients.xml file will change each time you are prompted, because it generates a new handshake value in the event that the connecting client doesn’t provide the expected value that it sent last time. So the issue, somehow, is with the cacheing of the right handshake value on the Stream Deck side – it retains it correctly within the session, but that doesn’t survive a system restart. I’m afraid I don’t know why that would be: I have neither a Stream Deck nor Notation Express.