Skip to content

Est. 2011ยทMicrosoft Partner 7033487ยทDelivery under 3 minยทSupport 7 days a week

Your vault is empty.

Free Fix 0x80240030

0x80240030 and 0x80240021: update operations time out behind a bad proxy

11 min read Updated October 5, 2026 Windows Update & Setup

Fix it now

Microsoft publishes 0x80240030 as WU_E_INVALID_PROXY_SERVER, the format of the proxy list was invalid, and 0x80240021 as WU_E_TIME_OUT, the operation did not complete because it timed out. The first is a parsing failure on the machine, the second is something too slow to finish. Neither has anything to do with your Windows licence.

Run these in an elevated Command Prompt, in order

netsh winhttp show proxy
netsh winhttp reset proxy
net stop wuauserv
net start wuauserv
  1. Read what the machine account is actually using. This is not your browser’s proxy: Windows Update runs in the machine context and reads the WinHTTP configuration.
  2. Test a scan with no proxy at all after the reset. If it works, the definition was the problem and you can set a correct one.
  3. If a proxy really is required, set it in the documented form, for example netsh winhttp set proxy proxy-server="http=proxy.example.local:8080;https=proxy.example.local:8080" bypass-list="*.example.local;<local>".
  4. Have the update endpoints allowed without authentication and excluded from TLS inspection, because a machine-context request cannot answer a credentials prompt.
  5. Rescan and watch what changes. A timeout that becomes a slow but successful scan points at server capacity rather than at client configuration.

Microsoft now marks netsh winhttp show proxy and set proxy as deprecated in favour of show advproxy and set advproxy, which take their settings as JSON. The older commands still work and are what most estates are documented around.

If the scan completes in a sensible time, stop here. Below is why there are two proxy configurations, and which of the five codes points at the client and which at the server.

Why it happens

Windows keeps separate proxy settings for interactive users and for services. Your browser uses the per-user settings, complete with your credentials. Windows Update runs in the machine context and uses the WinHTTP configuration, with no user, no credentials and no way to answer a prompt. That one difference accounts for most cases where browsing works perfectly and updating does not, and it is why checking the browser proves nothing.

0x80240030 is raised when that machine-level configuration cannot be interpreted at all. Microsoft’s wording is that the format of the proxy list was invalid. A typing mistake in the netsh string, a policy pushing a malformed value, or an automatic configuration script returning something unusable will all produce it. The client is not saying the proxy is unreachable; it is saying it cannot tell what it has been asked to use.

0x80240021 is a different complaint entirely. The exchange started and did not finish in time. That happens with a proxy that stalls, a configuration script that has to be fetched from somewhere slow before every request, or an update server carrying more catalogue than it can serve promptly. On managed networks the server end is the usual culprit, and the supporting codes tell you which end to look at: 0x80244010 is WU_E_PT_EXCEEDED_MAX_SERVER_TRIPS, the number of round trips to the server exceeded the maximum limit, which is a server-side symptom, while 0x8024001F is WU_E_NO_CONNECTION, no network connection was available, which is a client-side one.

The machine-level proxy definition is malformed

You have this one if 0x80240030 appears immediately, and netsh winhttp show proxy returns something odd, truncated or unexpected.

  1. Reset it with netsh winhttp reset proxy, which returns the setting to DIRECT, and test a scan with no proxy.
  2. If a proxy is required, set it again carefully with the full proxy-server and bypass-list syntax, checking for stray spaces or smart quotes copied from a document.
  3. If a policy or a script sets the value, correct it at source rather than on the client, refresh policy and restart wuauserv.

An automatic configuration script is slow or unreachable

You have this one if 0x80240021 on a network that uses a proxy auto-configuration script, particularly for machines connecting over a VPN.

  1. Test whether the script host is reachable from the client at the time the scan actually runs, not just at the time you are looking.
  2. Configure an explicit WinHTTP proxy for the machine context instead of relying on the script. Services handle scripts less gracefully than browsers do.
  3. Confirm the bypass list covers internal hosts such as your update server so its traffic does not take a slow path out and back.

The proxy demands authentication the machine cannot provide

You have this one if Timeouts on the client, and proxy logs showing challenges that are never answered from that machine.

  1. Have the update endpoints exempted from authentication on the proxy.
  2. Where exemption is impossible, arrange for the machine account to be authorised transparently rather than by prompt.
  3. Confirm the exemption covers both metadata and content hosts, because they are different names.

An authentication challenge a service cannot answer usually surfaces as a timeout rather than a clear refusal, which is why this cause hides behind 0x80240021 instead of announcing itself.

The update server cannot answer quickly enough

You have this one if 0x80244010 or 0x80240021 across many managed clients at once, with the server under visible load.

  1. Decline superseded updates and run the server cleanup routine to shrink the catalogue every client has to work through.
  2. Raise or remove the private memory limit on the update server’s application pool, which is a frequent cause of repeated recycling under load.
  3. Stagger client scan schedules so they do not all arrive together.
  4. Retry from a client once the server is quiet and confirm the scan completes.

The client’s cached server state is stale

You have this one if 0x80244015, often after the update server was rebuilt, renamed or upgraded.

  1. Let the client retry. Microsoft’s description of this code is that the server was changed or the cookie was invalid and the client should refresh its internal cache and retry, which it does on its own.
  2. If it persists, stop wuauserv and bits, rename C:\Windows\SoftwareDistribution, start the services and rescan.
  3. Confirm the client policy names the current server, and correct it if the name changed.

Full reference

The five codes, and which end each accuses

