View Issue Details

IDProjectCategoryView StatusLast Update
0005103NoesisGUIUnitypublic2026-06-27 09:05
ReporterYolkin Games Assigned To 
PrioritynormalSeverityminor 
Status newResolutionopen 
Product Version3.2.13 
Summary0005103: NoesisView.OnEnable throws DllNotFoundException on a Dedicated Server build (native plugin stripped)
Description
  • Repro: Same Dedicated Server build as https://www.noesisengine.com/bugs/view.php?id=5102. Have a NoesisView component on a GameObject that must exist on the server for non-UI reasons (e.g. the main camera, which the server keeps for Camera/audio), so the component isn't stripped by build-time scene stripping. Boot the server and load that scene.
  • Result: DllNotFoundException('Noesis') at every scene load on the server (one per match for us), separate from #4's pre-scene throw.
  • Diagnosis: NoesisView.OnEnable runs LoadXaml → … → Noesis.GUI.* which P/Invokes the native library unconditionally, with no native-absent guard. Component-level scene stripping (Unity Multiplayer Roles, etc.) only removes components by type from the consumer's own list — a vendor NoesisView left on a must-survive GameObject reaches the server build and runs its native-touching OnEnable.
  • Relation to the family: third instance of the no native-absent guard root cause — runtime, scene-component flavor. Distinct call site from #4.
  • Why it's legitimate: same argument as #4 — the plugin is correctly stripped; the component just can't tell and P/Invokes anyway.
  • Severity: Medium (non-fatal, but per-match log/Sentry noise on the server).
  • Unblocks dropping workaround: we currently gate the native-touching block of OnEnable behind #if !UNITY_SERVER in the vendored package. The same detect-once/disable policy as #4 (ideally NoesisView early-returns its render path when native is absent) lets us delete that patch too.
PlatformLinux

Activities

There are no notes attached to this issue.

Issue History

Date Modified Username Field Change
2026-06-27 09:05 Yolkin Games New Issue