Skip to content

5 reasons third-party software updates fail (and how to fix them)

PDQ Team
PDQ team|November 12, 2026
General2 2026
General2 2026

TL;DR: Third-party software updates fail when the package doesn’t download completely, the app is still in use, the installer lacks the right permissions or context, the package and detection logic don’t match the device, or a restart is pending. Work through the diagnosis in this order: confirm delivery, inspect installer output, check device state, validate detection, and verify the resulting version. 

You push a third-party update and get a red failure status. That status tells you something broke, not why. Redeploying and hoping for a different result isn't a strategy (though we've all tried it). Application patch troubleshooting goes faster when you start with what your deployment logs say, check the device, and finish with a verified fix.

Did the update reach the endpoint and start?

An install that failed on the device and a deployment that never reached it are two separate problems. Before you troubleshoot the installer output, confirm in the deployment record that:

  • The deployment targeted the device

  • The device checked in

  • The download finished

  • The installer process started

If the deployment never targeted the device, or the device hasn’t checked in, the deployment hasn’t started on it. That’s a delivery problem, so fix it first. If it started but the download or installer launch failed, keep reading, because the causes below can explain it. 

Which five conditions commonly break a third-party update install? 

Exact error codes and recovery steps depend on the installer and the OS, so treat these five as a map, not a manual. 

1) The package doesn't download completely

Symptom: The installer never launches, or the package arrives incomplete at the endpoint.

Check: Blocked download sources, dropped connections, and DNS failures can prevent a package from downloading completely. Low disk space can also prevent the installer from extracting or installing the package. Confirm download status and free disk space, then test the network path to the source.

2) The app is still in use

Symptom: The installer hangs, times out, or can't replace files.

Check: A running app can hold its files open. Check for running processes on the device, then add a step that closes the app. Give users a heads-up or run the update outside work hours, since closing an app can lose unsaved work.

3) The installer lacks the right permissions or context

Symptom: The update works on your test machine but fails on endpoints.

Check: The account running the installer may lack write access to the target location, or a per-user installer may need a logged-in session. Confirm which account runs the installer, then adjust the package. PDQ runs custom packages as Local System by default, so you might set the step to run as Logged on User when the installer requires that user’s context, and confirm the user has the necessary permissions.

4) The architecture or detection logic doesn't match.

Symptom: The package fails outright, reports failure on a healthy install, or skips a device that needs the update.

Check: Compare the package's architecture and your detection rule with what's installed. For example, on 64-bit Windows, 32-bit apps use a separate registry view under Wow6432Node, so registry-based detection can look in the wrong place.

5) A restart is pending

Symptom: The installer returns a restart code, or an earlier install left the device awaiting a restart.

Check: Check the return code and the device for a pending restart, then restart and recheck. For example, Windows Installer return codes 3010 and 1641 are success codes that mean a restart is required or started. Some deployment tools only recognize exit code 0 as successful by default. If 3010 isn't included in the configured success codes, the tool may report the deployment as failed even though the installation succeeded and requires a restart. 

Look for patterns before you fix anything. If a dozen devices fail because the app was open, one package fix beats a dozen manual retries. A repeatable maintenance workflow makes that fix stick.

How do you confirm the update worked? 

A successful exit code isn’t direct proof that your third-party software update worked. Verify the result independently:

  1. Check the installed version in the app, the uninstall registry entry, or an inventory scan. Compare it with the version the vendor lists for that release.

  2. Account for restarts. A 3010 means the installer finished, but the version may not change until the device restarts.

  3. Confirm the app restarted after the update and reports the new version. A process that stayed open may still run the old code.

  4. Test the corrected package on a pilot device first. Testing software packages with a reproducible install check keeps you from repeating the failure across the fleet.

How can PDQ help with failed updates? 

PDQ helps you target application deployments and review outcomes on managed Windows and macOS devices. The Deployments page shows the deployment status, and the Output Log shows each step's execution. Return codes appear in the Details column, and Redeploy retries a failed deployment once you fix the cause.

Sign up for a free PDQ trial to troubleshoot failed updates faster.

PDQ Team
PDQ team

The PDQ content team writes practical guides for sysadmins on patching, software deployment, and endpoint management. Built for sysadmins, by sysadmins, our content is shaped by real-world IT experience and the tools we create — like PDQ Connect, a cloud-based platform for remotely managing Windows and macOS devices. We focus on simple, secure, and pretty damn quick solutions you can use in real environments, whether you're managing 15 devices or 15,000. The goal is always faster fixes, fewer surprises, and healthier fleets.

Related articles