ANTIGRAVITY LABJP
Articles/App Development
App Development/2026-08-25Advanced

How Silently Ignored Config Keys Slip Through CI, and Where to Block Them

A key you added to a config file can be discarded without a single warning. Measured behavior across tsc, ESLint, wrangler, npm and vitest, plus a probe that verifies a setting is actually in effect and a wrapper that turns warnings into build failures.

antigravity444ci4configvitest3cloudflare-workers9

Premium Article

A Cloudflare Workers deploy stopped one afternoon with "Missing entry-point to Worker script." Opening wrangler.toml showed main sitting right there. Correct spelling. Valid path. Still no deploy.

The problem was not how the key was written, but where. A [build] section had been added earlier in the file, and main came after it, which means TOML reads main as a member of the build table. Correct to a human eye, something else entirely to the parser.

The error message, meanwhile, politely suggested adding main to the file. Being told to add something that is already there is a special kind of detour.

As an indie developer, an afternoon spent that way stings. What stayed with me afterwards was not the fix, though. It was the realization that the same mismatch usually happens far more quietly.

Reproducing the failure where placement changes meaning

Here is the minimal version, confirmed against wrangler 4.125.0.

name = "probe-order"
compatibility_date = "2025-05-05"
 
[build]
command = "node scripts/stamp.mjs"
 
main = "index.js"
compatibility_flags = ["nodejs_compat"]

A dry run emits both of these at once:

▲ [WARNING] Processing wrangler.order.toml configuration:
    - Unexpected fields found in build field: "main","compatibility_flags"
✘ [ERROR] Missing entry-point to Worker script or to assets directory

The warning names the actual culprit. The red ERROR pulls your attention away from it, and the investigation starts at the entry point path instead. That is exactly where I started.

The fix is trivial: move top-level fields above [build]. What lingered was the broader observation that a config file can be read differently from how it was written, and nothing is obliged to tell you.

Bad config keys fall into three tiers

To check that observation, I introduced the same class of mistake into the tools I use most and recorded what each one did. Everything below ran on Linux with Node 22.23.2 on 2026-08-25.

ToolMistake introducedReactionExit code
TypeScript 5.9.3strictNullCheck (should be strictNullChecks)Stops with TS5025 and suggests the correct key2
TypeScript 5.9.3include placed inside compilerOptionsStops with TS50232
ESLint 9.39.5 (flat config)Two unknown keys addedAborts immediately with ConfigError2
Wrangler 4.125.0compatability_flags (misspelled)Prints a WARNING and continues0
npm 10.9.8depedencies (misspelled)Silent. Reports "up to date" and installs nothing0
Vitest 3.2.7Three invalid keys at onceSilent. Every test passes0

One transposed character, and the tools split cleanly into ones that stop you and ones that wave you through.

The npm case is the one that bothers me most. With dependencies misspelled as depedencies, npm install finished in 327ms, printed "up to date", returned exit code 0, and created no node_modules at all. A project with zero dependencies installed is recorded as a successful install.

Misspell scripts as scripst in the same file and the story changes: npm run build fails instantly with "Missing script: build". Keys that something later calls will speak up. Keys that merely declare things stay quiet.

Thank you for reading this far.

Continue Reading

What follows includes implementation code, benchmarks, and practical content we hope you'll find useful. This site runs without ads — server and development costs are supported entirely by members like you. If it's been helpful, we'd be truly grateful for your support.

WHAT YOU'LL LEARN
You will be able to verify that a config change an agent made is actually in effect, by observing behavior instead of re-reading the diff
You will be able to drop a few lines of gating into your own repository that stop a silently discarded config change before it reaches production
You will be able to tell which of your tools fail loudly, warn quietly, or say nothing at all, and narrow your probes down to the few places that need them
Secure payment via Stripe · Cancel anytime

Unlock This Article

Get full access to the rest of this article. Buy once, read anytime. This site is ad-free — your support goes directly toward keeping it running.

or
Unlock all articles with Membership →
Share

Thank You for Reading

Antigravity Lab is ad-free, supported entirely by members like you. We publish practical guides daily with implementation code, benchmarks, and production-ready patterns. If you've found it useful, we'd love to have you on board.

  • Copy-paste ready implementation code
  • New advanced guides published daily
  • $5/mo or $15 for lifetime access
View Membership →

Related Articles

App Dev2026-06-30
When Every Antigravity-Written Test Is Green but the Same Bug Comes Back — Field Notes on Measuring Hollow Assertions
Your AI-written tests all pass, coverage is high, yet the same defect returns to production. The cause is over-mocking and tautological assertions. These are field notes on using mutation testing as ground truth to measure what your tests actually protect, and to fix it operationally.
App Dev2026-04-28
Build a Complete SaaS in Antigravity — Stripe Billing, Auth, and Deployment Without Leaving Your IDE
Build an entire SaaS product within Antigravity IDE — from Supabase auth to Stripe billing to Cloudflare Workers deployment, without switching tools.
App Dev2026-04-27
Building Webhook Endpoints in Antigravity That Never Drop Events
A practical guide to designing, implementing, and testing webhook endpoints for Stripe and GitHub using Antigravity, focused on the three properties that prevent dropped events: signature verification, idempotency, and fast response.
📚RECOMMENDED BOOKS
Build a Large Language Model (From Scratch)
Sebastian Raschka
LLM Dev
Prompt Engineering for LLMs
Berryman & Ziegler
Prompting
AI Engineering
Chip Huyen
AI Eng
* Contains affiliate links
See all →