Sccm 2111 ; rct 4.8.2110.16001 from console

Upgraded our environment from SCCCM 2107 to 2111 last week. We have been using the RCT Console extension from WITHIN SCCM for several revisions now.

Today I went to “update” the RCT in SCCM and it shows it updated successfully but when I attempt to install the extension on a console I receive an error that the “manifest doesn’t exist in the cab”


AdminUI.ExtensionInstaller.exe Information: 0 : Found 1 extensions need install/update.
DateTime=2022-03-15T12:30:12.3704531Z
AdminUI.ExtensionInstaller.exe Information: 0 : Applying Extension 99429045-5ed9-42f0-992b-d73f628e6131 Version:4.8.2110.16001
DateTime=2022-03-15T12:30:12.3704531Z
AdminUI.ExtensionInstaller.exe Error: 0 : Unable to install extension:99429045-5ed9-42f0-992b-d73f628e6131 because it is an invalid extension. Exception:Microsoft.ConfigurationManagement.AdminConsole.ExtensionInstaller.InvalidCustomExtensionException: Unable to validate 99429045-5ed9-42f0-992b-d73f628e6131:4.8.2110.16001 because Manifest doesn’t exists in the cab.
at Microsoft.ConfigurationManagement.AdminConsole.ExtensionInstaller.CustomExtensionInstallerBase.ValidateFiles(List1 customExtensionFiles) at Microsoft.ConfigurationManagement.AdminConsole.ExtensionInstaller.CustomExtensionInstallerBase.Install() at Microsoft.ConfigurationManagement.AdminConsole.ExtensionInstaller.CustomExtensionHandler.InstallExtensions(List1 extensionsMetadata)
DateTime=2022-03-15T12:30:12.4863139Z

I removed the RCT extension from SCCM and redownloaded from GIT and approved in SCCM but am still getting the same error.

In the console, in the Community node in SCCM, if I search for RCT it shows available to download (not listed under “Your Downloads”) but if I try again to download it, it says " Download failed. The item already exists on the site.". If I look in the Administration Node it shows listed as “approved” in the Console Extensions.

I am using an account that is both SCCM admin AND local admin on the workstation.

SCCM Console version: 5.2111.1052.2500
Site Version: 5.0.9068.1000
RCT Version (FROM SCCM CONSOLE) 4.8.2110.16001

Installing RCT from MSI is not an option within our ORG.

As a side note, I tried AGAIN to remove the console extension and then I rebooted our primary server. Then I went again to download the console extension from the Community Node. Receive the following message:

but go to the Administration Node and the extension shows as there:

Go again to the Community node and try to download again and receive the message that the item already exists

(sorry for the multiple replies, I can only upload 1 image per message)

Hi there,

Thank you for reaching out! This is a bug that our dev team is actively working with Microsoft on to get resolved. Until the bug is resolved, please install Right Click Tools using the MSI available at https://portal.recastsoftware.com.

Thank you for your patience.

Best,

-Branden

Any update on this by chance?
Don’t mean to rush. MSI install works fine, this is a purely a convenience feature for us.

Hey there,

No worries. You should now be able to download our latest release from the community hub. When you have a second, can you confirm if this is the case?

Best,

Branden

Still same error “Download failed. The item already exists on the site”. I was sure to go into the Administration node to delete any previous version there before attempting to add the lastest RCT from the Community Hub. I am also using the console directly on the Site Server as an SCCM full administrator.

Console Extension Version: 4.8.2207.1001
SCCM Version 2111

Deleted the older extension from the Extensions list and attempted to download the latest package 4.8.2207.1001 from Community Hub. However it seems that it’s failing but the object shows up in the console. I’ve tried to download a few other extensions and they seem to download without issues.
image

