Summary
After repairing the missing XMR Vault fields from the failed app-promotion-deploy run, vault-agent-hyrule-cloud.service still reports a render-hook failure because PAYMENT_BTC_XPUB renders as <no value> in /opt/hyrule-cloud/.env.
Observed on api:
hyrule-cloud Vault render has unresolved key PAYMENT_BTC_XPUB
PAYMENT_BTC_XPUB=<no value>
The app service is currently active, but Vault Agent keeps retrying the template command because the render hook exits non-zero.
Impact
vault-agent-hyrule-cloud is noisy/unhealthy despite the app being up.
- Future cloud applies/secret rotations may fail or mask real render problems.
- BTC native payment support is either misconfigured or should be explicitly disabled/optional.
Proposed fix
Pick one intentional contract and implement it consistently:
- Populate
btc_xpub in kv/hyrule-cloud with a valid account-level BIP84 public key used by PAYMENT_BTC_XPUB; or
- If BTC payments are not production-ready, remove
PAYMENT_BTC_XPUB from hyrule_cloud_required_env_keys and make the app/template explicitly support BTC-disabled mode without <no value>.
Acceptance criteria
/opt/hyrule-cloud/.env contains no <no value> entries for required keys.
vault-agent-hyrule-cloud.service has no render-hook error for PAYMENT_BTC_XPUB after restart/rerender.
ansible-playbook playbooks/cloud.yml --tags apply --limit api -e hyrule_cloud_apply=true completes.
Summary
After repairing the missing XMR Vault fields from the failed
app-promotion-deployrun,vault-agent-hyrule-cloud.servicestill reports a render-hook failure becausePAYMENT_BTC_XPUBrenders as<no value>in/opt/hyrule-cloud/.env.Observed on
api:The app service is currently active, but Vault Agent keeps retrying the template command because the render hook exits non-zero.
Impact
vault-agent-hyrule-cloudis noisy/unhealthy despite the app being up.Proposed fix
Pick one intentional contract and implement it consistently:
btc_xpubinkv/hyrule-cloudwith a valid account-level BIP84 public key used byPAYMENT_BTC_XPUB; orPAYMENT_BTC_XPUBfromhyrule_cloud_required_env_keysand make the app/template explicitly support BTC-disabled mode without<no value>.Acceptance criteria
/opt/hyrule-cloud/.envcontains no<no value>entries for required keys.vault-agent-hyrule-cloud.servicehas no render-hook error forPAYMENT_BTC_XPUBafter restart/rerender.ansible-playbook playbooks/cloud.yml --tags apply --limit api -e hyrule_cloud_apply=truecompletes.