stride3d/stride · error · NotImplementedException
Need to reimplement this to use IUnloadable
Error message
Need to reimplement this to use IUnloadable
What it means
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.
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.
Example fix
// before
var reloadedComponents = new List<ReloadedComponentEntryLive>();
throw new NotImplementedException("Need to reimplement this to use IUnloadable");
// after (caller-side guard)
if (liveReloadSupported)
liveAssemblyReloader.Reload(assembliesToUnregister);
else
restartGameProcess(); Defensive patterns
Strategy: fallback
Prevention
- 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
When it happens
Trigger: 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.
Common situations: 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.
Related errors
- Exception of type 'System.NotImplementedException' was…
- Can't match pattern that uses '['
- Unknown node type
- Incompatible serializer found for same type in different…
- Query type not supported
AI-assisted analysis of stride3d/stride@96fad776d2 (2026-09-14).
Data as JSON: /api/errors/34ebf54060ae9972.
Report an issue: GitHub.
Appendix: source
Thrown at sources/engine/Stride.Debugger/Debugger/LiveAssemblyReloader.cs:33
using Stride.Engine;
namespace Stride.Debugger
{
public static class LiveAssemblyReloader
{
public static void Reload(Game game, AssemblyContainer assemblyContainer, List<Assembly> assembliesToUnregister, List<Assembly> assembliesToRegister)
{
List<Entity> entities = new List<Entity>();
if (game != null)
entities.AddRange(game.SceneSystem.SceneInstance);
CloneReferenceSerializer.References = new List<object>();
var loadedAssembliesSet = new HashSet<Assembly>(assembliesToUnregister);
var reloadedComponents = new List<ReloadedComponentEntryLive>();
throw new NotImplementedException("Need to reimplement this to use IUnloadable");
#if FALSE
foreach (var assembly in assembliesToUnregister)
{
// Unregisters assemblies that have been registered in Package.Load => Package.LoadAssemblyReferencesForPackage
AssemblyRegistry.Unregister(assembly);
// Unload binary serialization
DataSerializerFactory.UnregisterSerializationAssembly(assembly);
// Unload assembly
assemblyContainer.UnloadAssembly(assembly);
}
foreach (var assembly in assembliesToRegister)
{
ModuleRuntimeHelpers.RunModuleConstructor(assembly.ManifestModule);
// Unregisters assemblies that have been registered in Package.Load => Package.LoadAssemblyReferencesForPackageView on GitHub (pinned to 96fad776d2)