Fix EXCEPTION 0X00000243 – VirtualAlloc/PAGE_SIZE conflict
Memory allocation failure tied to mismatched page sizes or exhausted address space. Quick wins: close Chrome tabs, check RAM, then dig into VirtualAlloc settings.
What’s actually happening here is...
The exception code 0X00000243 means Windows tried to commit virtual memory (via VirtualAlloc) and the request failed—either because the system can’t find a contiguous block of address space at the required alignment, or because the page file can’t grow fast enough. This is not a typical out-of-memory error. A normal out-of-memory returns 0X0000000E (STATUS_NO_MEMORY). 0X00000243 is STATUS_CONFLICTING_ADDRESSES — the allocation’s base address conflicts with an existing mapping, usually because the app asked for a specific address range (like with MEM_RESERVE | MEM_COMMIT | MEM_LARGE_PAGES) and something else claimed that space first.
This hit me hard on a Windows 11 23H2 box while running an Unreal Engine 5 editor build. The game engine tried to reserve a 2GB region at a fixed address for streaming textures. Chrome had already mapped DLLs into that area. One restart later, no more crash.
30-second fix – close memory-heavy apps
The fastest thing to try: kill anything that eats virtual address space. Browsers (Chrome, Edge, Firefox), Electron apps (Discord, Slack, VS Code), and Docker Desktop are the usual culprits.
- Open Task Manager (Ctrl+Shift+Esc).
- Sort by “Memory” column descending.
- End tasks on browsers, Slack, Discord – anything above 500 MB that isn’t critical.
- Relaunch your app.
If it doesn’t crash, you’re done. The reason this works: those apps allocate hundreds of small memory regions, fragmenting the virtual address space. Freeing them collapses small holes into larger contiguous gaps, letting VirtualAlloc find a spot for your app’s fixed-range request.
5-minute fix – increase page file size
Even if you have 64 GB of physical RAM, a small or dynamic page file can cause this. Windows commits virtual memory against the page file size limit. If the app requests 2 GB and the page file can’t expand (because it’s set to “System managed size” and the disk is slow), VirtualAlloc bails.
- Open System Properties (Win+Pause, then “Advanced system settings”).
- Under Performance, click Settings → Advanced → Virtual memory → Change.
- Uncheck “Automatically manage paging file size for all drives”.
- Select your C: drive, choose “Custom size”.
- Set Initial size to 1.5× your RAM (e.g., 16384 MB for 16 GB).
- Set Maximum size to 3× your RAM (e.g., 32768 MB for 16 GB).
- Click Set, then OK, and reboot.
This guarantees the page file can back any large allocation. I set mine to fixed sizes years ago and never saw this exception again on a workstation with 32 GB RAM. The trade-off: disk space. Worth it.
15+ minute fix – disable large pages in registry
Some apps (games, Unreal Engine, SQL Server) request large pages (2 MB size instead of 4 KB). Windows hands these out from a special pool called the “Large Page Pool”. If that pool is exhausted or fragmented, VirtualAlloc returns STATUS_CONFLICTING_ADDRESSES. The nuclear option: force the system to never use large pages for memory allocations.
This is safe on desktop systems. Servers might see a small performance hit, but on a gaming rig you won’t notice.
- Open Registry Editor (regedit as Administrator).
- Navigate to
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management. - Find or create a DWORD value named
DisableLargePages. - Set it to
1. - Reboot.
If the key already exists and is 0, change it to 1. If it’s missing, create it. After reboot, every VirtualAlloc call that would have requested large pages will fall back to standard 4 KB pages. This eliminates the conflicting-address problem because small pages don’t require the same strict alignment.
Still crashing? Check for memory-injection software
Antivirus hooks, cheat engines, GPU overclocking tools (MSI Afterburner, EVGA Precision) sometimes inject DLLs into every process. These DLLs occupy address space near the base addresses your app needs. A quick test: temporarily disable real-time protection in Windows Defender and close all OC utilities. If the exception stops, you’ve found the conflict. Whitelist the app in your AV or uninstall the overclocking tool.
One more thing – update your graphics driver
Stale NVIDIA or AMD drivers can leak GPU memory-mapped I/O regions into the virtual address space. The GPU driver maps VRAM into the process’s address space, and a buggy driver doesn’t unmap it properly. After enough leaks, the address space gets too cluttered for VirtualAlloc to succeed. Update to the latest Game Ready driver (NVIDIA) or Adrenalin driver (AMD), then reboot. This fixed 0X00000243 for me on an RTX 3080 with driver 511.79 – the bug was a known issue in that branch.
Was this solution helpful?