THE MOMENT I REALIZED OUR CMDB WAS A LIABILITY

The Moment I Realized Our CMDB Was a Liability

Salil Kulkarni is a senior IT executive with over 15 years of experience leading infrastructure and operations teams at enterprise organizations. He writes about IT governance, change management, and the operational realities of maintaining CMDB accuracy at scale.

A stale CMDB — one updated through change-ticket processes but never validated by continuous discovery — creates dangerous gaps between documented and actual infrastructure. CIOs approving changes based on unvalidated CMDB dependency counts are approving the wrong blast radius. In one production incident, 44 documented dependencies masked 62 actual ones. Eighteen undiscovered CIs triggered an unplanned outage, violated two SLA commitments, and cost $47,000 to remediate. The data was 11 months old.

I have described my CMDB to many audiences over the years, in board presentations and vendor conversations. In all of those descriptions, I used variations of the same phrase: “We have a CMDB. We keep it current.” I believed that. My infrastructure team maintained it. We had a process for updating it after changes. We had a field in our change ticket template that required engineers to confirm the CMDB had been updated before closing a ticket. What I am about to describe is a CIO’s production incident caused by stale CMDB data — and it is more common than most change advisory boards admit.

What I did not know, until a Saturday morning storage array replacement, was that “keeping it current” was not the same as it being accurate. A CMDB that is updated after documented changes still accumulates gaps at three key points: changes that happen outside formal documentation, new services deployed without CMDB entries, and decommissions not followed up in the system. Over 11 months in a segment of my infrastructure, that accumulation had grown to 18 missing CI records. Those 18 CIs were invisible to me when I approved the change.

Conceptual Diagram Showing A Storage Arr — Virima Blog Moment Realized Cmdb Was A Liability
Conceptual diagram showing a storage array CI record with 44 listed dependent services, alongside a discovery scan output …

The change that revealed the gap

It was a routine storage array replacement in a segment of our data center that had been flagged in a hardware lifecycle review. The array was 5.5 years old, past its recommended replacement window, and had experienced two minor fault events in the preceding quarter.

The change advisory board reviewed the request. The CMDB showed 44 systems with direct dependencies on the array. All 44 teams had been notified with the required 72-hour advance notice. The maintenance window was Saturday from 1 AM to 5 AM, a four-hour window that the infrastructure team had sized based on the 44-system dependency scope and the documented data migration requirements.

I reviewed the change brief on Friday afternoon. Everything looked appropriate: the blast radius matched what I would expect for a storage array in that segment, the team notifications were confirmed, the rollback plan was documented, and the maintenance window was correctly sized. I approved the change.

How does stale CMDB data make dangerous changes appear safe?
A CMDB that does not reflect the current infrastructure shows a smaller blast radius than actually exists. CIOs reviewing change requests see 44 dependent systems when there are 62, approve a four-hour maintenance window when eight hours are needed, and notify 44 teams when 62 need to know. The change looks well-managed because the data behind it looks complete. The data is the problem, not the process.

What happened at 2:14 AM

The maintenance window started at 1 AM. By 1:47 AM, the data migration from the old array to the new array was proceeding on schedule. At 2:14 AM, the infrastructure team began switching storage paths from the old array to the new array.

Within four minutes of the path switch, 18 systems that had not appeared in the change notification list began showing storage access errors. Application teams for those systems started receiving automated alerts. On-call engineers for services that were not supposed to be in maintenance started investigating what they thought was an unrelated incident.

By 2:30 AM, my infrastructure lead called me: “We have 18 systems that weren’t on the dependency list. They’re all hitting the old array paths. We think they’re microservices that got deployed in the last several months without a CMDB update.”

By 3:10 AM, the team had identified all 18 systems and restored their storage paths to the new array. The last of the 18 was restored at 5:32 AM, 92 minutes past the planned maintenance window end.

Three of the 18 systems were customer-facing services. What started as a routine maintenance window became an unplanned outage for those three services. Two had SLA commitments that required 72-hour advance notice for maintenance. Both SLA obligations were violated.

What is the business cost of approving a change based on an incomplete CMDB?
Beyond the direct remediation time, the costs include: SLA penalty exposure for any customer-facing services not in the change notification, regulatory risk if the unplanned outage affects compliance-relevant systems, and the post-incident investigation cost of tracing which deployments created the undocumented CIs. In practice, those secondary costs often exceed the direct incident response cost by a factor of two to three.

How often does your CMDB get validated against discovery? See how Virima’s automated discovery keeps CI records current →

The post-incident analysis

The formal investigation that followed would take four days and change how we approach every major change window. The central finding: the CMDB data for the affected storage segment had not been validated against discovery in 11 months. During that 11-month period, 18 new microservices had been deployed by product engineering teams that used the same storage array path without submitting CMDB update requests. None of those deployments had been declined or flagged. The process for CMDB updates was a voluntary checklist item, not an enforced gate.

The CMDB record for the storage array was not wrong because of negligence. It was wrong because the process for keeping it current relied on engineers remembering to update it, and 18 times in 11 months, that did not happen.

The distinction I walked away with: a CMDB updated only through change-ticket processes will always have gaps where changes happen outside the formal change process. In a modern development environment, new deployments that affect infrastructure happen constantly, many of them below the threshold that triggers a formal change request. Each of those deployments can add a new CI or a new dependency without creating a CMDB record. Discovery is the only mechanism that catches those gaps, because discovery does not depend on engineers remembering.

