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 Exchange Server

Recommended articles

How to connect to Microsoft 365 with Microsoft Graph PowerShell

How to connect to Microsoft 365 with Microsoft Graph PowerShell

If you want to manage your Microsoft 365 organization with Microsoft Graph PowerShell, this article is for you.
How CodeTwo software can help you achieve GDPR compliance

How CodeTwo software can help you achieve GDPR compliance

A few years ago, the GDPR made companies reinvent their data protection policies. But they still seem to overlook one risk factor – email.
GDPR-compliant disclaimers in Microsoft 365 and Exchange Server

GDPR-compliant disclaimers in Microsoft 365 and Exchange Server

Let’s unpack how email disclaimers can help you demonstrate your company’s compliance with the GDPR.

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.