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
UXPPluginIdvalue (bothSaveViewStateWhenDestroyed=true,UXPExtensionType=panel,UXPPanelId=mainPanel, same flags). On reload, the plain-External one is restored and the<username>/Externalone is not. - In
premierepro.json, the two entries are identical except thepathvalue; bothtype:"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
- Install a UXP hybrid panel via UPIA (it lands at
.../UXP/Plugins/<username>/External/<id>). - Open the panel, dock it, save the workspace.
- Quit and relaunch Premiere.
- 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.