0XC00D0030

Fix NS_E_FILE_BANDWIDTH_LIMIT (0xC00D0030) on Windows Server

Windows Media Services hit a bandwidth cap and refused to serve your stream. Here's why it happens and how to lift the limit without breaking anything else.

Quick answer

Your Windows Media Services server hit the per-stream or per-server bandwidth limit and dropped the request. Raise the limit in the WMS admin console or in the registry under HKLM\SOFTWARE\Microsoft\Windows Media Services\Limits.

What's actually happening here

NS_E_FILE_BANDWIDTH_LIMIT is a Windows Media Services error. The NS_E_ prefix means "Network Services," the old namespace Microsoft used for the media stack that shipped with Windows Server 2003 through 2008 R2 (and technically still lives as a deprecated role on later versions if you force-installed it). The code translates roughly to: "the requested content needs more bandwidth than the server is willing to give it right now."

The reason this trips when it does is straightforward. WMS tracks bandwidth at two levels. First, per publishing point — the limit you set on a specific stream, usually matching the encoded bitrate plus overhead. Second, per server — the global cap that protects your network link from being saturated by the media role. When a client requests a stream and the projected bandwidth would push either counter over the line, WMS rejects the request instead of degrading quality. It doesn't buffer, doesn't downshift, doesn't warn the client. You just get 0xC00D0030.

Real trigger I've seen more than once: someone encodes a new source at 2.5 Mbps, drops it into the same publishing point that was capped at 2 Mbps six months ago, and the stream works fine for the first viewer. Second viewer connects, both streams together now exceed the server cap, and that client gets the error. The first one keeps playing, which makes it look random. It isn't.

Fix it: raise the bandwidth limit

Do this on the server itself. Remote PowerShell against the WMS WMI provider works too, but the GUI is faster for a one-off.

  1. Open Server Manager, then Roles, then Streaming Media Services, and launch the Windows Media Services console. On 2008 R2 it's a snap-in you open from Administrative Tools.
  2. Expand the server node on the left. You'll see Publishing Points. Pick the one throwing the error.
  3. Right-click it, choose Properties, go to the General tab. Find the Limit the bandwidth field. It's probably set to something like 2,000 Kbps. Change it to match the actual encoded bitrate of your source plus roughly 5–10% headroom.
  4. Still in Properties, open the Performance tab. Check Limit the total bandwidth. If it's enabled, that's your server-wide cap. Raise it. On a 1 Gbps NIC you can comfortably set this to 500,000 Kbps, but be honest about your actual link speed.
  5. Apply, then restart the WMS service from an elevated command prompt:
net stop wmserver
net start wmserver

The reason step 5 matters: publishing point changes are read on service start for some properties, and connection-level counters don't always reset cleanly on a live service. A restart forces a clean slate.

If the GUI route doesn't stick

Group Policy can override your local changes. If someone in your org pushed a WMS template through GPO, your edits revert at next policy refresh. Check gpresult /h gpreport.html and search for "Windows Media." You want to either edit the policy at the source or block inheritance on that OU.

For stubborn cases, set it directly in the registry. This path works on Server 2003 and 2008 R2; later versions dropped the role entirely, so if you're on 2012+ and seeing this code, you're running something that re-implements the NS_E error space — check the vendor's docs, not Microsoft's.

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Media Services\Limits]
"FileBandwidthLimit"=dword:00000000
"TotalBandwidthLimit"=dword:00000000

Setting both to 0 removes the cap entirely. Don't do this on a box sharing a link with production traffic. 0 means "no limit," and WMS will happily saturate a 1 Gbps NIC if enough clients ask.

Alternative fixes if raising the limit isn't enough

  • Re-encode at a lower bitrate. If you can't raise the cap because the network link is genuinely constrained, drop the source from 2.5 Mbps to 1.5 Mbps using Windows Media Encoder or ffmpeg. A 40% reduction is barely visible on most content and buys real headroom.
  • Split publishing points. One stream per publishing point, each with its own cap, lets you control which clients get bandwidth when the server is busy. It's more admin work but the load is predictable.
  • Disable the per-publishing-point limit only. Leave the server cap in place as a safety net. Right-click the publishing point, Properties, General, uncheck "Limit the bandwidth" — no, don't just set it to a huge number. Uncheck it. The semantics differ when a client requests a stream with an unknown bitrate.
  • Check the MaxFileSize and MaxBandwidth values in the plugin config. Some third-party WMS plugins enforce their own caps that override the server settings. The event viewer entry for the error usually names the plugin. Look in Event Viewer → Windows Logs → Application for source WMServer.
  • Move to IIS Media Services or a modern stack. WMS was deprecated in Server 2008 R2 and removed afterward. If you're still running it in 2025 because a client's ancient set-top boxes need MMS protocol, that's a conversation worth having. HLS via nginx or IIS with a caching layer is not hard to set up and doesn't have this class of problem.

Prevention

Whatever your current cap is, write it down somewhere. The error almost always shows up because someone added a new source file without checking the publishing point's ceiling against the new bitrate. Before you publish anything, run ffprobe -show_format -show_streams yourfile.wmv and look at the bitrate field. Compare it to the publishing point limit. If it's close, raise the limit before you go live, not after a client complains.

Also: monitor the WMS performance counters. Windows Media Services → Publishing Points → Bandwidth shows current usage per point. Set a PerfMon alert at 80% of your cap. You'll know you're about to hit the wall before any client sees 0xC00D0030.

If the error comes back after a reboot, it's almost certainly Group Policy. Check that first before you touch anything else.
Related Errors in Server & Cloud
0XC0000058 STATUS_UNKNOWN_REVISION (0XC0000058): Fix Guide 0X00000713 Fixing ERROR_SERVER_HAS_OPEN_HANDLES (0x00000713) on Windows Server AccessDenied S3 Bucket Policy Says Access Denied? The One-Line Fix 0X000013CC Quick Fix for Quorum Resource Lock Error (0X000013CC)

Was this solution helpful?

EP
Erropedia Team
Tech Support Editors
The Erropedia editorial team researches and documents real-world tech errors from across Windows, Linux, macOS, networking, databases, cloud platforms, and more. Every solution is reviewed for accuracy and updated as software and systems evolve.