Code Published name Published description Points at
0x80240030 WU_E_INVALID_PROXY_SERVER The format of the proxy list was invalid The client
0x80240021 WU_E_TIME_OUT The operation did not complete because it timed out Either end
0x8024001F WU_E_NO_CONNECTION The operation did not complete because the network connection was unavailable The client
0x80244010 WU_E_PT_EXCEEDED_MAX_SERVER_TRIPS The number of round trips to the server exceeded the maximum limit The server
0x80244015 WU_E_PT_REFRESH_CACHE_REQUIRED The server was changed or the cookie was invalid; refresh the internal cache and retry The server, then the client

The proxy commands, current and deprecated

Microsoft’s netsh documentation now carries deprecation notices on two of the commands most estates are built around. They still function, and the replacements take a different kind of argument, so it is worth knowing both.

Command What it does Status
netsh winhttp show proxy Displays the machine-context proxy setting Deprecated in favour of show advproxy
netsh winhttp set proxy proxy-server=... bypass-list=... Sets the machine-context proxy and its exclusions Deprecated in favour of set advproxy
netsh winhttp show advproxy Displays the current advanced proxy setting Current
netsh winhttp set advproxy setting-scope=machine settings={...} Sets the advanced proxy from a JSON object with Proxy, ProxyBypass, AutoconfigUrl and AutoDetect Current
netsh winhttp reset proxy Resets the machine-context proxy to DIRECT Current
netsh winhttp import proxy source=ie Imports the per-user Internet Options settings Current, and IE is the only documented source

<local> in a bypass list means every short-name host. Getting your own update server into that list is usually the single most effective change on a managed network, because it stops internal traffic taking a slow trip through an external proxy.

Separating a slow server from a broken client

  1. Run the scan from a client on the same subnet as the update server with no proxy configured. If that is fast, the fault is in the path.
  2. Compare the timing across several clients. One slow machine is a client problem; every machine at nine in the morning is a scheduling and capacity problem.
  3. Look at the update server’s application pool for repeated recycles during scan windows.
  4. Check the size of the catalogue. A server that has never had superseded updates declined makes every client do more work on every scan.
  5. Only after that, start changing things on the client.

Where the evidence lives

Source How to reach it What it shows
Windows Update trace Get-WindowsUpdateLog Which host the client tried, and where it gave up
Proxy logs On the proxy Whether the request arrived at all, and whether it was challenged
IIS logs on the update server C:\inetpub\logs\LogFiles The status the server actually returned, with timing
Machine proxy setting netsh winhttp show proxy What the update client is configured to use, as opposed to what you think it uses

One thing worth knowing about the server

If the timeouts trace back to a WSUS server, it is worth knowing where that product stands. Microsoft lists Windows Server Update Services among the features no longer in development, while confirming that existing capabilities and content remain available for current deployments. That is not a reason to rip it out this week, but it is a reason not to invest heavily in tuning an ageing instance when the estate could move to a serviced alternative.

Every code this article covers

Code What it points at Source
0x80240030 WU_E_INVALID_PROXY_SERVER. The format of the proxy list was invalid Microsoft Learn
0x80240021 WU_E_TIME_OUT. The operation did not complete because it timed out Microsoft Learn
0x8024001F WU_E_NO_CONNECTION. The operation did not complete because the network connection was unavailable Microsoft Learn
0x80244010 WU_E_PT_EXCEEDED_MAX_SERVER_TRIPS. The number of round trips to the server exceeded the maximum limit Microsoft Learn
0x80244015 WU_E_PT_REFRESH_CACHE_REQUIRED. The server was changed or the cookie was invalid, so the client must refresh its internal cache and retry Microsoft Learn

Confirm the fix worked

  1. netsh winhttp show proxy reports the configuration you intended for the machine context.
  2. A scan in Settings, Windows Update completes within a reasonable time.
  3. One update installs end to end and appears in the update history.
  4. On a managed network, several clients complete a scan in the same window rather than one at a time.

Questions people ask about this

Why does my browser reach the internet when Windows Update cannot?

They use different proxy configurations and different identities. The browser is you, with your credentials. The update client is the machine, using the WinHTTP settings, with no way to answer an authentication prompt.

Does any of this need a licence or a purchase?

No. These are network and server configuration problems. Updates are included with a licensed, supported installation and nothing here is solved by buying anything.

Is netsh winhttp reset proxy safe to run?

Yes, and it is a good diagnostic. It only clears the machine-level proxy setting back to DIRECT, and you can set it again immediately if the network genuinely requires one.

Should I switch to the advproxy commands?

Eventually. Microsoft marks show proxy and set proxy as deprecated in favour of show advproxy and set advproxy, which take their configuration as a JSON object with Proxy, ProxyBypass, AutoconfigUrl and AutoDetect. The older commands still work, so this is a migration rather than an emergency.

Our update server is slow rather than broken. Is that really the cause?

It can be. Round trip and timeout limits are finite, so a server that answers eventually but not promptly produces the same codes as one that never answers. Cleaning up the catalogue usually helps more than anything you change on the client.

Related error codes

Was this article helpful?

Your feedback helps us improve our documentation.

Related articles

Free Fix 0x80070017 and 0x8007045D: install media read errors during Windows Setup Free Fix 0x87D00692 and 0x87D00664: Configuration Manager update deployments fail Free Fix 0x80242006 and 0x80240022: update handler and post-reboot install failures Free Fix 0x80246001 and 0x80246005: the download manager has no usable source
โ† Back to Knowledge Base