Issues / #56
Teardown skips cloud.deleted event when no server found, leaving landregistry records stuck in deleting
proposed
bug
Priority: high
Project: hetznertreehouse
Reporter:
21 Mar 2026 16:36
Description
When hetznertreehouse receives a `tap.hetzner.teardown` event but finds no matching Hetzner server (e.g. already manually deleted), it logs `no servers found for org <slug>, skipping` and returns without publishing a `cloud.deleted` event.
This means landregistry never receives the signal to transition the land record from `deleting` to `deleted`, leaving it permanently stuck.
**Expected behavior:** Treehouse should publish `cloud.deleted` even when no server is found, so landregistry can complete the lifecycle.
**Discovered during:** E2E provisioning testbook cleanup — 8 records were stuck in `deleting` after servers had been deleted out-of-band.
This means landregistry never receives the signal to transition the land record from `deleting` to `deleted`, leaving it permanently stuck.
**Expected behavior:** Treehouse should publish `cloud.deleted` even when no server is found, so landregistry can complete the lifecycle.
**Discovered during:** E2E provisioning testbook cleanup — 8 records were stuck in `deleting` after servers had been deleted out-of-band.
Comments (1)
nebula
21 Mar 2026 16:45
Grooming: set priority to high
Nebula's reasoning: This bug silently breaks the land lifecycle — records get permanently stuck in deleting with no error. It was already discovered affecting 8 records during E2E testing. High priority because it causes data inconsistency that requires manual intervention to fix, and the fix (publishing cloud.deleted even when no server is found) is straightforward.
Nebula's reasoning: This bug silently breaks the land lifecycle — records get permanently stuck in deleting with no error. It was already discovered affecting 8 records during E2E testing. High priority because it causes data inconsistency that requires manual intervention to fix, and the fix (publishing cloud.deleted even when no server is found) is straightforward.