diff --git a/Dalamud/ServiceManager.cs b/Dalamud/ServiceManager.cs index 2b96ae5ea..c13d39f4c 100644 --- a/Dalamud/ServiceManager.cs +++ b/Dalamud/ServiceManager.cs @@ -309,6 +309,13 @@ internal static class ServiceManager if (!serviceType.IsAssignableTo(typeof(IServiceType))) continue; + // Scoped services shall never be unloaded here. + // Their lifetime must be managed by the IServiceScope that owns them. If it leaks, it's their fault. + if (serviceType.GetServiceKind() == ServiceKind.ScopedService) + continue; + + Log.Verbose("Calling GetDependencyServices for '{ServiceName}'", serviceType.FullName!); + dependencyServicesMap[serviceType] = ((List)typeof(Service<>) .MakeGenericType(serviceType)