Microsoft Identity Manager Sync Server HResult 0x80040E14 Error

Spoiler / TL DR; The Microsoft Identity Manager Sync Server HResult 0x80040E14 Error is associated with lack of available resources in your Microsoft Identity Manager environment.

Sizing servers for a Microsoft Identity Manager implementation gets easier the more you do it. If it is your first time, start with the Capacity Planning Guide. If you have a large implementation you will want the appropriate Topology. Separation of services definitely helps. But back to the HResult 0x80040E14 Error.

The Error and Problem

Whilst performing a Sync to a connected system you may receive (like I did) the following Synchronization Service Manager Error: Exception from HRESULT: 0x80040E14.

Microsoft Identity Manager Sync Server HResult 0x80040E14 Error

Looking into the Application Event Log there are a bunch of SQL Server errors such as ‘insufficient system memory in resource pool‘.

HResult 0x80040E14 - SQL Insufficient Memory in the Resource Pool

Looking in the Forefront Identity Manager Event Log we can see that the MIM is having difficulties talking to SQL. No process is on the other end of the pipe.

HResult 0x80040E14 - SQL Connect but no Process and end of pipe

And then the definitive error that there are connection issues to the MIM Service Database on the SQL Server. Failure to connect to database ‘FIMService’.

Failed to connect to FIM Service Database.PNG

Background: in my development environment SQL Server is on the same host as the MIM Sync and MIM Service. Looking at resource usage I can see that the MIM Sync process is using almost 12GB of RAM and the Windows Server itself is at 97% memory utilisation. Yeah that would restrict other services having available memory. Out of memory due to a resource intensive MIM Sync Service.

MIM Sync Service Memory Usage.PNG

The Solution

The solution for me was two-fold;

  • increase the resources (RAM) on the Server
  • optimise the PowerShell Management Agent Import process (on a particular MA) to release memory when it has paged a page of results from the Management Agent through to the Sync Engine.

Adding this to my troubleshooting section on my Microsoft Identity Manager page to make it quick to find next time without having to dig down to the root cause.