Fix NERR_NoRoom (0X00000847) Out of Resource Error
Server says it's out of room or resource? This error means the server can't take more connections. I'll show you the quick fix and why it works.
That annoying "out of room" message
I know this error is infuriating — you're just trying to connect to a server, and boom, it says there's no room. I hit this one on a Windows Server 2019 box that had around 200 users accessing shared files. Everything worked fine for months, then suddenly users couldn't map drives. The fix is usually simple.
The real fix: increase MaxWorkItems
First, let me tell you what not to do. Don't restart the server. Don't reinstall network drivers. The problem is a shortage of work items — these are small memory buffers the server uses to handle incoming requests. When they run out, you get error 0X00000847.
Here's the fix that works for 9 out of 10 cases:
- Open Registry Editor (regedit) as Administrator.
- Go to:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters - If you don't see MaxWorkItems, right-click in the right pane, choose New → DWORD (32-bit) Value, and name it MaxWorkItems.
- Double-click it. Set the base to Decimal. Enter a number between 512 and 65535. I usually start with 8192 for a medium-load server. For heavy load (400+ concurrent users), try 16384.
- Click OK, close regedit.
- Reboot the server. Or restart the Server service: run
net stop lanmanserver && net start lanmanserverin an admin command prompt.
That's it. Most people see the error go away immediately after restarting the service. If you don't want to reboot, the service restart is safe — it just kills active SMB connections temporarily, so do it during low traffic.
Why does this work?
Windows Server has a default MaxWorkItems value that's calculated based on the system memory at boot time. It's usually around 8192 for servers with 4GB RAM, but it can be lower if the server was installed with less memory. The problem is that modern SMB traffic (especially with large file transfers, many small requests, or lots of users) needs more work items than the default.
Each work item takes up about 256 bytes of non-paged pool memory. So 8192 work items use about 2MB of RAM. That's almost nothing. But if you set MaxWorkItems too high (like 65535), you can waste memory. Stick with 8192 to 16384 — it's more than enough for most servers.
Also, this error often shows up when a server has a memory leak in a third-party service or driver. If the fix doesn't work, check if non-paged pool usage is high. Run poolmon (from Windows SDK) to see which tag is using memory.
Less common variations
Sometimes MaxWorkItems isn't the only cause. Here are other things to check:
- IRPStackSize: This registry value controls how many I/O request packets the server can stack. It's also in
LanmanServer\Parameters. Default is 15, but for heavy load, try 20 or 25. Too high can crash the server, so increase by 5 at a time. - MaxRawWorkItems: This one handles raw SMB reads. Default is 256. If you're doing lots of large file transfers, try 512.
- Memory pressure from antivirus: Some AV software hooks SMB traffic and can eat up work items. Try temporarily disabling real-time scanning on the server's file shares. I've seen Norton and McAfee cause this.
- Too many open files: Run
net fileon the server to see open files. If a single user has hundreds of file handles open, that's a problem. The server might reach its max open files limit (default is 16384 for Windows Server). You can increase it viaMaxMpxCtregistry value in the same path.
One weird case I saw: a printer driver that leaked memory on every print job. The server ran out of non-paged pool after 3 days. Uninstalling that driver fixed it. So look at recent software installs if the error appeared suddenly.
How to stop it from happening again
Prevention beats fixing every time. Here's what I do on all my servers:
- Set MaxWorkItems to 16384 as part of the initial server build. It costs almost nothing and prevents this error.
- Monitor non-paged pool usage. If it stays above 200MB after a reboot, you have a leak. Use Performance Monitor with the
Memory\Pool Nonpaged Bytescounter. - Keep your server updated. Some old SMB drivers (like from NAS devices) cause this. Windows Updates often include fixes.
- Don't let users open hundreds of files at once. Train them to close Explorer windows. Seriously — each open folder consumes a work item.
- If you have more than 500 concurrent users on a single server, consider adding a second server or using DFS to distribute load.
That's the whole story. The error 0X00000847 is annoying but easy to fix once you know where to look. Start with MaxWorkItems, check for memory leaks, and you'll be back online fast.
Was this solution helpful?