Network Management
Web Console slows or becomes unavailable after applying a SAM or Observability license
This article explains why the SolarWinds Web Console can become slow or unavailable after a SAM or Observability license is applied in an environment with a large number of API pollers, and it outlines the database and scaling checks used to stabilize the platform.
First published date
Last published date
Overview
Environment
-
SolarWinds environment with many API pollers (around 700).
-
SAM or Observability license applied.
-
Upgrade path from 2025.2 through multiple versions to 2026.1.
Symptoms
-
The Web Console becomes slow, drops connections, or becomes unusable after the license is applied.
-
SWIS logs show repeated database execution timeouts and backlog around subscription updates.
-
APM BusinessLayer calls time out and retry repeatedly, which adds more load to the system.
-
Polling completion can drop significantly even when CPU and memory appear only moderately utilized.
Product section
Cause
The initial failure is caused by a licensing SWQL query that counts ValueToMonitor metrics for API pollers. The query may run for about 60 minutes, while SWIS waits only 60 seconds before timing out and retrying the request up to 15 times, thereby saturating database resources and contributing to Web Console failures.
Execution plan review shows an optimizer timeout and inefficient plans that rely on hash matches and clustered index scans. You may find missing fast paths on APIPoller tables as the database-side reason the query takes so long.
Resolution
Use the following workflow to diagnose and mitigate the issue.
1. Optimize the licensing query path
Create the non-clustered indexes identified during execution plan review.
-- Scripts are not supported under any SolarWinds support program or service.
-- Scripts are provided AS IS without warranty of any kind. SolarWinds further
-- disclaims all warranties including, without limitation, any implied warranties
-- of merchantability or of fitness for a particular purpose. The risk arising
-- out of the use or performance of the scripts and documentation stays with you.
-- In no event shall SolarWinds or anyone else involved in the creation,
-- production, or delivery of the scripts be liable for any damages whatsoever
-- (including, without limitation, damages for loss of business profits, business
-- interruption, loss of business information, or other pecuniary loss) arising
-- out of the use of or inability to use the scripts or documentation.
CREATE NONCLUSTERED INDEX IX_APIPoller_ApiPoller_RelatedEntity
ON dbo.APIPoller_ApiPoller (RelatedEntityType, RelatedEntityId)
INCLUDE (Id);
CREATE NONCLUSTERED INDEX IX_APIPoller_VTM_RequestDetails
ON dbo.APIPoller_ValueToMonitor (RequestDetailsId)
INCLUDE (Id, Status);
Update statistics and rebuild indexes on the following tables if the environment was upgraded across multiple versions and SQL is still choosing inefficient plans.
-
APIPoller_ValueToMonitor -
APIPoller_ApiPoller -
NodesData
2. Validate poller load and distribution
Check whether the active engine is overloaded and whether API pollers are concentrated on a single engine.
-- Scripts are not supported under any SolarWinds support program or service.
-- Scripts are provided AS IS without warranty of any kind. SolarWinds further
-- disclaims all warranties including, without limitation, any implied warranties
-- of merchantability or of fitness for a particular purpose. The risk arising
-- out of the use or performance of the scripts and documentation stays with you.
-- In no event shall SolarWinds or anyone else involved in the creation,
-- production, or delivery of the scripts be liable for any damages whatsoever
-- (including, without limitation, damages for loss of business profits, business
-- interruption, loss of business information, or other pecuniary loss) arising
-- out of the use of or inability to use the scripts or documentation.
SELECT EngineID, ServerName, Elements, Nodes, Interfaces, Volumes, PollingCompletion
FROM dbo.Engines;
SELECT n.EngineID, COUNT(ap.Id) as Total_APIPollers
FROM dbo.APIPoller_ApiPoller ap
INNER JOIN dbo.NodesData n
ON ap.RelatedEntityId = n.NodeID
AND ap.RelatedEntityType = 'Orion.Nodes'
GROUP BY n.EngineID;
If PollingCompletion is consistently below 98%, treat that as an indicator that the poller is falling behind.
3. Check for thread starvation on the application server
Use Performance Monitor on the Main Poller and add the following counters to confirm whether jobs are backing up and being dropped.
-
SolarWinds Job Execution Engine v2/v3 -> # Jobs Queued -
SolarWinds Job Execution Engine v2/v3 -> # Jobs Lost -
SolarWinds Job Execution Engine v2/v3 -> # Worker Processes -
SolarWinds Collector -> # Message Queue Length
You can also inspect RabbitMQ queue depth and Job Engine logs for signs of backlog, dropped jobs, timeouts, or max pool size conditions.
4. Apply scaling or mitigation changes
If database performance is corrected but the platform still slows down with the license applied, reduce the polling frequency and distribute API pollers across an Additional Polling Engine. Increasing the APM Business Layer concurrent request value may help mitigate the issue, but moving roughly half of the API pollers to an additional poller is recommended as a longer-term fix.