0X0000023F

Unpacking ERROR_APP_INIT_FAILURE (0x0000023F)

Windows Errors Intermediate 👁 0 views 📅 Jun 10, 2026

An app fails to start with this code when required DLLs or dependencies are missing or corrupted. The fix usually involves reinstalling the Visual C++ runtime or repairing app dependencies.

1. Missing or Corrupt Visual C++ Redistributable Runtime

This is the single most common cause of ERROR_APP_INIT_FAILURE (0x0000023F) in my experience. The application needs a specific version of the Microsoft Visual C++ runtime (2005, 2008, 2010, 2012, 2013, 2015–2022) and either the required DLL isn't installed or the installed version got corrupted.

What's actually happening here is the Windows loader tries to find msvcp140.dll, vcruntime140.dll, or (for older apps) msvcr100.dll and msvcp100.dll. If those are missing, the process fails before any app code runs — that's why you see the generic "failed to initialize properly" message.

Fix:

  1. Uninstall ALL existing Visual C++ Redistributables via Settings > Apps > Installed Apps. They can interfere with each other if some are broken.
  2. Download the latest Visual C++ Redistributable all-in-one package from Microsoft's official site (not a third-party site). I use the direct x64 and x86 links from Microsoft's maintenance page.
  3. Install both the x64 and x86 versions. Even if you're on 64-bit Windows, some 32-bit apps require the x86 runtime.
  4. Reboot. Not strictly necessary but I've seen it resolve edge cases where the loader cache gets stale.

If the error persists, check the Application Event Log in Event Viewer for a SideBySide error. It'll tell you exactly which assembly version is missing. Look under Windows Logs > Application for events with Source = "SideBySide" and Event ID 33 or 59.

2. Side-by-Side (SxS) Assembly Activation Failure

Modern Windows apps often declare dependencies on Side-by-Side assemblies — think of them as DLLs with versions embedded in their manifest. If the app's manifest references a specific assembly version that isn't installed, you get 0x0000023F.

This one's trickier because the missing assembly might not be a runtime at all. It could be something like Microsoft.Windows.Common-Controls version 6.0.0.0 or a DirectX redistributable component.

How to find the missing assembly:

  1. Download Dependency Walker (depends.com) — it's old but still works for static analysis. Or use Process Monitor from Sysinternals to capture the file system calls the app makes right before failing.
  2. If using Process Monitor: filter by Process Name = your app's EXE, then look for Result = NAME NOT FOUND or PATH NOT FOUND entries in the %WINDIR%\WinSxS folder.
  3. The missing assembly name will be in the path, like Microsoft.VC80.CRT_1fc8b3b9a1e18e3b. That tells you exactly what's missing.

Fix: Install the corresponding Visual C++ Redistributable that includes that assembly. For old VC80/VC90 assemblies, you may need the original installer from Microsoft's download center — the modern all-in-one redist doesn't always include these legacy versions. Search for "Microsoft Visual C++ 2005 Redistributable" on Microsoft's site.

3. Corrupted System Files Affecting Kernel32 or NTDLL

Less common but worth checking if the first two steps don't help. A corrupted kernel32.dll or ntdll.dll can cause this exact error code, though it's more typical to see 0xC0000142 (STATUS_DLL_INIT_FAILED). Still, I've seen 0x0000023F on systems with deep corruption from a failed update or malware removal.

Fix:

  • Run System File Checker: open Command Prompt as administrator and run sfc /scannow. Let it complete — it may take 15-20 minutes.
  • If SFC finds issues it can't repair, follow up with DISM: DISM /Online /Cleanup-Image /RestoreHealth. This fixes the component store that SFC relies on.
  • Reboot after DISM completes, then run sfc /scannow again. This two-pass approach is the only reliable way to fix system file corruption on Windows 10 and 11.

Quick-Reference Summary Table

Cause Diagnosis Fix
Missing/Corrupt VC++ Runtime Check Event Viewer for SideBySide errors Reinstall all VC++ Redistributables (x86 + x64)
SxS Assembly version mismatch Use Dependency Walker or Process Monitor to find missing assembly name Install the redistributable that provides that assembly
Corrupted kernel32/ntdll Run SFC and DISM sfc /scannow, then DISM /RestoreHealth, then sfc again

Was this solution helpful?