This is Harry Cat: the namesake of Harry CRM. He’s not happy about D365 errors.
Had a strange thing happen today with a client. Their Dynamics 365 on-prem wouldn’t load.
Side note: don’t judge — it’s going away and everything is being migrated to Harry, our all-in-one, super simple to use CRM.
The users received this very generic error: Invalid Action.
What the hell do we do now?
Looking in the Event Viewer on the server, there was this:
Event code: 3005
Event message: An unhandled exception has occurred.
Event time: 1/23/2026 12:03:37 PM
Event time (UTC): 1/23/2026 6:03:37 PM
Event ID: b1f7e9ddeb7849288bc47c4fc80dfb9c
Event sequence: 4
Event occurrence: 1
Event detail code: 0
Application information:
Application domain: /LM/W3SVC/1/ROOT-1-134136649947175178
Trust level: Full
Application Virtual Path: /
Application Path: C:\Program Files\Microsoft Dynamics CRM\CRMWeb\
Machine name: ALABAMA
Process information:
Process ID: 6056
Process name: w3wp.exe
Account name: THE CRM SERVICE AD USER
Exception information:
Exception type: CrmException
Exception message: The key specified to compute a hash value is expired, only active keys are valid. Expired Key : CrmKey(Id:04cbe176-27dc-f011-b86c-00155d017d04, ScaleGroupId:00000000-0000-0000-0000-000000000000, KeyType:CrmWRPCTokenKey, Expired:True, ValidOn:12/18/2025 15:37:31, ExpiresOn:01/20/2026 15:37:31, CreatedOn:12/18/2025 15:37:31, CreatedBy:OKAYAELECTRIC\CRMASYNCH.
at Microsoft.Crm.CrmKeyService.
at System.Linq.Enumerable.Single[TSource](IEnumerable`1 source)
at Microsoft.Crm.CrmKeyService.ComputeHash(CrmKey key, HashParameterBase[] parameters)
at Microsoft.Crm.Application.Security.WrpcContext..ctor()
at Microsoft.Crm.Application.Controls.AppPage.ValidateWrpcContext()
at Microsoft.Crm.Application.Controls.AppPage.OnInit(EventArgs e)
at System.Web.UI.Control.InitRecursive(Control namingContainer)
at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
Request information:
Request URL: THE SERVER URL
Request path: /THE ORG/default.aspx
User host address: 192.168.1.24
User: THE USER
Is authenticated: True
Authentication Type: Negotiate
Thread account name: OKAYAELECTRIC\CRMSERVICE
Thread information:
Thread ID: 24
Thread account name: THE CRM SERVICE AD USER
Is impersonating: False
Stack trace: at Microsoft.Crm.CrmKeyService.
at System.Linq.Enumerable.Single[TSource](IEnumerable`1 source)
at Microsoft.Crm.CrmKeyService.ComputeHash(CrmKey key, HashParameterBase[] parameters)
at Microsoft.Crm.Application.Security.WrpcContext..ctor()
at Microsoft.Crm.Application.Controls.AppPage.ValidateWrpcContext()
at Microsoft.Crm.Application.Controls.AppPage.OnInit(EventArgs e)
at System.Web.UI.Control.InitRecursive(Control namingContainer)
at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
Doing some digging, there’s a command to run from the tools folder in the Dynamics CRM directory on the server. Here’s the steps:
Step 1: Restart Microsoft Dynamics CRM Asynchronous Processing Service
Step 2: Restart Microsoft Dynamics CRM Asynchronous Processing Service (maintenance)
Step 3: Open the command prompt and run the following: C:\Program Files\Microsoft Dynamics CRM\tools\Microsoft.Crm.Tools.WRPCKeyRenewal.exe /R
Step 4: Restart Microsoft Dynamics CRM Monitoring Service
Step 5: Run iisreset at the command prompt
Step 6: Sit back and watch Dynamics 365 load on the screen again with a sense of accomplishment
That’s it! Now it is back working again. Only a few more weeks of old Dynamics 365 and then it’s ALL HARRY ALL OF THE TIME.
