Network Management
Disk Volume Statistics Show 0 B in SolarWinds Due to Corrupted Collector SQLite Queue Files
Disk volume statistics (VolumeSize, VolumeSpaceUsed, VolumeSpaceAvailable) display 0 B in the Disk Volumes widget for one or more nodes, causing disk threshold alerts to stop firing. WMI polling is confirmed working. The failure is at the Collector storage layer — one or more SQLite queue files in C:\ProgramData\SolarWinds\Collector\Queues have become corrupted (SQLite Error 11: database disk image is malformed), preventing polled data from being written to the SolarWinds Platform database.
First published date
Last published date
Overview
Symptom
-
The Disk Volumes widget on one or more nodes shows 0 B for VolumeSize, VolumeSpaceUsed, and/or VolumeSpaceAvailable
-
Disk threshold alerts are not firing for affected nodes
-
WMI polling is confirmed working — wbemtest on the polling engine returns correct Size and FreeSpace values from Win32_LogicalDisk
-
The issue persists after: List Resources uncheck/re-check, Module Engine restart, full SolarWinds services restart, and Collector + Job Engine repair
-
The following error appears in Collector.Service.log:
FATAL SolarWinds.Collector.Queue.SqliteQueueController — Exception occured in queue [Core.Volume.Statistics.Wmi] initialization. Microsoft.Data.Sqlite.SqliteException (0x80004005): SQLite Error 11: 'database disk image is malformed'.
-
Followed by repeated errors:
ERROR SolarWinds.Collector.PollingController.JobSchedulerEventsService — Error processing job System.InvalidOperationException: Queue [Core.Volume.Statistics.Wmi] was not initialized!
-
In PerformanceCounters.csv (SWDiagnostics bundle), the following counter shows 0 while healthy volume queues show 16,384:
SolarWinds: Collector Queue | Bytes in Queue | core.volume.statistics.wmi = 0Product section
Cause
The SQLite queue file Core.Volume.Statistics.Wmi.db (located at C:\ProgramData\SolarWinds\Collector\Queues) has become corrupted. When the Collector starts, it attempts to initialize the queue and fails with SQLite Error 11. The queue never initializes — every poll result for that queue is dropped before it reaches the SolarWinds Platform database, causing the database columns to default to 0.
The Collector on Platform 2025.2.1 does not auto-recover from a malformed SQLite queue. It repeats FATAL on every startup indefinitely without attempting to quarantine or rebuild the malformed file. A self-healing fix was added in Platform 2026.1+.
Additional queues may also be corrupted simultaneously. The following queues have been observed corrupted in the same event:
-
Core.Volume.Statistics.Wmi
-
Core.CpuMemory.Wmi
-
SolarWinds.Interfaces.WMI
-
Core.Node.IPAddresses.WMI
-
Core.Node.ResponseTimeStatus.Icmp
When multiple queues are corrupted, CPU/Memory, interface, IP address, and response-time data may also show 0 or stale values on affected nodes.
Diagnosis
Before proceeding with the fix, confirm the root cause:
Step 1 — Check Collector.Service.log for the FATAL SQLite Error 11 entry:
-
Log path on the polling engine server: C:\ProgramData\SolarWinds\Logs\Orion\Collector.Service.log
-
Log path in SWDiagnostics bundle: LogFiles > Orion > Collector.Service.log
-
Search for: SQLite Error 11 or database disk image is malformed
Step 2 — Check all Collector queue Bytes in Queue performance counters:
-
In the SWDiagnostics bundle: DBInfo > PerformanceCounters.csv
-
Filter for: SolarWinds: Collector Queue | Bytes in Queue
-
Any queue showing 0 bytes while healthy queues show 16,384 is corrupted
-
Note all 0-byte queues — they must all be cleared as part of the fix
Step 3 — Confirm WMI is working (rules out polling connectivity as the cause):
-
On the polling engine server, open wbemtest
-
Connect to:
\root\cimv2 using the WMI credential assigned in SolarWinds for that node -
Run query: SELECT DeviceID, VolumeName, Size, FreeSpace FROM Win32_LogicalDisk WHERE DriveType = 3
-
If correct Size and FreeSpace values are returned — WMI is working and the Collector storage layer is the confirmed failure point
Resolution
No downtime is required for the web console. Polling will pause for approximately 1–2 minutes during the Collector service restart.
Step 1 — Identify all corrupted queues via PerformanceCounters.csv as described in Diagnosis Step 2. Note every queue reporting 0 Bytes in Queue.
Step 2 — Stop the Collector service on the affected polling engine. Confirm the process has fully exited before proceeding:
Stop-Service -Name "SolarWinds Orion Collector Service" -Force
Get-Service -Name "SolarWinds Orion Collector Service" | Select-Object Name, Status
Step 3 — Navigate to C:\ProgramData\SolarWinds\Collector\Queues and delete the corrupted .db and .db-journal files for every queue identified in Step 1. At minimum, delete:
-
Core.Volume.Statistics.Wmi.db
-
Core.Volume.Statistics.Wmi.db-journal
If additional 0-byte queues were identified, delete their corresponding .db and .db-journal files as well.
Step 4 — Start the Collector service:
Start-Service -Name "SolarWinds Orion Collector Service"
Step 5 — Verify the Collector started cleanly. Confirm no new SQLite Error 11 entries appear in Collector.Service.log after the restart timestamp.
Step 6 — Navigate to the affected node in the SolarWinds web console. Click Rediscover, wait 2 minutes, then click Poll Now.
Step 7 — Verify the Disk Volumes widget now displays correct VolumeSize and usage values for the previously affected drives. Run the following SQL query on the SolarWinds database to confirm values are populated:
-- 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 VolumeID, VolumeDescription, VolumeIndex,
VolumeSize, VolumeSpaceUsed, VolumeSpaceAvailable,
VolumeResponding, LastSync
FROM dbo.Volumes
WHERE NodeID = <AffectedNodeID>
AND VolumeDescription NOT IN ('Physical Memory', 'Virtual Memory')
ORDER BY VolumeID
Expected: VolumeSize is non-zero and LastSync is updated to the current date and time.