After updating Microsoft 365 Apps / Access to build 16.0.20026.20182, our ASP.NET Web API application began crashing. The IIS worker process (w3wp.exe) terminates with an unhandled fault in mso20win32client.dll whenever application code calls into the Access Database Engine (ACE OLE DB) through COM to read an Access (.mdb) database.
This worked correctly on the previous Office/ACE build. Rolling back the Office/ACE update immediately resolves the crash, which strongly indicates a regression introduced by this update.
- Environment
|
|
| Item |
Value |
| OS |
Windows Server 2019 LTSC (build 10.0.17763) |
| Application |
ASP.NET Web API (.NET Framework 4.8) hosted in IIS |
| Faulting process |
c:\windows\system32\inetsrv\w3wp.exe, version 10.0.17763.1 |
| Office / MSO build |
16.0.20026.20166 (loaded in dump); update reported as 16.0.20026.20182 |
| ACE modules |
ACECORE.DLL / ACEES.DLL / ACEOLEDB.DLL — 16.0.20026.20010 |
| Data access |
ADO (msado15.dll) + ACE OLE DB provider reading a .mdb file, invoked via COM automation |
- Symptoms / Windows Error Reporting data
From the Application event log (Application Error 1000):
Faulting application name: w3wp.exe, version: 10.0.17763.1
Faulting module name: mso20win32client.dll, version: 0.0.0.0, time stamp: 0x6a2cb210
Exception code: 0x1e89a3d4
Fault offset: 0x00000000004408cd
Faulting module path: C:\Program Files\Common Files\Microsoft Shared\Office16\mso20win32client.dll
Report Id: 771657ba-8cd3-4b51-b69b-734d700f44bb
Client-side, the in-flight HTTP request dies mid-execution and surfaces as "A task was canceled" (the request thread is destroyed when the worker process crashes).
- Crash-dump analysis (user-mode dump of
w3wp.exe)
A full user-mode dump was captured via WER LocalDumps. Analysis confirms:
Faulting thread call stack (managed → native transition):
InlinedCallFrame
InlinedCallFrame
IL_STUB_CLRtoCOM <-- managed→native COM call that faulted
<app>.API CALL
<app>.API CALL
... (ASP.NET Web API pipeline) ...
The fault occurs precisely at the COM transition into the ACE-backed component (a ListAll()/recordset read against the .mdb), inside native Office code — not in managed application code.
Patched modules confirmed loaded at crash time:
-
mso20win32client.dll — 16.0.20026.20166 (the faulting module)
-
mso.dll, mso30/40/50/98win32client.dll — 16.0.20026.20166
-
ACECORE.DLL, ACEES.DLL, ACEOLEDB.DLL — 16.0.20026.20010
Exception objects found on the managed heap:
|
|
|
| Count |
Exception |
Detail |
| 19 |
System.Runtime.InteropServices.COMException |
HRESULT 0x8004E004 — "There is no MTS context available" |
| 5 |
System.InvalidCastException |
HRESULT 0x80004002 — "Specified cast is not valid" (COM QueryInterface) |
| 1 |
System.StackOverflowException |
process-fatal, uncatchable |
| 1 |
System.ExecutionEngineException |
process-fatal, uncatchable |
| 1 |
System.OutOfMemoryException |
during the native ACE call |
The StackOverflowException / ExecutionEngineException explain why the entire worker process terminates rather than returning a handled error — the failure originates in native Office code and cannot be caught by managed exception handling.
- Steps to reproduce
- On a server with Microsoft 365 Apps / ACE build 16.0.20026.20182, host an application that uses the ACE OLE DB provider (via COM/ADO) to read an Access
.mdb.
- Invoke the code path that opens the recordset from the
.mdb.
-
w3wp.exe faults in mso20win32client.dll (Application Error 1000, exception code 0x1e89a3d4).
- Workaround currently in place
- Rolling back / pinning the Office-ACE build to the pre-
16.0.20026 version stops the crashes completely. This is our only current mitigation and confirms the update is the trigger.
- Business impact
The affected API is used in production. On our server-farm environment the crash occurs on essentially every call to the affected endpoint, causing repeated worker-process recycles and failed requests for all users on that worker.
- Questions / requests for Microsoft
- Is this a known regression in the Office/ACE 16.0.20026.20182 build affecting the ACE OLE DB provider /
mso20win32client.dll?
- Is a fix or fixed build available or planned? If so, which build and target date?
- What is the recommended supported configuration for reading Access
.mdb data from a server-side service given this change?
- Is there a supported way to pin the ACE component to a known-good version while remaining on a current Office channel?After updating Microsoft 365 Apps / Access to build 16.0.20026.20182, our ASP.NET Web API application began crashing. The IIS worker process (
w3wp.exe) terminates with an unhandled fault in mso20win32client.dll whenever application code calls into the Access Database Engine (ACE OLE DB) through COM to read an Access (.mdb) database. This worked correctly on the previous Office/ACE build. Rolling back the Office/ACE update immediately resolves the crash, which strongly indicates a regression introduced by this update.
- Environment
|
Item |
Value |
|
OS |
Windows Server 2019 LTSC (build 10.0.17763) |
|
Application |
ASP.NET Web API (.NET Framework 4.8) hosted in IIS |
|
Faulting process |
c:\windows\system32\inetsrv\w3wp.exe, version 10.0.17763.1 |
|
Office / MSO build |
16.0.20026.20166 (loaded in dump); update reported as 16.0.20026.20182 |
|
ACE modules |
ACECORE.DLL / ACEES.DLL / ACEOLEDB.DLL — 16.0.20026.20010 |
|
Data access |
ADO (msado15.dll) + ACE OLE DB provider reading a .mdb file, invoked via COM automation |
- Symptoms / Windows Error Reporting data
From the Application event log (Application Error 1000): Faulting application name: w3wp.exe, version: 10.0.17763.1 Faulting module name: mso20win32client.dll, version: 0.0.0.0, time stamp: 0x6a2cb210 Exception code: 0x1e89a3d4 Fault offset: 0x00000000004408cd Faulting module path: C:\Program Files\Common Files\Microsoft Shared\Office16\mso20win32client.dll Report Id: 771657ba-8cd3-4b51-b69b-734d700f44bb Client-side, the in-flight HTTP request dies mid-execution and surfaces as "A task was canceled" (the request thread is destroyed when the worker process crashes).
- Crash-dump analysis (user-mode dump of
w3wp.exe)
A full user-mode dump was captured via WER LocalDumps. Analysis confirms: Faulting thread call stack (managed → native transition): InlinedCallFrame InlinedCallFrame IL_STUB_CLRtoCOM <-- managed→native COM call that faulted <app>.API CALL <app>.API CALL ... (ASP.NET Web API pipeline) ... The fault occurs precisely at the COM transition into the ACE-backed component (a ListAll()/recordset read against the .mdb), inside native Office code — not in managed application code. Patched modules confirmed loaded at crash time:
-
mso20win32client.dll — 16.0.20026.20166 (the faulting module)
-
mso.dll, mso30/40/50/98win32client.dll — 16.0.20026.20166
-
ACECORE.DLL, ACEES.DLL, ACEOLEDB.DLL — 16.0.20026.20010
Exception objects found on the managed heap:
|
Count |
Exception |
Detail |
|
19 |
System.Runtime.InteropServices.COMException |
HRESULT 0x8004E004 — "There is no MTS context available" |
|
5 |
System.InvalidCastException |
HRESULT 0x80004002 — "Specified cast is not valid" (COM QueryInterface) |
|
1 |
System.StackOverflowException |
process-fatal, uncatchable |
|
1 |
System.ExecutionEngineException |
process-fatal, uncatchable |
|
1 |
System.OutOfMemoryException |
during the native ACE call |
The StackOverflowException / ExecutionEngineException explain why the entire worker process terminates rather than returning a handled error — the failure originates in native Office code and cannot be caught by managed exception handling.
- Steps to reproduce
- On a server with Microsoft 365 Apps / ACE build 16.0.20026.20182, host an application that uses the ACE OLE DB provider (via COM/ADO) to read an Access
.mdb.
- Invoke the code path that opens the recordset from the
.mdb.
-
w3wp.exe faults in mso20win32client.dll (Application Error 1000, exception code 0x1e89a3d4).
- Workaround currently in place
- Rolling back / pinning the Office-ACE build to the pre-
16.0.20026 version stops the crashes completely. This is our only current mitigation and confirms the update is the trigger.
- Business impact
The affected API is used in production. On our server-farm environment the crash occurs on essentially every call to the affected endpoint, causing repeated worker-process recycles and failed requests for all users on that worker.
- Questions / requests for Microsoft
- Is this a known regression in the Office/ACE 16.0.20026.20182 build affecting the ACE OLE DB provider /
mso20win32client.dll?
- Is a fix or fixed build available or planned? If so, which build and target date?
- What is the recommended supported configuration for reading Access
.mdb data from a server-side service given this change?
- Is there a supported way to pin the ACE component to a known-good version while remaining on a current Office channel?