Similar to other discussions, had been using Sonos 1 with no issues.
Sonos 2 app on Windows different story, service fails to start/process crashes etc.
None of the “uninstall and re-install” stuff works.
By looking at the event logs, decided to look at the cases of the exception being thrown with other products. In my case, changing the colour management settings resolved my issue.
Having spent a while looking, may be worth Sonos Dev/support writing a better “how to” set of trouble shooting steps than seem to be available.
Hopefully, this may help others.
https://localjoost.github.io/Crash-in-image-creation-at-System.Windows.Media.Imaging.ColorConvertedBitmap.FinalizeCreation/
Application: Sonos.exe
Framework Version: v4.0.30319
Description: The process was terminated due to an unhandled exception.
Exception Info: System.ArithmeticException
Exception Info: System.OverflowException
at System.Windows.Media.Imaging.ColorConvertedBitmap.FinalizeCreation()
at System.Windows.Media.Imaging.ColorConvertedBitmap..ctor(BitmapSource source, ColorContext sourceColorContext, ColorContext destinationColorContext, PixelFormat format)
at System.Windows.Media.Imaging.BitmapImage.FinalizeCreation()
at System.Windows.Media.Imaging.BitmapImage.EndInit()
at Sonos.Controller.Desktop.SCLib.ViewModel.Artwork.ArtworkDataEventSink.GenerateEventArgs(SCIArtworkData sender)
at Sonos.Controller.Desktop.SCLib.EventWrapper`2.OnEvent(TSender sender)
at Sonos.Controller.Desktop.SCLib.EventSink`1.dispatchEvent(SCIObj pSender, String sEventID)
at Sonos.SCLib.Interop.SCIEventSinkSwigBase.SwigDirectordispatchEvent(IntPtr pSender, String sEventID)
at Sonos.SCLib.Interop.sclibPINVOKE.SCILibrary_SCLibUIThreadCallback(HandleRef jarg1)
at Sonos.SCLib.Interop.SCILibrary.SCLibUIThreadCallback()
at Sonos.Controller.Desktop.SCLib.LibraryManager.<CallUIThread>b__42_0()
at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler)
Exception Info: Sonos.Controller.Desktop.Utilities.BugsenseWrappedException
at Sonos.Controller.Desktop.App.worker_RunWorkerCompleted(Exception ex)
Exception Info: System.Reflection.TargetInvocationException
at System.RuntimeMethodHandle.InvokeMethod(Object target, ObjectH] arguments, Signature sig, Boolean constructor)
at System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Objectn] parameters, Objectn] arguments)
at System.Delegate.DynamicInvokeImpl(Object] args)
at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler)
at System.Windows.Threading.DispatcherOperation.InvokeImpl()
at System.Windows.Threading.DispatcherOperation.InvokeInSecurityContext(Object state)
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
at MS.Internal.CulturePreservingExecutionContext.Run(CulturePreservingExecutionContext executionContext, ContextCallback callback, Object state)
at System.Windows.Threading.DispatcherOperation.Invoke()
at System.Windows.Threading.Dispatcher.ProcessQueue()
at System.Windows.Threading.Dispatcher.WndProcHook(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
at MS.Win32.HwndWrapper.WndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
at MS.Win32.HwndSubclass.DispatcherCallbackOperation(Object o)
at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler)
at System.Windows.Threading.Dispatcher.LegacyInvokeImpl(DispatcherPriority priority, TimeSpan timeout, Delegate method, Object args, Int32 numArgs)
at MS.Win32.HwndSubclass.SubclassWndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam)
at MS.Win32.UnsafeNativeMethods.DispatchMessage(MSG& msg)
at System.Windows.Threading.Dispatcher.PushFrameImpl(DispatcherFrame frame)
at System.Windows.Threading.Dispatcher.PushFrame(DispatcherFrame frame)
at System.Windows.Application.RunDispatcher(Object ignore)
at System.Windows.Application.RunInternal(Window window)
at System.Windows.Application.Run(Window window)
at Sonos.Controller.Desktop.Startup.Glue.WpfLauncher.DoLaunch(StringW] args)
at System.AppDomain.RunInitializer(AppDomainSetup setup)
at System.AppDomain.Setup(Object arg)
at System.AppDomain.nCreateDomain(System.String, System.AppDomainSetup, System.Security.Policy.Evidence, System.Security.Policy.Evidence, IntPtr)
at System.AppDomain.InternalCreateDomain(System.String, System.Security.Policy.Evidence, System.AppDomainSetup)
at System.AppDomain.CreateDomain(System.String, System.Security.Policy.Evidence, System.AppDomainSetup)
at Sonos.Controller.Desktop.Startup.Glue.WpfLauncher.DoAppDomainSetup(System.Object)
at System.Threading.ThreadHelper.ThreadStart_Context(System.Object)
at System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
at System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
at System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object)
at System.Threading.ThreadHelper.ThreadStart(System.Object)