After that, I tried installing it but it doesn’t seem to work. I went to look at the SMSAdminUI.log and I do see that we are getting HTTP 500 Errors on the ‘AdminService’ whenever it tries to import the extension.
Here is the snippet from ‘adminservice.log’ below
4.8.2207.1001 Microsoft.ConfigurationManager.AdminService 7/25/2022 3:39:37 PM 15 (0x000F) System.InvalidOperationException: Sequence contains more than one element at System.Linq.Enumerable.SingleOrDefault[TSource](IEnumerable1 source)`

Microsoft.ConfigurationManager.AdminService 7/25/2022 3:39:37 PM 15 (0x000F) Completing request with response code [500] reason [Internal Server Error]

Thoughts on what could be causing this?

AdminUI.ExtensionInstaller.log

AdminUI.ExtensionInstaller.exe Information: 0 : Applying Custom Extensions...
    DateTime=2022-07-25T18:59:41.1422972Z
AdminUI.ExtensionInstaller.exe Information: 0 : Starting to apply custom extensions...
    DateTime=2022-07-25T18:59:41.2931984Z
AdminUI.ExtensionInstaller.exe Information: 0 : Successfully retrieved metadata info for Extension 99429045-5ed9-42f0-992b-d73f628e6131
    DateTime=2022-07-25T18:59:41.9122692Z
AdminUI.ExtensionInstaller.exe Information: 0 : Applying Extension 99429045-5ed9-42f0-992b-d73f628e6131 Version:4.8.2207.1001
    DateTime=2022-07-25T18:59:41.9122692Z
AdminUI.ExtensionInstaller.exe Error: 0 : Unable to install extension:99429045-5ed9-42f0-992b-d73f628e6131 because it is an invalid extension. Exception:Microsoft.ConfigurationManagement.AdminConsole.ExtensionInstaller.InvalidCustomExtensionException: Unable to validate 99429045-5ed9-42f0-992b-d73f628e6131:4.8.2207.1001 because Manifest doesn't exists in the cab.
   at Microsoft.ConfigurationManagement.AdminConsole.ExtensionInstaller.CustomExtensionInstallerBase.ValidateFiles(List`1 customExtensionFiles)
   at Microsoft.ConfigurationManagement.AdminConsole.ExtensionInstaller.CustomExtensionInstallerBase.Install()
   at Microsoft.ConfigurationManagement.AdminConsole.ExtensionInstaller.CustomExtensionHandler.InstallExtensions(List`1 extensionsMetadata)
    DateTime=2022-07-25T18:59:41.9815844Z

SmsAdminUI.log

[24, PID:5060][07/25/2022 14:49:46] :System.Net.WebException: The remote server returned an error: (500) Internal Server Error.
[24, PID:5060][07/25/2022 14:49:46] :Failed to get a response for OData POST request: https://sccm.{MyOrg}.org/AdminService/v1.0/ConsoleExtensionMetadata/AdminService.UploadExtensionInChunks
[24, PID:5060][07/25/2022 14:49:46] :Webview:  CommunityHubScriptManager: An error occurred processing request type 'ImportConsoleExtension' error is ODataInternalServerErrorException : Microsoft.ConfigurationManagement.ManagementProvider.ODataInternalServerErrorException: InternalServerError ---> System.Net.WebException: The remote server returned an error: (500) Internal Server Error.
   at System.Net.HttpWebRequest.GetResponse()
   at Microsoft.ConfigurationManager.CloudBase.ODataServiceCaller.HttpCallerWithCustomCertValidation.HttpPostRequest(Uri address, ICollection`1 extraHeaders, Byte[] body)
   at Microsoft.ConfigurationManager.CloudBase.ODataServiceCaller.ODataServiceCaller.ExecutePost(String queryUrl, ICollection`1 extraHeaders, String postBody)
   --- End of inner exception stack trace ---
   at Microsoft.ConfigurationManager.CloudBase.ODataServiceCaller.ODataServiceCaller.HandleException(Exception ex, Uri requestUri, String httpMethod)
   at Microsoft.ConfigurationManager.CloudBase.ODataServiceCaller.ODataServiceCaller.ExecutePost(String queryUrl, ICollection`1 extraHeaders, String postBody)
   at Microsoft.ConfigurationManagement.ManagementProvider.ODataQueryEngine.ODataConnectionManager.ExecuteMethod(String address, String body)
   at Microsoft.ConfigurationManagement.AdminConsole.Community.ConsoleExtensionImporter.Import(String importData)
   at Microsoft.ConfigurationManagement.AdminConsole.Community.CommunityHubScriptManager.ImportConsoleExtension(String jsonConsoleExtensionData)
