Original publish date: July 20, 2026
KB ID: 5121986
Introduction
Microsoft has identified a service degradation due to a buildup of published test detectoids to the Windows Server Update Services (WSUS) channel. The detectoids associated with this issue can be identified by a naming pattern similar to the following:
- Product Detectoid for ProductName TestProduct%
For example, a problem detectoid might resemble the following:
- Product Detectoid for ProductName TestProduct1272ad5c-e150-4370-b18d-7b940bd0e518
Organizations might experience increased synchronization times or sync operation timeouts on WSUS servers. This issue began recently, with heightened impact observed starting July 13, 2026.
Microsoft has deployed a mitigation for this issue on July 18, 2026. Synchronization times and sync operations on WSUS servers have been restored and are operating normally for new WSUS installations and rebuilds. This mitigation prevents newly installed or rebuilt WSUS servers from encountering this issue.
On client computers, the buildup can also cause Windows Update scans to fail or time out. Affected clients may log errors such as the following:
| Error | Meaning | What it indicates |
|---|---|---|
| 0x80244010 | WU_E_PT_EXCEEDED_MAX_SERVER_TRIPS | The scan exceeded the maximum number of round trips to WSUS. This is the key symptom. |
| 0x8024400E 0x80244007 |
WU_E_PT_SOAP_SERVER WU_E_PT_SOAPCLIENT_SOAPFAULT |
The server timed out processing the request, or the client sent an oversized dataset that WSUS rejected. |
| 0x80244022 HTTP 503 |
Service unavailable | The WSUS application pool (WsusPool) is overloaded. |
| 0x80240439 | WU_E_PT_INVALID_FORMAT | Oversized client or server datasets producing abnormal IIS errors. |
| 0x80072EE2 | WININET timeout | The scan ran too long and timed out. |
Resolution
For WSUS servers that are still affected by this issue, we recommend you run the following steps to return your WSUS server to normal functionality.
Step 1: Backup the SUSDBs
Important
Back up each SUSDB database before you begin. The cleanup permanently deletes update metadata and cannot be reversed without a backup.
BACKUP DATABASE SUSDB
TO DISK = N'<C:\Backup folder>\SUSDB_PreDetectoidCleanup.bak'
WITH INIT, STATS = 5;
For information about creating the backup, see Create a full database backup.
Step 2: Run the cleanup query
This query will delete the mis-published detectoids from a WSUS system. It will also set the value of MaxXMLPerRequest to 0 (to eliminate the 5MB limit), which will help alleviate problems with clients failing to scan due to exceeding maximum round trips to WSUS when performing a synchronization.
Important
This query must be run from SQL Management Studio against all SUSDB databases, including against WSUS replicas. Deletions do not propagate between WSUS servers, so every servers catalog must be cleaned directly. Clients that report to a downstream server that has not been cleaned will continue to see the detectoids.
SET NOCOUNT ON;
UPDATE tbConfigurationC SET MaxXMLPerRequest = 0 --Update the MaxXMLPerRequest to lift the limit
DECLARE @updateID uniqueidentifier;
DECLARE @retcode int;
DECLARE @deleted int = 0;
DECLARE @skipped int = 0;
DECLARE detectoid_cur CURSOR LOCAL FAST_FORWARD FOR
SELECT u.UpdateID
FROM dbo.tbUpdate u
JOIN dbo.tbRevision r ON r.LocalUpdateID = u.LocalUpdateID AND r.IsLatestRevision = 1
JOIN dbo.tbProperty p ON p.RevisionID = r.RevisionID
JOIN dbo.tbLocalizedPropertyForRevision tbrp ON tbrp.RevisionID = r.RevisionID
JOIN dbo.tbLocalizedProperty tlp ON tlp.LocalizedPropertyID = tbrp.LocalizedPropertyID
WHERE p.UpdateType = 'Detectoid'
AND tbrp.LanguageID = p.DefaultPropertiesLanguageID
AND tlp.Title LIKE 'Product Detectoid for ProductName TestProduct%';
OPEN detectoid_cur;
FETCH NEXT FROM detectoid_cur INTO @updateID;
WHILE @@FETCH_STATUS = 0
BEGIN
BEGIN TRY
EXEC @retcode = dbo.spDeleteUpdateByUpdateID @updateID;
IF @retcode = 0 SET @deleted += 1; ELSE SET @skipped += 1;
END TRY
BEGIN CATCH
-- Most common: "still referenced by other update(s)" - safe to skip and continue
SET @skipped += 1;
PRINT CONCAT('Skipped ', CONVERT(varchar(40), @updateID), ' : ', ERROR_MESSAGE());
END CATCH
FETCH NEXT FROM detectoid_cur INTO @updateID;
END
CLOSE detectoid_cur;
DEALLOCATE detectoid_cur;
Note
It might be necessary to limit the maximum concurrent connections setting for the WSUS Administration site in IIS and slowly raise them to allow clients to complete the scan. The target should be to keep IIS around 80% CPU usage. For more information, see Limits for a Web Site.
Step 3: Update MaxXMLPerRequest
Once WSUS is stabilized and clients have scanned successfully, the MaxXMLPerRequest value should be updated to its default setting by running the following query:
UPDATE tbConfigurationC SET MaxXMLPerRequest = 5242880
After running the cleanup
Client recovery is automatic The first scan on each client after the cleanup performs a one-time catch-up and may take longer than usual. Later scans return to normal timing. No action is required on individual clients.
Confirm the fix on a client In the client’s WindowsUpdate.log, the scan entry that reads
evaluated appl. rules of X out of N deployed entitiesshould show a much lower N after the next scan. Searching WindowsUpdate.log for the detectoid IDs will not return matches, so use the deployed-entities count to confirm relief. To create the WindowsUpdate.log file, see Generating WindowsUpdate.log.Maintain the server A large deletion fragments the SUSDB indexes. After the cleanup, reindex SUSDB, run the WSUS Server Cleanup Wizard, and then run IISReset or recycle the WsusPool application pool to clear cached catalog state.
Disk space The client-side DataStore.edb does not shrink automatically after the detectoids are removed. This is expected and does not affect scan performance.
References
The complete guide to WSUS and Configuration Manager SUP maintenance.