Quick Answer (for advanced users)
Run sfc /scannow and dism /online /cleanup-image /restorehealth from admin Command Prompt. Then uninstall any recently added software from 2005 or earlier. Reboot.
What's Really Happening
This error code means a program tried to set the Local Descriptor Table (LDT) to a size Windows won't accept. The LDT is a CPU memory structure used by old 16-bit or 32-bit programs. You almost never see this on modern Windows unless you're running something ancient — like an old DOS game, a legacy database app from 1998, or a driver that hasn't been updated since XP. The real trigger is usually a bad pointer or misconfigured memory request from the application.
I've seen this on Windows 10 and 11, mostly on machines running 32-bit apps through compatibility modes. Windows 10 20H2 and newer versions are stricter about LDT sizes. The error can also pop up if a driver (especially a display driver or kernel driver) tries to allocate an LDT with a size that's not a multiple of 8 or exceeds the system limit.
Step-by-Step Fixes (try in order)
- Run System File Checker — Open Command Prompt as admin (right-click Start menu). Type
sfc /scannowand press Enter. Let it finish. This fixes corrupted system files that might mess with LDT handling. - Run DISM — If SFC finds issues or errors, run
dism /online /cleanup-image /restorehealthnext. This fixes the component store. Reboot after. - Remove old software — Go to Settings > Apps > Apps & features. Sort by date installed. Uninstall anything older than 2010, especially if it's a game, utility, or driver tool. Focus on anything with "DOS", "16-bit", or "NT4" in the name.
- Check for driver updates — Open Device Manager (right-click Start). Look for any device with a yellow exclamation mark. Update your chipset, graphics, and network drivers from the manufacturer's site. Skip Windows Update — it's often behind.
- Test with clean boot — Type
msconfigin the Run box (Win+R). Go to Services tab, check "Hide all Microsoft services", then click "Disable all". Go to Startup tab, open Task Manager, disable all startup items. Reboot. If the error stops, re-enable services one by one to find the culprit.
Alternative Fixes (if the main ones fail)
- Edit registry for LDT size — Open Regedit as admin. Go to
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management. Create a DWORD (32-bit) calledLdtSize. Set it to0x00001000(4096 decimal). Reboot. This forces a larger LDT size, but be careful — it can cause stability issues. Only try this if you know what you're doing. - Use Windows compatibility mode — Right-click the program's .exe file, go to Properties > Compatibility. Check "Run this program in compatibility mode for" and pick Windows 7 or XP SP3. Also check "Run as administrator". Apply and reboot.
- Reinstall the application — Uninstall the program that causes the error, then reinstall it with admin rights. Sometimes the installer sets up LDT settings wrong.
- Upgrade to 64-bit — If you're on a 32-bit version of Windows, upgrade to 64-bit. 64-bit Windows doesn't use LDT for 32-bit apps, so this error won't happen.
Prevention Tips
Stop running ancient software on modern Windows. It's not worth the headache. If you absolutely need a DOS or 16-bit app, use a virtual machine with Windows XP or DOSBox. That keeps the LDT mess contained. Also, keep your drivers updated — chipset and graphics drivers are the most common cause of this error on newer hardware. And for the love of God, don't install driver packs from 2012.
If this error shows up during Windows boot or startup, run a hardware test on your RAM and CPU. Bad hardware can cause memory corruption that leads to invalid LDT sizes. Use MemTest86 for RAM, and run Intel Processor Diagnostic Tool or AMD's equivalent.
Pro tip: If you see this error after installing a virtual machine tool (like VMware or VirtualBox), it's almost always a driver conflict. Uninstall the VM tools and reinstall the latest version.