I have a UXP plugin (manifest v6) for Premiere Pro 26.2 that connects to a local WebSocket. When loaded via UDT, the WebSocket connects fine. When installed via .ccx through Creative Cloud Desktop, it fails on cold start with: Permission denied to the url ws://127.0.0.1:7890. Manifest entry not found.
The strange part, if I do this sequence, it starts working:
-
Cold start Premiere with my installed plugin → WebSocket fails (permission denied)
-
Without quitting Premiere, open UDT and load the dev version of the plugin → connects in dev version
-
Unload the dev version in UDT
-
Re-install plugin and load from Window → UXP Plugins → WebSocket now connects in the installed version
-
Quit Premiere → next cold start fails again until I do the UDT dance
Things I’ve already verified or tried:
-
Developer Mode is enabled (Premiere → Settings → Plugins)
-
Manifest v6, plugin installs and appears correctly in Window → UXP Plugins
-
Tried
"domains": "all"(string), tried array withws://127.0.0.1:7890,ws://localhost:7890, with and without trailing slashes -
Confirmed the installed plugin reads the updated manifest
-
Bridge is confirmed listening on 127.0.0.1:7890 (verified via lsof)
-
Repackaged and reinstalled the .ccx multiple times
Is there something I’m missing in the manifest, a setting I should enable, or is this expected behavior? I’m a beginner and this is my first plugin so I assume I’m doing something wrong, but I can’t figure out what.
For context on the architecture: the WebSocket connects to a separate C++ control surface plugin that I built to fire cmd.* command strings via ExecuteCommandByID. I’m aware Hybrid Plugins are the new path forward and may avoid this issue entirely, but if there’s a fix for the WebSocket approach, I’d love to know before refactoring.
Thanks in advance for any help!!!