{"record":{"id":"34ebf54060ae9972","repo":"stride3d/stride","slug":"need-to-reimplement-this-to-use-iunloadable","errorCode":null,"errorMessage":"Need to reimplement this to use IUnloadable","messagePattern":"Need to reimplement this to use IUnloadable","errorType":"exception","errorClass":"NotImplementedException","httpStatus":null,"severity":"error","filePath":"sources/engine/Stride.Debugger/Debugger/LiveAssemblyReloader.cs","lineNumber":33,"sourceCode":"using Stride.Engine;\n\nnamespace Stride.Debugger\n{\n    public static class LiveAssemblyReloader\n    {\n        public static void Reload(Game game, AssemblyContainer assemblyContainer, List<Assembly> assembliesToUnregister, List<Assembly> assembliesToRegister)\n        {\n            List<Entity> entities = new List<Entity>();\n\n            if (game != null)\n                entities.AddRange(game.SceneSystem.SceneInstance);\n\n            CloneReferenceSerializer.References = new List<object>();\n\n            var loadedAssembliesSet = new HashSet<Assembly>(assembliesToUnregister);\n            var reloadedComponents = new List<ReloadedComponentEntryLive>();\n\n            throw new NotImplementedException(\"Need to reimplement this to use IUnloadable\");\n#if FALSE\n            foreach (var assembly in assembliesToUnregister)\n            {\n                // Unregisters assemblies that have been registered in Package.Load => Package.LoadAssemblyReferencesForPackage\n                AssemblyRegistry.Unregister(assembly);\n\n                // Unload binary serialization\n                DataSerializerFactory.UnregisterSerializationAssembly(assembly);\n\n                // Unload assembly\n                assemblyContainer.UnloadAssembly(assembly);\n            }\n\n            foreach (var assembly in assembliesToRegister)\n            {\n                ModuleRuntimeHelpers.RunModuleConstructor(assembly.ManifestModule);\n\n                // Unregisters assemblies that have been registered in Package.Load => Package.LoadAssemblyReferencesForPackage","sourceCodeStart":15,"sourceCodeEnd":51,"githubUrl":"https://github.com/stride3d/stride/blob/96fad776d210c221682aac1ccdf4c79dc046fc38/sources/engine/Stride.Debugger/Debugger/LiveAssemblyReloader.cs#L15-L51","documentation":"LiveAssemblyReloader.Reload is a stub: the live assembly reloading feature (hot-swapping game assemblies in the running debugger target) was disabled pending a rewrite on top of IUnloadable. The method throws NotImplementedException immediately after initializing collections; all legacy reloading code is compiled out with #if FALSE.","triggerScenarios":"Any call to LiveAssemblyReloader.Reload, i.e. whenever the Stride editor/game debugger attempts a live reload of modified game assemblies at GameDebugger... flow through LiveAssemblyReloader.cs:33.","commonSituations":"Editing game code and expecting hot reload of assemblies while the game is being debugged in the editor; triggering 'Reload assemblies' from editor tooling; automated tests invoking Reload.","solutions":["Do not use live assembly reloading; rebuild and restart the debugged game process instead.","If you own this code, reimplement Reload using IUnloadable (the message itself states the intended approach).","Guard the calling feature so the reload UI/action is disabled until the feature is reimplemented."],"exampleFix":"// before\nvar reloadedComponents = new List<ReloadedComponentEntryLive>();\nthrow new NotImplementedException(\"Need to reimplement this to use IUnloadable\");\n\n// after (caller-side guard)\nif (liveReloadSupported)\n    liveAssemblyReloader.Reload(assembliesToUnregister);\nelse\n    restartGameProcess();","handlingStrategy":"fallback","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":["Treat live assembly reload as unavailable; always restart the game process to apply code changes","Disable reload UI/actions in tooling that targets this Stride version","Never wrap Reload in retry loops — it always throws"],"tags":["not-implemented","hot-reload","assemblies","stub"],"backgroundTag":"method-not-implemented","analyzedSha":"96fad776d210c221682aac1ccdf4c79dc046fc38","analyzedAt":"2026-09-14T02:59:31.279Z","contentChangedAt":"2026-09-14T02:59:31.279Z","schemaVersion":2},"datasetVersion":"2026-09-15T23:17:13.987Z"}