fix(GHO-131): pin vultr provider to v2.29.0#370
Conversation
v2.31.0 (released 2026-04-21) crashes tofu plan with "Plugin did not respond" on ReadResource for vultr_block_storage. See run 24750775114. Pin to v2.30.1 (last released 2026-03-04, 7 weeks stable) until upstream ships a fix. - Bump required_providers from "= 2.28.1" to "= 2.30.1" in envs/dev and the three vultr modules (block_storage, firewall, instance) - Regenerate .terraform.lock.hcl with 2.30.1 hashes - Add renovate.json packageRule capping vultr/vultr at <=2.30.1 so Renovate stops re-proposing the broken bump Intermediate versions v2.29.0/v2.29.1/v2.30.0 were skipped; we can take them in a follow-up bump once 2.30.1 is confirmed clean.
v2.30.1 also crashes on vultr_block_storage ReadResource — same Plugin did not respond panic as v2.31.0 on plan refresh. Step back to v2.30.0 (2026-02-17, stable for 2+ weeks before 2.30.1 broke it). Renovate cap lowered to <=2.30.0 accordingly.
|
Stepping pin back to v2.30.0 — v2.30.1 also crashes on Pushed commit Separate concern surfaced in the latest plan output: |
v2.30.0 also crashes on vultr_block_storage ReadResource. Trying v2.29.0 next; fall back to v2.28.1 (last known good) if this also fails.
|
Plan green on v2.29.0 — no Regression boundary: Still open — firewall rule replacements. Plan shows all Options:
Recommend option 1 unless you want zero-downtime on origin. Let me know. |
Summary
Vultr provider
v2.31.0(released 2026-04-21 17:57 UTC) crashestofu planwithPlugin did not respondonReadResourceforvultr_block_storage.this— see failed run 24750775114. The same regression also reproduces onv2.30.1andv2.30.0. Pin tov2.29.0— the highest clean version — until upstream ships a fix. Closes Renovate PR #368.Linear: GHO-131.
Changes
vultr/vultrrequired_providersconstraint from= 2.28.1→= 2.29.0in:opentofu/envs/dev/main.tofuopentofu/modules/vultr/block_storage/main.tofuopentofu/modules/vultr/firewall/main.tofuopentofu/modules/vultr/instance/main.tofuopentofu/envs/dev/.terraform.lock.hclwith 2.29.0 hashesrenovate.jsonpackageRulecappingvultr/vultrat<=2.29.0so Renovate stops re-proposing broken post-2.29.0 bumpsRegression boundary
ReadResourcepanic onvultr_block_storageContext
The
null_resourceattach workaround forvultr_block_storagewas removed in GHO-109 / PR #318 when the provider was bumped tov2.28.1after upstream bug #660 was fixed. That workaround does not come back with this change — the current module continues to rely on nativeattached_to_instancesupport, which works onv2.29.0. The post-v2.29.0 regression is onReadResource(refresh path), not on attach.Known side effect: firewall rule recreation
The plan shows all
vultr_firewall_ruleresources as-/+ destroy and then create replacement. The provider changed how thesourceattribute is persisted to state somewhere between v2.28.1 and v2.29.0 (state hassource="X", new provider returnssource=null, tofu plans replacement). The module already usessubnet/subnet_size, so config is correct — this is a one-time state-migration artifact.Accepted for this PR. Apply will briefly gap the origin firewall (~seconds); Cloudflare in front absorbs most of that window. Clean state afterward.
Test plan
pr-tofu-plan-developCI passes (noPlugin did not respondcrash)pr-tofu-fmt-checkCI passesdeploy-dev.yml; apply succeedsghost-dev-01