Landed on main as 58be381 (rebased, CI green on the tip and on main). The open question (making per-account platform parents opt-in) is left for whoever next arms a DNS provider somewhere it matters.
Wildcard manager places hourly ACME orders for parents its DNS provider has no zone for Issue closed
On branch wildcard-zone-check
Fix on branch wildcard-zone-check (6e8de8c6, CI green), on behalf of James.
The problem
Once a box has a DNS-01 provider (CARLOS_DNSIMPLE_TOKEN, or CARLOS_DNS_PROVIDER=route53), the wildcard manager tries a certificate for every per-account platform parent (*.<sqid>.<apps-domain>), in addition to the static and delegated parents. parentsFor derives these from the route table, and nothing turns them off.
When the apps domain's zone is not in the provider's account, each attempt would:
- place an ACME order;
- fail at
presentwith "no zone found"; - deactivate the authorization;
- retry an hour later.
That repeats forever, for every account. It doesn't hurt the rate limits: the authorization is deactivated and never validated, and the wildcard flow uses its own ACME account. But it is one pointless CA round trip and one journal line per parent per hour.
carlos.exciting.io hits exactly this. exciting.io is on Linode DNS, and the provider was armed only to get a wildcard for a customer domain (letsjelly.dev, through a Route53 delegation zone). Any deployment whose platform zone sits somewhere other than its DNS-01 provider will hit it too.
The fix
- Check before ordering.
obtainasks the provider first, through an optionalzoneChecker. DNSimple uses its zone suffix walk and Route53 its hosted-zone lookup, which are the lookupspresentalready makes. - No zone means no order. A miss is wrapped as
errNoZone, andpassbacks that parent off for 12h instead of 1h. A missing zone is configuration rather than a blip, but it is still re-checked, so a zone added later is picked up without a restart.
Evidence
- New tests: - the CA receives no request for a parent with no zone; - a writable zone still orders; - the 12h back-off; - the DNSimple check writes nothing.
The behaviour tests were watched to fail with the check removed.
- Live on carlos.exciting.io since 2026-10-05 (build
2cf481bc).*.bab,*.bacand*.bad.carlos.exciting.ioare skipped with "no hosted zone", with no order placed.*.letsjelly.devwas obtained through the delegation zone 30s after--wildcardwas set.
Open question
Should per-account platform parents be opt-in when the provider was armed for something else? A switch would make the intent explicit. The zone check makes it harmless either way, so I didn't add one.