Summary
The heady-sync Cloudflare Worker has never been successfully deployed. The Deploy Workers workflow (run #1, March 26) failed for ALL workers with:
ERROR: In a non-interactive environment, it's necessary to set a CLOUDFLARE_API_TOKEN environment variable
Root Cause 1: Missing GitHub Secrets
The workflow requires these secrets set in repo Settings → Secrets and variables → Actions:
CLOUDFLARE_API_TOKEN — Cloudflare API token with Workers:Edit permission
CLOUDFLARE_ACCOUNT_ID — Cloudflare account ID
Neither secret is set. The deploy-all-workers.yml workflow correctly uses apiToken: ${{ secrets.CLOUDFLARE_API_TOKEN }} but the secrets are missing.
Root Cause 2: slack-app-manifest.yaml URL Mismatch
workers/heady-sync/slack-app-manifest.yaml uses heady-sync.workers.dev (the default workers.dev subdomain) but wrangler.toml configures production to route via sync.headysystems.com.
Fix: Change all 4 URLs from heady-sync.workers.dev to sync.headysystems.com:
- slash_commands url:
https://sync.headysystems.com/webhooks/slack/commands
- event_subscriptions request_url:
https://sync.headysystems.com/webhooks/slack/events
- interactivity request_url:
https://sync.headysystems.com/webhooks/slack/interactions
Action Required
- Set secrets in GitHub repo settings:
CLOUDFLARE_API_TOKEN and CLOUDFLARE_ACCOUNT_ID
- Apply the slack-app-manifest.yaml URL fix (already done in local workspace)
- Re-run Deploy Workers workflow after setting secrets
- Update the Slack app via api.slack.com with the corrected manifest URLs
Related
Heady-Testing CI also completely broken: HeadySystems/Heady-Testing#46
Summary
The
heady-syncCloudflare Worker has never been successfully deployed. The Deploy Workers workflow (run #1, March 26) failed for ALL workers with:Root Cause 1: Missing GitHub Secrets
The workflow requires these secrets set in repo Settings → Secrets and variables → Actions:
CLOUDFLARE_API_TOKEN— Cloudflare API token with Workers:Edit permissionCLOUDFLARE_ACCOUNT_ID— Cloudflare account IDNeither secret is set. The
deploy-all-workers.ymlworkflow correctly usesapiToken: ${{ secrets.CLOUDFLARE_API_TOKEN }}but the secrets are missing.Root Cause 2: slack-app-manifest.yaml URL Mismatch
workers/heady-sync/slack-app-manifest.yamlusesheady-sync.workers.dev(the default workers.dev subdomain) butwrangler.tomlconfigures production to route viasync.headysystems.com.Fix: Change all 4 URLs from
heady-sync.workers.devtosync.headysystems.com:https://sync.headysystems.com/webhooks/slack/commandshttps://sync.headysystems.com/webhooks/slack/eventshttps://sync.headysystems.com/webhooks/slack/interactionsAction Required
CLOUDFLARE_API_TOKENandCLOUDFLARE_ACCOUNT_IDRelated
Heady-Testing CI also completely broken: HeadySystems/Heady-Testing#46