UXP Workspace not persistent

,

A UXP hybrid panel (a plugin declaring a native .uxpaddon) is not restored into the workspace after Premiere restarts and when changing workspace and goint back. The panel entry is saved in the layout and the plugin is discovered normally, yet workspace restore does not re-instantiate it. The exact same plugin installed at a plain .../External/ path restores correctly. The only differentiator is the install path.

Environment

  • Premiere Pro 26.x (observed 26.0 and 26.3), macOS.
  • UXP hybrid plugin (manifestVersion 6, enableAddon + addon).
  • Installed via Adobe’s UnifiedPluginInstallerAgent (UPIA), which is what the aescripts Manager and the ZXP Installer call under the hood (confirmed by aescripts).

What we isolated (same plugin, one variable at a time)

addon install path persists
yes $systemPlugins/<username>/External/ NO
no $systemPlugins/<username>/External/ NO
no $localPlugins/External/ YES
yes $localPlugins/External/ YES

Plus a real all-users install: a non-hybrid plugin at $systemPlugins/External/ (plain, no <username>) persists.

So it is not the addon, not manifestVersion 6, not a plugin category. It is the install path. Only $systemPlugins/<username>/External/ fails to restore; plain .../External/ paths (user or all-users system) restore.

Why hybrids are affected
UPIA installs hybrids to $systemPlugins/<username>/External/ (elevated per-user placement of native code; the EMCL log shows CUxpHybridExtension and makeDirectory /Library/.../UXP/Plugins/<username>/External then “Trying again with elevated permission”). Non-hybrid all-users installs go to plain $systemPlugins/External/. So every hybrid installed via UPIA lands at the failing path.

Cleanest A/B (rules out the layout file and the registry as the cause)

  • In one saved workspace, a hybrid panel entry and a non-hybrid panel entry are byte-identical except the UXPPluginId value (both SaveViewStateWhenDestroyed=true, UXPExtensionType=panel, UXPPanelId=mainPanel, same flags). On reload, the plain-External one is restored and the <username>/External one is not.
  • In premierepro.json, the two entries are identical except the path value; both type:"uxp", status:"enabled".
  • The plugin appears in Window > UXP Plugins immediately at startup, so this is not a discovery or timing issue.

Conclusion: workspace restore reads two structurally identical entries, resolves each UXPPluginId to its install path, and fails to re-instantiate only the one whose path is $systemPlugins/<username>/External/. This points at path resolution during workspace restore, not at the saved layout or plugin discovery.

Repro

  1. Install a UXP hybrid panel via UPIA (it lands at .../UXP/Plugins/<username>/External/<id>).
  2. Open the panel, dock it, save the workspace.
  3. Quit and relaunch Premiere.
  4. The panel is not restored (you must reopen it via Window >UXP Plugins). A non-hybrid panel in the same workspace restores.

Ask
Please handle the $systemPlugins/<username>/External/ install path in workspace restore the same way plain .../External/ paths are handled. Since UPIA installs every hybrid to this path, no hybrid UXP panel currently persists in the workspace.

I can provide two minimal .ccx plus the exact registry and workspace XML snippets on request.

1 Like

@bbb_999 @CathyDong I can also confirm this issue. This will be a pretty important one to fix in the near future as more plugins are moving to UXP, also since Hybrid is required in most cases to fully migrate from CEP.

Thanks

1 Like

After further testing, even though the global directory is supposed to work, Premiere isn’t picking up panels there:

C:\Program Files\Common Files\Adobe\UXP\Plugins\<user>\External

Only the local directory works in Premiere at the moment:

C:\Users\<username>\AppData\Roaming\Adobe\UXP\Plugins\External

Upon further testing it is possible to manually install UXP plugins so they will be restored in workspaces by extracting a CCX here:

C:\Users\<username>\AppData\Roaming\Adobe\UXP\Plugins\External

and updating the JSON file here with the UXP Plugin info:
C:\Users\<username>\AppData\Roaming\Adobe\UXP\PluginsInfo\v1\premirepro.json

However, since manually installing this way bypasses UPIA it means the plugin does not show up in the Adobe CC app or the aescripts ZXP Installer so the user has no way to uninstall aside from manually deleting the files or for a dev to ship a custom uninstaller.

We’re going to need to wait for a proper fix on the Adobe-side to really solve this one.

1 Like

Thank you very much for this information. Hoping Adobe will solve this soon !

Does somebody from @peterflynn @ryanstewart can solve this problem with a Premiere update ?

[Neither of them work on Premiere, haha…]

Adobe already provides ‘paved road’ installation mechanisms; we have no plans to “discover and manage plugins installed via unsupported methods”.

For testing, manual installation is fine.
For distribution, we recommend a supported installation method. :slight_smile:

1 Like

Thanks for the clarification, and good to know about the routing. I’ll stop pinging the wrong people.

To be clear though, we’re not asking Adobe to support manually installed plugins. Agreed, that’s a dead end, and we’ll keep distributing through UPIA / the ZXP Installer.

The original issue is about the supported path. UPIA installs every hybrid plugin to:

  • macOS: $systemPlugins//External/
  • Windows: C:\Program Files\Common Files\Adobe\UXP\Plugins\External

That is the paved road. We’re not choosing that location, UPIA is. And it’s the one path that workspace restore fails to re-instantiate. Plain …/External/ paths restore fine, with the same plugin, same manifest, same workspace entry. So today no hybrid UXP panel installed the supported way survives a Premiere restart.

Could you point us to whoever owns this on the Premiere side, or tell us whether a bug has been filed? I still have two minimal .ccx files plus the exact premierepro.json and workspace XML snippets, happy to send them over to make the repro quick.

Thanks!

Could you point us to whoever owns this on the Premiere side

That’s me.

In the previous conversation, it wasn’t clear to me that this was specific to hybrid UXP plugins.

Yes, we’re tracking that, and they should be supported; changes may be required in CCD/UPIA, but for now, we’re pursuing it as a Premiere issue.

Perfect, thanks a lot for looking into it. Good to know it’s being tracked!

1 Like