Tag push to Forgejo rewound main and deployed an old release (gmackie/forge, 2026-10-05) #636
Open
opened 2026-10-05 21:40:32 +00:00 by gmackie
·
1 comment
No Branch/Tag specified
main
fix-worker-deploy-launchers
fix-automerge-checks
chore/agent-release-0.1.73
fix/generated-wrangler-route-isolation
fix/outbox-redirect-manual
feat/kanbanger-notifications
feat/node-access-production
feat/changeset-lookup
fix/trace-presence-countif
chore/agent-0.1.72
fix/dev-node-ci
fix/canary-bulk-secrets
chore/agent-0.1.71
fix/heartbeat-maintenance
fix/agent-poll-timeout
fix/review-defects
tf-validate-forgegraf
feat/notify-endpoint
fix/tunnel-provisioner-decrypt
review/trueflight-workflows
chore/agent-0.1.70
fix/journal-keep-tail
chore/agent-0.1.69
fix/workspace-deps-build-if-present
feat/google-services-file
feat/contract-diff-pr
feat/deploy-phase-slow-alert
feat/forge-schedules
ci/forge-artifact-token
feat/forge-slo-ingest
feat/slo-span-template-join
feat/contract-from-routes
feat/fleet-delivery-rollup
fix/mobile-push-permission-once
feat/forge-onboarding
feat/mobile-delivery
feat/operation-slo
feat/deployment-phases
feat/delivery-monitoring
feat/delivery-run-web
fix/provision-fg-ci-token
fix/snapshot-local-retention
fix/auth-backend-unavailable
registry-rename
access-apps
observability-rollout-evidence
fix-beta-hyperdrive
fix-github-workflow-lifecycle
fix-ci-gate-all-pipelines
agent-0.1.68
fix-explicit-deploy-revision
agent-telemetry-candidate
otel-operation-context
otel-agent-jsonc-release
otel-agent-jsonc
otel-production-rollout
effect4-migration
fix/trace-presence-consumer-auth-20260916
feat/trace-availability-20260916
docs/fg-pr-create-jj-branch
feat/deep-task-traces-20260915
infra/signoz-foundry-upgrade
release/agent-0.1.66
feat/deployed-binding-drift
feat/contract-cli
feat/contract-operations-tab
ci/web-build-job
fix/deploy-after-contract-package
fix/nix-gcroot-live-services
fix/corepack-deploy-prompt
feat/alchemy-state-store
docs/fleet-sweep-scope-correction
feat/contract-ingest
feat/kvwn-telemetry-endpoints
feat/contract-package
perf/worker-smart-placement
perf/hyperdrive-prepared-statements
perf/worker-request-db-pool
perf/dashboard-query-overlap
perf/homepage-worker-memory
fix/dashboard-initial-data
fix/dashboard-app-load-recovery
feat/ci-runner-cockpit
chore/release-cli-0.3.8
fix/audit-secret-sync-cache
fix/system-audit-20260906
feat/ci-row-app-and-pr-first
fix/runner-label-parsing
fix/ci-recovery-lane-and-queue-visibility
fix/mobile-face-id-purpose
fix/ci-gate-asks-the-remote
feat/mobile-pr-delivery
fix/onebox-secret-parity
docs/app-checkout-guidance
docs/field-report-veritas-deploy
feat/apple-sign-in
fix/harden-worker-secret-sync
diagnose/control-plane-router-bindings
fix/control-plane-settings-form
fix/control-plane-secret-inheritance
fix/control-plane-safe-diagnostics
fix/control-plane-complete-version
fix/control-plane-recovery-lane
fix/control-plane-atomic-bootstrap
fix/control-plane-promotion-payload
fix/control-plane-version-envelope
fix/control-plane-secret-version-promotion
fix/control-plane-auth-bootstrap-order
fix/control-plane-token-bootstrap
fix/deploy-capacity-protocol
fix/default-branch-no-literal
feat/desktop-release-lane
feat/workspace-registry-token
feat/deploy-registry-auth
release/agent-0.1.63
feat/deploy-registry-credential
fix/agent-deploy-registry-auth
fix/nix-npmrc-userconfig
fix/nix-registry-npm-auth
fix/no-dead-preview-routes
chore/anti-slop-0.3.0
fix/runreport-0-1-2
fix/transpile-runreport
perf/settled-alerts-index-lookup
fix/npmrc-home-on-runners
chore/relock-runreport-0-1-1
fix/registry-npmrc-home
fix/app-delete-all-33-fks
fix/traffic-lifecycle-recovery
fix/app-delete-complete-graph
feat/cf-origin-rules
feat/deploy-failure-cause
fix/app-delete-cascade
fix/reconcile-window-rotation
chore/agent-0.1.62
chore/anti-slop-0.2.0
fix/release-agent-hermetic-go
fix/route-entries-array-of-tables
chore/agent-0.1.61
feat/strip-managed-routes
fix/apex-route-and-reconcile-claim
feat/token-default-expiry
fix/reconcile-stale-split
feat/nightly-e2e-gate
feat/cli-token-mint
docs/workspace-build-fleet-plan
fix/route-strip-prefix
docs/route-update-dns-only-not-propagated
fix/deploy-poll-machine-scope
feat/onebox-hostname-reconcile
chore/release-cli-0.3.5
fix/secrets-superjson
chore/agent-0.1.57
feat/manifest-auto-enroll
feat/preview-verification
release/agent-0.1.56-main
feat/check-events-v2
fix/preview-destroy-fk
fix/preview-destroy-fk-2
fix/preview-hook-selfheal
docs/ci-field-reports-20260824
chore/agent-0.1.55
fix/preview-immutable-source
feat/pr-preview-environments
docs/pr-preview-plan
feat/pipeline-graph-services
fix/edge-scope-routes-per-node
fix/workers-domain-rebind
fix/onebox-enable
chore/agent-0.1.54
fix/nixci-experimental-features
feat/release-verification
feat/one-box-traffic
feat/worker-runtime-budgets
feat/mise-toolchains
feat/one-box-traffic-phase1
feat/one-box-traffic-phase2
feat/one-box-traffic-phase3
feat/one-box-traffic-phase4
feat/one-box-traffic-phase5
feat/one-box-traffic-phase6
feat/one-box-traffic-phase7b
fix/opennext-pnpm-pin
fix/ci-poll-delivery
ops/beta-schema-bootstrap
fix/migrate-data-snapshot-and-load-timeout
fix/access-runner-provision-timeout
feat/beta-access-ci-runners
fix/deploy-pnpm-pin-chain
chore/agent-0-1-51
fix/ci-expose-runner
fix/ci-sandbox-pinned-toolchain
fix/ci-runner-attribution
fix/hetzner-resolve-diagnostics
fix/ci-oxlint-diagnostics
fix/node-hard-reboot
fix/ci-turbo-log-parsing
feat/ci-incident-readout
fix/migrate-data-numeric-real
fix/agent-darwin-detection
docs/r2-lifecycle-request
fix/codemod-timestamp-ms
feat/migrate-data-connstr
fix/creator-oidc-trusted-client
twulmuksvyqqqvtpprmxxozvnoormxzt
oxwnmtzsmnutroqoqkrwpwvrrzuksrxm
fg-forgejo-rotate
bob/gma-404
fix/host-sandbox-input-priority
fix/archive-deployment-targets
feat/creator-oidc-client-2
feat/creator-oidc-client
ops/rotate-hub-secret-20260812
feat/pg-to-d1-codemod
fix/fg-read-token-enforcement
ops/forgejo-token-expired
feat/agent-cf-worker-telemetry
docs/agent-repo-create-scopes
fix/public-overlay-partial-updates
feat/publication-desk-controls
fix/stack-sync-default-branch
docs/bob-forgejo-token-revocation-ops-note
feat/ci-failures
fix/sso-login-graceful-error
opskknztvsspuypuyststwxpwsxsotsn
feat/byo-sso
vxsnywpvyzwsuwlnmopqqywtoytvowuo
fix/ci-hostnode-precedence
ruvpwzskkqzmnwusszlonpqvtmzwwuoz
fix/mobile-fresh-install-typecheck
ztvvwwqyuxvnptyoluylkspkpovuuwup
feat/entra-id-login
wunmlolywuswnvzlozkzmysywoywynrp
wip/mobile-auth-prebuild
bob/GMA-47/gtm-forgegraph-success-metrics-north-star-and-meas
bob/GMA-48/gtm-forgegraph-market-positioning-indie-devops-sel
bob/GMA-52/gtm-forgegraph-open-source-community-contribution-
bob/GMA-53/gtm-forgegraph-competitive-landscape-differentiati
feat/jj-ryu-bridge-rebased
fix/selfupdate-tmpfile-leak
fix/bwrap-datadir-ownership
fix/selfupdate-swap-live-binary
chore/android-variant-icons
docs/preflight-cli-guide
fix/eas-preview-app-variant-env
fix/scaffold-pnpm-node-version
fix/agent-integrations-auth
feat/app-glance
fix/agent-fetch-forgejo-token-for-clone
feat/cli-creds-deepen
feat/cli-creds-verify
feat/cli-creds
feat/databases-list-metrics
ci/job-timeouts
v0.1.74
v0.1.73
v0.1.70
v0.1.69
v0.1.67
v0.1.66
v0.1.65
v0.1.64
v0.1.63
v0.1.62
v0.1.61
v0.1.60
v0.1.59
v0.1.58
v0.1.57
v0.1.56
v0.1.55
v0.1.54
v0.1.49
v0.1.48
Labels
Clear labels
community
Community process, governance, contribution UX
docs
Documentation improvements
forgegraph:public-update
Publish approved PR lifecycle updates to the ForgeGraph public feed.
good first issue
Suitable for first-time contributors
help wanted
Extra attention is needed; maintainers welcome a PR
Milestone
Clear milestone
No items
No milestone
Projects
Clear projects
No items
No project
Assignees
Clear assignees
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".
No due date set.
Dependencies
No dependencies set.
Reference
gmackie/ForgeGraph#636
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
On 2026-10-05, pushing two existing release tags to
gmackie/forgeon Forgejo moved itsmainbranch backwards and redeployed production (forge-console→ forge.gmac.io) from an old release.Timeline (Forgejo activity feed, UTC)
main→0d1d851d(GitHub Actions mirror, non-force)v0.3.0(45cfc3df),v0.4.0(f586db59)commit_repo refs/heads/mainhead=45cfc3df;push_tag v0.3.0commit_repo refs/heads/mainhead=f586db59Then ForgeGraph:
0d1d851→ failed (git checkout 0d1d851…: reference is not a treeon node bf11e7b1).f586db5(= v0.4.0, 2026-09-24) → active. Production ran the September release.forge deploy create production --ref mainthen resolvedmaintof586db5;--ref <0d1d851 sha>failed with the same "not a tree".forge deploy rollback 4d6d9ddf…failed withcloudflare_worker_deploy_failed.The next non-force push to
main(f586db5..59bcc38, 21:35:58) provesmainreally pointed atf586db5. That push deployed normally and restored production.Expected
A tag push never moves a branch, and never deploys an older commit over the tracked branch.
Notes
agent/internal/cmdexec/git_bridge_sync.gopushesref:refwithout force, so it should not be able to rewindmain. Whatever wrote the tworefs/heads/mainevents at 21:16:43 and 21:17:04 did force it.cloudflare_worker_deploy_failed) may be a separate problem.Filed by Claude Code on behalf of @gmackie.
Narrowing, from reading the code (not yet the cause):
Ruled out as the rewind:
agent/internal/cmdexec/git_bridge_sync.gofetches+ref:refinto a scratch bare repo and pushes onlyref:refwithout force. A tag sync cannot moverefs/heads/main, and a backward move ofmainwould be rejected as non-fast-forward.apps/web/src/app/api/webhooks/github/route.ts(GitHub→Forgejo) dispatches that same job.gmackie/forgehas no Forgejo push mirrors. Its only webhook ishttps://forgegraf.com/api/fg/webhooks/forgejo(push, pull_request events).Separate bug found on the way:
apps/web/src/app/api/fg/webhooks/forgejo/handlers/push.ts:165computesbranch = payload.ref.replace(/^refs\/heads\//, ""), so a tag push is handled as a "branch" namedrefs/tags/v0.4.0: changeset upsert, and the default-branch/auto-deploy logic below it. That is plausibly how the tag pushes produced the 21:16:43 and 21:17:04 deploy activity. Tag pushes should probably skip changeset and auto-deploy handling entirely, apart from the GitHub bridge.Still unexplained: what wrote
refs/heads/mainat 21:16:43 (to45cfc3df) and 21:17:04 (tof586db59) with no acting user. Next places to look: the deploy agent's handling ofcheckout/update-reffor a tag ref on nodebf11e7b1, and anything that pushes a node's working clone back to Forgejo. Forgejo's server log for those two timestamps would name the pusher.