Skip to content

Dev zone (Cherryvale, KS) not provisioning — VMs stuck in 'pending' indefinitely #28

Description

@Amperstrand

Summary

New VM orders in the Dev VPS zone (Cherryvale, Kansas) are accepted but never leave provisioning_state=pending. They do not transition to provisioning, never reach ready, and never receive an IP. The NVMe zone (Katy, Texas) is healthy as a control, so this looks specific to the Cherryvale site / Dev VPS scheduler, not the API or account.

Reproduction

Two separate runs today (2026-07-31), ordering the smallest Dev VPS:

pkg 80 (Dev VPS - Starter), pricing_id 241, order_form_id 11, $0.24/day

Via SHCClient.submit_order(...) — order succeeds in ~6s, returns a service_id, but get_vm(sid).provisioning_state stays pending / service_status=pending forever.

Evidence

Run sid Zone pkg Ordered Final state after wait Wait Outcome
1 1911 Cherryvale, KS 80 21:31:20 pending/pending 300s timeout → cancel
2 1912 Cherryvale, KS 80 21:38:23 pending/pending 600s+ timeout → cancel
2 1913 Katy, TX (control) 23 21:38:26 ready/active, IP 23.182.128.217 ~100s ✅ working → cancel

Both Dev-zone orders were cancelled immediately on timeout (clean, prorated). NVMe control VM provisioned normally and was cancelled once ready.

Expected vs actual

  • Expected: pendingprovisioningready within the documented ~100s, like the Katy TX control.
  • Actual: Dev-zone orders stall at pending for 10+ minutes with no state change and no IP assignment. No error is surfaced through the API.

Impact

  • Blocks the ansible-ease.yml weekly E2E (runs against the SHC Dev VPS).
  • Blocks ephemeral GitHub-runner provisioning on Dev VPS plans (docs/github-ephemeral-runners.md, docs/firecracker-pool-mode.md — both rely on pkg 80–84).
  • The vm session fixture in tests/conftest.py (pkg 81) will pytest.skip after 300s, masking real regressions behind a skip.

Ask

  1. Is this a known Cherryvale site outage / host-scheduler issue on the SHC side?
  2. Is there a workaround? e.g. a different Dev package, a node pin, a status channel to check before ordering, or an ETA if the site is being drained.
  3. Should the toolkit add a Dev-zone health probe (e.g. order + ready-within-120s smoke check) so CI fails loudly instead of silently skipping?

Environment

  • shc-toolkit v2.4.15.1, REST transport (SHC_TRANSPORT=rest)
  • API v2.4.15 reachable; account balance OK; orders accepted and cancellable cleanly
  • Reproduced from main (commit fdf79f3)

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions