diff --git a/src/Artemis.Core/Services/RgbService.cs b/src/Artemis.Core/Services/RgbService.cs index 50f2d05b8..b794930af 100644 --- a/src/Artemis.Core/Services/RgbService.cs +++ b/src/Artemis.Core/Services/RgbService.cs @@ -149,7 +149,13 @@ namespace Artemis.Core.Services RemoveDevice(device); List providerExceptions = new(); - void DeviceProviderOnException(object? sender, Exception e) => providerExceptions.Add(e); + void DeviceProviderOnException(object? sender, ExceptionEventArgs e) + { + if (e.IsCritical) + providerExceptions.Add(e.Exception); + else + _logger.Warning(e.Exception, "Device provider {deviceProvider} threw non-critical exception", deviceProvider.GetType().Name); + } deviceProvider.Exception += DeviceProviderOnException; deviceProvider.Initialize();