← BlogData Contracts (Spec & Schema)· 2/4

I Created the Environment But It Doesn't Appear in Runs — The Single Source of Truth Trap

You built a new environment and registered it in the catalog, but it doesn't show up in run selection. The cause: registering only in the 'display catalog' table while omitting the 'runtime registry' the orchestrator actually reads — a classic SSOT failure.

~4 min
data-contractregistrysource-of-truthenvironmentgovernance

I Created the Environment But It Doesn't Appear in Runs

You carefully built a new simulation environment and registered it in the catalog. Then you try to start a run — and that environment isn't in the list. It clearly exists, but the system doesn't know about it. What went wrong?

Multiple "Truths" — Which One Is Real?

The common cause: data is stored in several places, but only one of them is what the run actually reads.

Rendering diagram…
  • Catalog table — The human-visible list. If it's here, it shows up in the UI.
  • Run execution registry — What the orchestrator actually reads to dispatch a run. If it's missing here, runs can't use it.

Both must be populated. Registering only in the catalog produces a ghost environment — visible but unusable.

💡 "Where the run execution path reads" is the only truth — When data is spread across multiple tables, the one that runs actually query is the single source of truth (SSOT). Before adding any new asset, ask: "Which table does a run look at?" Filling only the display table is half the work.

A More Subtle Trap — Gates That Check the Flag, Not the Contents

There's a related and more dangerous bug: a governance gate that passes based on metadata alone.

⚠️ "Registered" flag ≠ "actually populated" — One validation gate was checking only a metadata flag that marked an environment as "ready," and issuing a PASS. The actual environment files were 1.9 KB floor-only placeholders — 132 out of 187 environments were in this state. Because the gate read the flag instead of the file contents, false PASSes propagated silently. This was the root cause behind "NorthernIsle environment not visible."

Validation gates must check "does it actually exist (file content)" not "is it marked as existing (metadata)." This is the same family as strict_pass and production-path validation — trusting declarations instead of measurements lets false signals accumulate.

Lessons

  1. One source of truth — The single table a run reads is the real one. Don't conflate it with display-only copies.
  2. Gates inspect contents — Check actual files and data, not flags.
  3. "Exists" and "usable" are different — What is visible in the UI and what a run can use are not the same thing.

In a nutshell

📌 If a new environment doesn't appear in runs, the most likely cause is registering in the catalog (display) but omitting it from the run execution registry (what the orchestrator reads). The table a run reads is the single source of truth (SSOT). The more dangerous variant is a gate that checks only a metadata flag and passes an empty placeholder — gates must inspect actual contents, not declarations.

See standard test results with videos and verdict evidence on the imSim Portal.

View public results →