SCVMM 2019 console unable to start: how to fix it?

SVMM 2019 notworking OG

Context

The upgrade process was under way – that’s how the story begins. The host’s upgrade went smoothly. Update Rollup 2 (10.19.2445.0) was installed as expected. End users updated Virtual Machine Manager Console and everything seemed to work just fine. So it’s time to complete the project, isn’t it? But then, out of a sudden, an end user reported that SCVMM 2019 wouldn’t start.

Problem after SCVMM update

So what happened? The user first removed the old 2012 console and next installed the 2019 version (10.19.1013.0) along with Update Rollup 2. So far, so good. Then they double-clicked the app’s shortcut a few times but there was no response from the system. Time to start searching for the cause of the problem.

Troubleshooting

The first traces of the problem can be found in the Windows Event Log.

Click to expand/hide Windows Event Log entries
Application: VmmAdminUI.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(System.Windows.Media.Imaging.BitmapSource, System.Windows.Media.ColorContext, System.Windows.Media.ColorContext, System.Windows.Media.PixelFormat) at System.Windows.Media.Imaging.BitmapSource.CreateCachedBitmap(System.Windows.Media.Imaging.BitmapFrame, System.Windows.Media.Imaging.BitmapSourceSafeMILHandle, System.Windows.Media.Imaging.BitmapCreateOptions, System.Windows.Media.Imaging.BitmapCacheOption, System.Windows.Media.Imaging.BitmapPalette) at System.Windows.Media.Imaging.BitmapFrameDecode.FinalizeCreation() at System.Windows.Media.Imaging.BitmapFrameDecode..ctor(Int32, System.Windows.Media.Imaging.BitmapCreateOptions, System.Windows.Media.Imaging.BitmapCacheOption, System.Windows.Media.Imaging.BitmapDecoder) at System.Windows.Media.Imaging.BitmapDecoder.SetupFrames(System.Windows.Media.Imaging.BitmapDecoder, System.Collections.ObjectModel.ReadOnlyCollection`1) at System.Windows.Media.Imaging.BitmapDecoder.get_Frames() at System.Windows.Media.Imaging.BitmapFrame.CreateFromUriOrStream(System.Uri, System.Uri, System.IO.Stream, System.Windows.Media.Imaging.BitmapCreateOptions, System.Windows.Media.Imaging.BitmapCacheOption, System.Net.Cache.RequestCachePolicy) at System.Windows.Media.Imaging.BitmapFrame.Create(System.Uri, System.Net.Cache.RequestCachePolicy) at System.Windows.Media.Imaging.BitmapFrame.Create(System.Uri) at Microsoft.EnterpriseManagement.RibbonLayout.View.WpfRibbon.WpfRibbonFactory..cctor() Exception Info: System.TypeInitializationException at Microsoft.EnterpriseManagement.RibbonLayout.ViewModel.WpfRibbon.WpfRibbonRecyclerStrategies..cctor() Exception Info: System.TypeInitializationException at Microsoft.EnterpriseManagement.RibbonLayout.ViewModel.WpfRibbon.WpfRibbonRecyclerStrategies.CreateInstancePools(Microsoft.EnterpriseManagement.RibbonLayout.ViewModel.WpfRibbon.RibbonViewModel) at Microsoft.EnterpriseManagement.RibbonLayout.ViewModel.WpfRibbon.RibbonViewModel..ctor(Microsoft.EnterpriseManagement.RibbonLayout.Model.IRibbonModel) at Microsoft.EnterpriseManagement.RibbonLayout.View.WpfRibbon.ConsoleRibbon.OnModelChanged(System.Windows.DependencyObject, System.Windows.DependencyPropertyChangedEventArgs) at System.Windows.DependencyObject.OnPropertyChanged(System.Windows.DependencyPropertyChangedEventArgs) at System.Windows.FrameworkElement.OnPropertyChanged(System.Windows.DependencyPropertyChangedEventArgs) at System.Windows.DependencyObject.NotifyPropertyChange(System.Windows.DependencyPropertyChangedEventArgs) at System.Windows.DependencyObject.UpdateEffectiveValue(System.Windows.EntryIndex, System.Windows.DependencyProperty, System.Windows.PropertyMetadata, System.Windows.EffectiveValueEntry, System.Windows.EffectiveValueEntry ByRef, Boolean, Boolean, System.Windows.OperationType) at System.Windows.DependencyObject.InvalidateProperty(System.Windows.DependencyProperty, Boolean) at System.Windows.StyleHelper.InvalidateDependents(System.Windows.Style, System.Windows.FrameworkTemplate, System.Windows.DependencyObject, System.Windows.DependencyProperty, MS.Utility.FrugalStructList`1 ByRef, Boolean) at System.Windows.StyleHelper.OnTriggerSourcePropertyInvalidated(System.Windows.Style, System.Windows.FrameworkTemplate, System.Windows.DependencyObject, System.Windows.DependencyProperty, System.Windows.DependencyPropertyChangedEventArgs, Boolean, MS.Utility.FrugalStructList`1> ByRef, MS.Utility.FrugalMap ByRef, Int32) at System.Windows.FrameworkElement.OnPropertyChanged(System.Windows.DependencyPropertyChangedEventArgs) at System.Windows.DependencyObject.NotifyPropertyChange(System.Windows.DependencyPropertyChangedEventArgs) at System.Windows.DependencyObject.UpdateEffectiveValue(System.Windows.EntryIndex, System.Windows.DependencyProperty, System.Windows.PropertyMetadata, System.Windows.EffectiveValueEntry, System.Windows.EffectiveValueEntry ByRef, Boolean, Boolean, System.Windows.OperationType) at System.Windows.DependencyObject.InvalidateProperty(System.Windows.DependencyProperty, Boolean) at System.Windows.Data.BindingExpressionBase.Invalidate(Boolean) at System.Windows.Data.BindingExpression.TransferValue(System.Object, Boolean) at System.Windows.Data.BindingExpression.ScheduleTransfer(Boolean) at MS.Internal.Data.ClrBindingWorker.NewValueAvailable(Boolean, Boolean, Boolean) at MS.Internal.Data.PropertyPathWorker.UpdateSourceValueState(Int32, System.ComponentModel.ICollectionView, System.Object, Boolean) at MS.Internal.Data.PropertyPathWorker.OnDependencyPropertyChanged(System.Windows.DependencyObject, System.Windows.DependencyProperty, Boolean) at MS.Internal.Data.ClrBindingWorker.OnSourceInvalidation(System.Windows.DependencyObject, System.Windows.DependencyProperty, Boolean) at System.Windows.Data.BindingExpression.HandlePropertyInvalidation(System.Windows.DependencyObject, System.Windows.DependencyPropertyChangedEventArgs) at System.Windows.Data.BindingExpressionBase.OnPropertyInvalidation(System.Windows.DependencyObject, System.Windows.DependencyPropertyChangedEventArgs) at System.Windows.Data.BindingExpression.OnPropertyInvalidation(System.Windows.DependencyObject, System.Windows.DependencyPropertyChangedEventArgs) at System.Windows.DependentList.InvalidateDependents(System.Windows.DependencyObject, System.Windows.DependencyPropertyChangedEventArgs) at System.Windows.DependencyObject.NotifyPropertyChange(System.Windows.DependencyPropertyChangedEventArgs) at System.Windows.DependencyObject.UpdateEffectiveValue(System.Windows.EntryIndex, System.Windows.DependencyProperty, System.Windows.PropertyMetadata, System.Windows.EffectiveValueEntry, System.Windows.EffectiveValueEntry ByRef, Boolean, Boolean, System.Windows.OperationType) at System.Windows.DependencyObject.SetValueCommon(System.Windows.DependencyProperty, System.Object, System.Windows.PropertyMetadata, Boolean, Boolean, System.Windows.OperationType, Boolean) at System.Windows.DependencyObject.SetValue(System.Windows.DependencyProperty, System.Object) at Microsoft.EnterpriseManagement.RibbonConsole.RibbonConsoleWindowController.EndInit() at Microsoft.VirtualManager.UI.VmmAdmin.VmmConsoleWindowController.EndInit() at Microsoft.VirtualManager.UI.VmmAdmin.VmmAdminApplication.InitializeConsoleShell() at System.Windows.Threading.ExceptionWrapper.InternalRealCall(System.Delegate, System.Object, Int32) at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(System.Object, System.Delegate, System.Object, Int32, System.Delegate) at System.Windows.Threading.DispatcherOperation.InvokeImpl() at System.Windows.Threading.DispatcherOperation.InvokeInSecurityContext(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 MS.Internal.CulturePreservingExecutionContext.Run(MS.Internal.CulturePreservingExecutionContext, System.Threading.ContextCallback, System.Object) at System.Windows.Threading.DispatcherOperation.Invoke() at System.Windows.Threading.Dispatcher.ProcessQueue() at System.Windows.Threading.Dispatcher.WndProcHook(IntPtr, Int32, IntPtr, IntPtr, Boolean ByRef) at MS.Win32.HwndWrapper.WndProc(IntPtr, Int32, IntPtr, IntPtr, Boolean ByRef) at MS.Win32.HwndSubclass.DispatcherCallbackOperation(System.Object) at System.Windows.Threading.ExceptionWrapper.InternalRealCall(System.Delegate, System.Object, Int32) at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(System.Object, System.Delegate, System.Object, Int32, System.Delegate) at System.Windows.Threading.Dispatcher.LegacyInvokeImpl(System.Windows.Threading.DispatcherPriority, System.TimeSpan, System.Delegate, System.Object, Int32) at MS.Win32.HwndSubclass.SubclassWndProc(IntPtr, Int32, IntPtr, IntPtr) at MS.Win32.UnsafeNativeMethods.DispatchMessage(System.Windows.Interop.MSG ByRef) at System.Windows.Threading.Dispatcher.PushFrameImpl(System.Windows.Threading.DispatcherFrame) at System.Windows.Threading.Dispatcher.PushFrame(System.Windows.Threading.DispatcherFrame) at System.Windows.Application.RunDispatcher(System.Object) at System.Windows.Application.RunInternal(System.Windows.Window) at System.Windows.Application.Run(System.Windows.Window) at Microsoft.VirtualManager.UI.VmmAdmin.Program.Main(System.String[])

The detailed Event Log entry above does not provide a clear answer to what’s actually going on. So, as a next troubleshooting step, I’ll try to reinstall the console and manually remove all the unnecessary leftover data of the 2012 version.

Below, you can find the list of places I’ve checked for the leftover data:

Registry:

  • HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft System Center Virtual Machine Manager Administrator Console
  • HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Microsoft System Center 2012 R2 Virtual Machine Manager

PS Module in the PS Environment Variable:

  • C:\Program Files\Microsoft System Center 2012 R2\Virtual Machine Manager\bin\psModules\

Global Assembly Cache (GAC):

  • No binaries are present in GAC for VMM, so nothing is stored for it.

The folder:

  • C:\Program Files\Microsoft System Center 2012 R2\Virtual Machine Manager

Program-related entry for VMM 2012 R2 should not be present:

  • No entry for VMM 2012 R2 in Add\Remove programs
  • No entry for VMM 2012 R2 in View\Installed updates

Unfortunately, removing the leftover data of the VMM 2012 R2 console and reinstalling the 2019 version does not fix the issue. Any attempt to launch the console still produces the same entry with the same errors in the system’s log.

Is the operating system up to date? Yes, it is Windows 10 Enterprise 20H2 with current fixes.

Are drivers up to date? Yes, they are.

Are other Microsoft products up to date? Yes, they are. Windows Update does not show any updates available to install (the option Receive updates for other Microsoft products when you update Windows is turned on).

How to fix the SCVMM doesn’t start error?

To actually fix the problem with SCVMM 2019 not starting, you need to follow the solution below.

The solution to the mystery can be found in the Windows Event Log, after all. The error call stack points out the problem with rendering the ribbon and loading bitmaps. After further investigation, it turns out that the user who reported the problem used a special display configuration. The Device profile parameter on the Color management tab was set to sRGB virtual device model profile. Here is how to fix it:

  1. Go to the problematic PC’s display settings and click Advanced display settings:
SCVMM console doesn't start - advanced display settings
  1. Next, access the adapter properties using the following button:
SCVMM console doesn't start - display adapter properties
  1. Go to the Color Management tab and click the Color Management button.
SCVMM console doesn't start - color management
  1. And on the Advanced tab, you can find the villain in the Device profile field. It turns out that this non-standard profile makes SCVMM fail to start:
SCVMM 2019 not starting - old device color profile
  1. Finally, all you need to do is change the device profile to the system default’s one (sRGB IEC 61966-2.1).
SCVMM 2019 not starting - new device color profile

After changing it, I could immediately launch the console without a glitch. And that’s the end of the story.

Read also

Tools for Microsoft 365

Recommended articles

How to migrate mailboxes between Office 365 tenants

How to migrate mailboxes between Office 365 tenants

Discover CodeTwo’s lightweight migration tool for Microsoft 365 tenant-to-tenant migrations – quick setup, top security and no downtime.
How to export Office 365 mailboxes to PST using eDiscovery

How to export Office 365 mailboxes to PST using eDiscovery

Find out how to export Office 365 mailboxes to PST files using Office 365’s native in-place eDiscovery mechanism as a workaround.
Right to disconnect vs Microsoft 365

Right to disconnect vs Microsoft 365

The right to disconnect is here. See how to handle it from a Microsoft 365 admin’s perspective.

Leave a Reply

Your email address will not be published.

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

CodeTwo sp. z o.o. sp. k. is a controller of your personal data.
See our Privacy Policy to learn more.