Console fails to load after Configuration Manager 2403 upgrade

Introduction

I upgraded my ConfigMgr 2309 lab to 2403 to try out the new release but things didn’t quite go to plan. After the upgrade the console upgraded as normal but when launching it I got an error.

There were a bunch of errors in event viewer at the time I attempted to start the console. Highlighted below is the .NET error.

And here is the text from that error:

Application: Microsoft.ConfigurationManagement.exe
Framework Version: v4.0.30319
Description: The process was terminated due to an unhandled exception.
Exception Info: System.Collections.Generic.KeyNotFoundException
at System.Collections.Generic.Dictionary`2[[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089],[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]].get_Item(System.__Canon)
at Microsoft.ConfigurationManagement.ManagementProvider.SmsNamedValuesDictionary.get_Item(System.String)
at Microsoft.ConfigurationManagement.AdminConsole.SccmTreeNavigationNodeProviderBase.GetTasks(System.Uri, System.Collections.Generic.IList`1<Microsoft.EnterpriseManagement.ConsoleFramework.NavigationModelNodeBase>, Microsoft.EnterpriseManagement.ConsoleFramework.TaskQueryCriteria)
at Microsoft.EnterpriseManagement.ConsoleFramework.NavigationModelAdaptor.GetNodeTasks(Microsoft.EnterpriseManagement.UI.DataModel.DataQueryBase, System.Collections.Generic.IList`1<Microsoft.EnterpriseManagement.ConsoleFramework.NavigationModelNodeBase>)
at Microsoft.EnterpriseManagement.ConsoleFramework.NavigationModelAdaptor.DoAction(Microsoft.EnterpriseManagement.UI.DataModel.DataQueryBase, System.Collections.Generic.IList`1<System.Uri>, System.Collections.Generic.IDictionary`2<System.String,System.Object>, System.Collections.Generic.IList`1<Microsoft.EnterpriseManagement.UI.DataModel.IDataItem>, System.String)
at Microsoft.EnterpriseManagement.UI.DataModel.QueryQueue.StartExecuteQuery(System.Object, Microsoft.EnterpriseManagement.ConsoleFramework.ConsoleJobEventArgs)
at Microsoft.ConfigurationManagement.AdminConsole.ConsoleJobExceptionHandler.ExecuteJob(System.ComponentModel.IComponent, System.EventHandler`1<Microsoft.EnterpriseManagement.ConsoleFramework.ConsoleJobEventArgs>, System.Object, Microsoft.EnterpriseManagement.ConsoleFramework.ConsoleJobEventArgs)
at Microsoft.EnterpriseManagement.ConsoleFramework.ConsoleJobsService.JobThread(System.Object)
at System.Threading.QueueUserWorkItemCallback.WaitCallback_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.QueueUserWorkItemCallback.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem()
at System.Threading.ThreadPoolWorkQueue.Dispatch()
at System.Threading._ThreadPoolWaitCallback.PerformWaitCallback()

I checked the version of .NET installed on this Windows Server 2016 server and it was  4.6.2, which should be OK according to the docs, including for the Console. However those same docs recommended that if possible you should install the latest version of .NET, 4.8.

A quick glance at the 2403 ConfigMgrPreReq.log revealed that .NET 4.8 maybe IS a requirement and a failure was logged but not noticed as it only generated a warning.

After all the .NET hints, I decided to download and install the offline installer for .NET 4.8, and rebooted the server.

Once done, the console launches without issue.

I’ve informed the Microsoft Product Group as maybe the prereq checks and docs should point out that .NET 4.8 is actually required rather than recommended.

This entry was posted in 2403, Windows Server 2016. Bookmark the permalink.