[24, PID:5060][07/25/2022 14:49:46] :Webview:  CommunityHubScriptManager: Stacktrace: [   at Microsoft.ConfigurationManager.CloudBase.ODataServiceCaller.ODataServiceCaller.HandleException(Exception ex, Uri requestUri, String httpMethod)
   at Microsoft.ConfigurationManager.CloudBase.ODataServiceCaller.ODataServiceCaller.ExecutePost(String queryUrl, ICollection`1 extraHeaders, String postBody)
   at Microsoft.ConfigurationManagement.ManagementProvider.ODataQueryEngine.ODataConnectionManager.ExecuteMethod(String address, String body)
   at Microsoft.ConfigurationManagement.AdminConsole.Community.ConsoleExtensionImporter.Import(String importData)
   at Microsoft.ConfigurationManagement.AdminConsole.Community.CommunityHubScriptManager.ImportConsoleExtension(String jsonConsoleExtensionData)]
[13, PID:5060][07/25/2022 14:49:46] :Webview:  CommunityHubScriptManager: Failed to download item 10101 or one of its children. Microsoft.ConfigurationManagement.ManagementProvider.ODataServiceUnavailableException: System error.
   at Microsoft.ConfigurationManager.Hub.SiteHost.CreateConfigMgrObjectFromHubObjectAsync(HubItemMetadata item, String contentBlob, String downloadableCommitId)
   at Microsoft.ConfigurationManager.Hub.Pages.ItemDetails.ImportHubObjectToSite(HubItemMetadata item, String contentBlob)
   at Microsoft.ConfigurationManager.Hub.Pages.ItemDetails.DownloadInternal(HubItemMetadata item)
   at Microsoft.ConfigurationManager.Hub.Pages.ItemDetails.Download()

adminservice.log

Processing incoming request for resource [https://sccm.{MyOrg}.org/AdminService/v1.0/ConsoleExtensionMetadata/AdminService.UploadExtensionInChunks], method: [POST], User - [{MyOrg}\{myuser}]	Microsoft.ConfigurationManager.AdminService	7/25/2022 3:39:34 PM	15 (0x000F)
Header: [SMSAppName]=[Configuration Manager Administrator console]	Microsoft.ConfigurationManager.AdminService	7/25/2022 3:39:34 PM	15 (0x000F)
Header: [MachineName]=[sccm.{MyOrg}.org]	Microsoft.ConfigurationManager.AdminService	7/25/2022 3:39:34 PM	15 (0x000F)
Header: [UserName]=[{MyOrg}\{myuser}]	Microsoft.ConfigurationManager.AdminService	7/25/2022 3:39:34 PM	15 (0x000F)
Header: [ObjectLockContext]=[077f6bfe-639f-4a15-804a-a21ef17c55c3]	Microsoft.ConfigurationManager.AdminService	7/25/2022 3:39:34 PM	15 (0x000F)
Header: [ApplicationName]=[Microsoft.ConfigurationManagement.exe]	Microsoft.ConfigurationManager.AdminService	7/25/2022 3:39:34 PM	15 (0x000F)
Header: [ApplicationVersion]=[5.2203.1070.1000]	Microsoft.ConfigurationManager.AdminService	7/25/2022 3:39:34 PM	15 (0x000F)
Header: [LocaleID]=[MS\0x409]	Microsoft.ConfigurationManager.AdminService	7/25/2022 3:39:34 PM	15 (0x000F)
Header: [Content-Length]=[3749199]	Microsoft.ConfigurationManager.AdminService	7/25/2022 3:39:34 PM	15 (0x000F)
Header: [Content-Type]=[application/json]	Microsoft.ConfigurationManager.AdminService	7/25/2022 3:39:34 PM	15 (0x000F)
Header: [Authorization]=[**************]	Microsoft.ConfigurationManager.AdminService	7/25/2022 3:39:34 PM	15 (0x000F)
Header: [Expect]=[100-continue]	Microsoft.ConfigurationManager.AdminService	7/25/2022 3:39:34 PM	15 (0x000F)
Header: [Host]=[sccm.{MyOrg}.org]	Microsoft.ConfigurationManager.AdminService	7/25/2022 3:39:34 PM	15 (0x000F)
Context: [RemoteIpAddress]=[{MyInternalIP}]	Microsoft.ConfigurationManager.AdminService	7/25/2022 3:39:34 PM	15 (0x000F)
Context: [RemotePort]=[56305]	Microsoft.ConfigurationManager.AdminService	7/25/2022 3:39:34 PM	15 (0x000F)
Context: [ContentType]=[application/json]	Microsoft.ConfigurationManager.AdminService	7/25/2022 3:39:34 PM	15 (0x000F)
Context: [Accept]=[]	Microsoft.ConfigurationManager.AdminService	7/25/2022 3:39:34 PM	15 (0x000F)
Provider authentication level and exception list up to date.	Microsoft.ConfigurationManager.AdminService	7/25/2022 3:39:34 PM	15 (0x000F)
User {MyOrg}\{myuser} is allowed because it is validated with current authentication level Default.	Microsoft.ConfigurationManager.AdminService	7/25/2022 3:39:34 PM	15 (0x000F)
Verification of embedded signature on Right Click Tools.cab succeeded	Microsoft.ConfigurationManager.AdminService	7/25/2022 3:39:36 PM	15 (0x000F)
Calculating hash of manifest file.	Microsoft.ConfigurationManager.AdminService	7/25/2022 3:39:37 PM	15 (0x000F)
Removing metadata and files of extension 99429045-5ed9-42f0-992b-d73f628e6131 version 4.8.2207.1001	Microsoft.ConfigurationManager.AdminService	7/25/2022 3:39:37 PM	15 (0x000F)
System.InvalidOperationException: Sequence contains more than one element
   at System.Linq.Enumerable.SingleOrDefault[TSource](IEnumerable`1 source)
   at System.Data.Entity.Migrations.DbSetMigrationsExtensions.AddOrUpdate[TEntity](DbSet`1 set, IEnumerable`1 identifyingProperties, InternalSet`1 internalSet, TEntity[] entities)
   at System.Data.Entity.Migrations.DbSetMigrationsExtensions.AddOrUpdate[TEntity](IDbSet`1 set, TEntity[] entities)
   at Microsoft.ConfigurationManager.AdminService.Data.SCCMDataSql.AddOrUpdateObjects[T](IEnumerable`1 list, ChangeContext changeContext)
   at Microsoft.ConfigurationManager.AdminService.Controllers.ConsoleExtensionMetadataController.ValidateAndInsert(ConsoleExtensionFile cab, Boolean allowUnsigned)
   at Microsoft.ConfigurationManager.AdminService.Controllers.ConsoleExtensionMetadataController.UploadExtensionInChunks(ODataActionParameters parameters)
   at lambda_method(Closure , Object , Object[] )
   at System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ActionExecutor.<>c__DisplayClass6_2.<GetExecutor>b__2(Object instance, Object[] methodParameters)
   at System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ExecuteAsync(HttpControllerContext controllerContext, IDictionary`2 arguments, CancellationToken cancellationToken)
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Web.Http.Controllers.ApiControllerActionInvoker.<InvokeActionAsyncCore>d__1.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Web.Http.Filters.ActionFilterAttribute.<CallOnActionExecutedAsync>d__6.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Web.Http.Filters.ActionFilterAttribute.<CallOnActionExecutedAsync>d__6.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Web.Http.Filters.ActionFilterAttribute.<ExecuteActionFilterAsyncCore>d__5.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Web.Http.Controllers.ActionFilterResult.<ExecuteAsync>d__5.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Web.Http.Dispatcher.HttpControllerDispatcher.<SendAsync>d__15.MoveNext()	Microsoft.ConfigurationManager.AdminService	7/25/2022 3:39:37 PM	15 (0x000F)
Completing request with response code [500] reason [Internal Server Error]	Microsoft.ConfigurationManager.AdminService	7/25/2022 3:39:37 PM	15 (0x000F)

Thank you for your patience. Do you have any proxies or security software in place that that could potentially be impacting the Admin Service?

No proxies configured on our end. Also doing it directly from the site server.
I tested a few other functions with the Admin Service (set some custom properties on devices and MSEndpointMgr DriverAutomationTool driver installs) and that worked flawlessly.

Currently not familiar with making custom extensions to test the AdminService.UploadExtensionInChunks api call.

Console version: 5.2203.1063.2400
Site version: 5.0.9078.1000 (2203 w/ Latest Hotfix Rollup KB14244456)

Thank you for your patience. We’re unable to recreate this issue in our test environment. It seems that it’s failing to upload it into the database via the Admin Service in your case. ConfigMgr is having trouble applying the extension in your environment even though it’s authored correctly. Would you by chance be willing to open a ticket with Microsoft? If you do submit a case and are able to share the case number with us we can potentially help get it expedited for you.

Yeah I’ll submit a ticket with them.
Also, as embarrassing as it may be, I didn’t try it on my test system and when I attempted again, the extension updated properly without errors. Very strange.

I wonder if for some reason the CM DB has a duplicate entry for the extension somewhere.

Posting the recommended solution here as well in case any others encounter this issue:

Per Microsoft, this was a known issue in the 2107->2111 upgrade path where ConfigMgr basically broke existing console extensions. In these situations the solution is to nuke-n-pave the extension by running the following in your primary DB:
delete from ConsoleExtensionMetadata where ID = ‘99429045-5ED9-42F0-992B-D73F628E6131’
delete from ConsoleExtensionFile where ExtensionId = ‘99429045-5ED9-42F0-992B-D73F628E6131’
(That GUID is the GUID of our extension)That will remove the console entirely and any installation/version history. From the DB perspective the extension never existed. This should allow you to download it fresh.

Cleaned up those records and confirmed that they don’t exist there, but I’m still getting Admin Service internal errors when downloading the extension.

AdminService.log
Verification of embedded signature on Right Click Tools.cab succeeded	Microsoft.ConfigurationManager.AdminService	8/11/2022 2:23:57 PM	67 (0x0043)
Calculating hash of manifest file.	Microsoft.ConfigurationManager.AdminService	8/11/2022 2:23:58 PM	67 (0x0043)
System.InvalidOperationException: Sequence contains more than one element
   at System.Linq.Enumerable.SingleOrDefault[TSource](IEnumerable`1 source)
   at System.Data.Entity.Migrations.DbSetMigrationsExtensions.AddOrUpdate[TEntity](DbSet`1 set, IEnumerable`1 identifyingProperties, InternalSet`1 internalSet, TEntity[] entities)
   at System.Data.Entity.Migrations.DbSetMigrationsExtensions.AddOrUpdate[TEntity](IDbSet`1 set, TEntity[] entities)
   at Microsoft.ConfigurationManager.AdminService.Data.SCCMDataSql.AddOrUpdateObjects[T](IEnumerable`1 list, ChangeContext changeContext)
   at Microsoft.ConfigurationManager.AdminService.Controllers.ConsoleExtensionMetadataController.ValidateAndInsert(ConsoleExtensionFile cab, Boolean allowUnsigned)
   at Microsoft.ConfigurationManager.AdminService.Controllers.ConsoleExtensionMetadataController.UploadExtensionInChunks(ODataActionParameters parameters)
   at lambda_method(Closure , Object , Object[] )
   at System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ActionExecutor.<>c__DisplayClass6_2.<GetExecutor>b__2(Object instance, Object[] methodParameters)
   at System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ExecuteAsync(HttpControllerContext controllerContext, IDictionary`2 arguments, CancellationToken cancellationToken)
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Web.Http.Controllers.ApiControllerActionInvoker.<InvokeActionAsyncCore>d__1.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Web.Http.Filters.ActionFilterAttribute.<CallOnActionExecutedAsync>d__6.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Web.Http.Filters.ActionFilterAttribute.<CallOnActionExecutedAsync>d__6.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Web.Http.Filters.ActionFilterAttribute.<ExecuteActionFilterAsyncCore>d__5.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Web.Http.Controllers.ActionFilterResult.<ExecuteAsync>d__5.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Web.Http.Dispatcher.HttpControllerDispatcher.<SendAsync>d__15.MoveNext()	Microsoft.ConfigurationManager.AdminService	8/11/2022 2:23:58 PM	67 (0x0043)
Completing request with response code [500] reason [Internal Server Error]	Microsoft.ConfigurationManager.AdminService	8/11/2022 2:23:58 PM	67 (0x0043)
AdminUI.ExtensionInstaller.log
AdminUI.ExtensionInstaller.exe Error: 0 : Unable to install extension:99429045-5ed9-42f0-992b-d73f628e6131 because it is an invalid extension. Exception:Microsoft.ConfigurationManagement.AdminConsole.ExtensionInstaller.InvalidCustomExtensionException: Unable to validate 99429045-5ed9-42f0-992b-d73f628e6131:4.8.2207.1001 because Manifest doesn't exists in the cab.