Environment
- Rhino 7 (compute host on Windows Server via IIS; app pool runs rhino.compute.exe)
- App pool: COMPUTE_PLUGINS=CalEnv.Compute.rhp;SciEnv.Compute.rhp;SciEnv.Apertures.Compute.rhp;SciEnv.Build.rhp
- LoadUserProfile=True (verified)
- APPDATA/LOCALAPPDATA explicitly set to writable paths: C:\inetpub\wwwroot\rhino.compute\appdata\Roaming and …
\Local - Plug-in: SciEnv.Build (GUID currently F4B0C3A2-52A8-4B9F-A39F-5E6F4E4C4D91)
- Tried: new GUID, new user profile, Safe Mode, blocking all other plug-ins, minimal plug-in (no settings code),
pre-creating plug-in settings folders.
Symptom
- OnLoad shows a Rhino “object reference” dialog, and the plug-in never appears in /plugins/rhino/installed; HTTP
endpoints return 404. - Our OnLoad completes and registers endpoints (log shows “Registered endpoint …” and “OnLoad success”).
- Immediately after, Rhino throws in its own settings resolver.
Log (from scienv-build.log)
[FirstChance] System.IndexOutOfRangeException: Index was outside the bounds of the array.
at Rhino.PlugIns.PlugIn.SettingsDirectoryHelper(Boolean bLocalUser, Assembly assembly, Guid pluginId)
[FirstChance] System.NullReferenceException: Object reference not set to an instance of an object.
at Rhino.PlugIns.PlugIn.InternalOnLoad(Int32 pluginSerialNumber)
(Repeated every load attempt; same on fresh user profile and in Safe Mode.)
What we tried
- Rotated plug-in GUID; reinstalled.
- Cleared/created settings dirs under AppData (Roaming/Local) for the plug-in GUID.
- Set APPDATA/LOCALAPPDATA to known writable paths; restarted app pool.
- New Windows user, Safe Mode, blocking other plug-ins.
- Minimal plug-in (no settings code, no extra handlers).
Other plug-ins
- CalEnv.Compute, SciEnv.Compute, and SciEnv.Apertures.Compute load fine on the same host.
Request
- Is there a Rhino 7 SR/hotfix for SettingsDirectoryHelper throwing IndexOutOfRange/NullReference in headless/
compute contexts? - Any supported way to bypass settings resolution for a compute plug-in in Rhino 7?
- Guidance on additional diagnostics to capture the path Rhino is constructing in SettingsDirectoryHelper.
Thanks for any pointers or patches—this is blocking plug-in load in compute (endpoints 404).