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 entriesApplication: 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:
- Go to the problematic PC’s display settings and click Advanced display settings:
- Next, access the adapter properties using the following button:
- Go to the Color Management tab and click the Color Management button.
- 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:
- Finally, all you need to do is change the device profile to the system default’s one (sRGB IEC 61966-2.1).
After changing it, I could immediately launch the console without a glitch. And that’s the end of the story.
CodeTwo sp. z o.o. sp. k. is a controller of your personal data.
See our Privacy Policy to learn more.