Agentless network-based scanning — which reaches every system on the network regardless of whether a change ticket was submitted — would have surfaced all 18 microservices sharing that storage array path before the change executed. The ViVID™ service maps showing those storage path relationships would have made the dependency gap visible before the change advisory board voted.

Timeline Diagram Showing An 11 Month Dri — Virima Blog Moment Realized Cmdb Was A Liability
Timeline diagram showing an 11-month drift period between a last successful discovery scan and a change approval event, wi…

What I changed

Three policy changes followed the post-incident review.

Mandatory pre-change discovery validation

For any change affecting a tier-1 or tier-2 infrastructure component, a fresh IT discovery scan of the affected CI segment must run within 7 days of the change advisory board vote. The discovery-sourced count is then documented alongside the CMDB count in the change request. If the two counts diverge by more than 10%, the change window must be resized to account for the actual dependency scope.

Maximum CI age for blast radius assessment

Any CI record used as the basis for blast radius assessment in a change request must have been discovery-validated within 30 days. CIs older than 30 days are flagged as “freshness-unverified” in the change ticket. The change sponsor must then either run a fresh scan or explicitly accept the staleness risk in writing.

We set a simple governance gate: if discovery finds the dependency scope more than 10% larger than the CMDB shows, the change window is resized before approval. That threshold is now a governance requirement, not a courtesy check.

30-day automated discovery refresh

A 30-day automated discovery scan cycle for all infrastructure segments — not a manual update cycle. Discovery identifies new CIs, flags changed dependencies, and marks stale records for review. Trusted Runtime Truth requires that the data reflect what the infrastructure is producing, not what engineers remembered to document. CMDB with Automated Discovery for Hybrid and Cloud Environments

Conceptual Workflow Diagram Showing A Pr — Virima Blog Moment Realized Cmdb Was A Liability
Conceptual workflow diagram showing a pre-change validation gate: a discovery scan runs within 7 days of the change reques…

The three policy changes required approximately six months to fully implement. In the 18 months since implementation, the change advisory board has caught four additional cases where the pre-change discovery scan found dependency counts materially different from the CMDB, one by 28%, one by 17%, and two by 10-12%. All four were caught before the change executed. None became incidents.

The storage array incident cost approximately $47,000 in remediation time, SLA exposure, and engineering overtime. The four subsequent catches, at a conservative estimate, avoided four incidents that would have cost an average of $35,000 each. The policy changes paid for themselves within a year.

What policy change has the highest impact on reducing CMDB-related change incidents?
Mandatory pre-change discovery validation: requiring that a fresh discovery scan of the affected infrastructure segment be run within 7 days of any major change window, with the discovery-sourced dependent system count documented in the change request alongside the CMDB count. This single gate catches the gap between what the CMDB shows and what is actually running before the change executes.

For CIOs who recognize this scenario — a CMDB maintained but not validated, a change process that depends on voluntary updates, a dependency count that looks complete but is not — the path starts with discovery, not a CMDB redesign project. See how Virima’s continuous discovery validates CMDB accuracy before change windows →

Frequently Asked Questions

How do CIOs distinguish between a CMDB that needs updating and one that is actively dangerous?
An incomplete CMDB has gaps: missing CIs, missing relationships. That is a data coverage problem. A dangerous CMDB has records that are present but wrong in a directional way: they show 44 systems when there are 62, or they show a CI as standalone when it is actually a root dependency for four services. The dangerous case is harder to detect because the records look populated. Discovery validation is the only reliable way to distinguish coverage gaps from directional inaccuracies.
Should a CIO trust a CMDB that has not been discovery-validated in the last 30 days?
For change approvals: no. For operational awareness: conditionally, with explicit acknowledgment that the data describes the infrastructure as of its last validation date. The practical test: would you approve a change window affecting a specific storage array based on a dependency count that was accurate 11 months ago? If the answer is no, then any CMDB data older than your acceptable staleness threshold should not be used for change blast radius assessment without a freshness qualifier.
What is the CIO’s responsibility in a change that causes an unplanned outage due to CMDB inaccuracy?
The CIO is accountable for the quality of the data infrastructure used to make change decisions, not just for the change process itself. If the change process was followed correctly but the data it relied on was wrong, the accountability question reaches the CIO, not as negligence, but as an infrastructure gap that the CIO is responsible for identifying and closing. Framing CMDB accuracy as an IT operations problem rather than a CIO accountability issue is the single most common reason CIOs are surprised by incidents like this one.
How does a CIO build the case for discovery-sourced CMDB investment after an incident like this one?
The incident itself is the case. The cost of the storage array incident ($47,000), the SLA exposure, and the post-incident investigation provide the denominator. The cost of the pre-change discovery policy that would have prevented it (a tool investment and a scan cycle that costs a fraction of the incident) provides the numerator. No CIO should need a second incident to justify discovery-sourced CMDB validation after the first one.
How does Virima’s automated discovery prevent CMDB staleness?
Virima runs agentless, agent-based, and API-based discovery on a continuous or scheduled cycle, identifying new CIs and changed dependencies without relying on engineers to submit update records. Pre-change validation scans run within 7 days of any major change window confirm blast radius accuracy before the change advisory board votes. The discovery-sourced count is documented alongside the CMDB count in the change request — so the data the board sees reflects what is actually running, not what was last documented.

Move faster. Act safely.

Get live, explainable runtime truth across your entire estate — without platform lock-in.

Similar Posts