You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
[ci-maintainer] Mergeraptor app-token mint 404s org-wide since 2026-09-24 — Factory Health, contribute Renovate and all four printer-app update-base workflows #582
Every workflow that mints a Mergeraptor token inside a projectbluefin repository has been
failing with HTTP 404 from the installation lookup since 2026-09-24. This is one org-level
incident, not one bug per repo: the App's installation no longer resolves for the MERGERAPTOR_APP_ID / MERGERAPTOR_PRIVATE_KEY pair that org workflows authenticate with.
The 404 (not 401) means the JWT decoded — the App authenticated — but GitHub reports no
installation for the requested target. Both lookup paths fail:
Target
Endpoint
Result
repo-scoped (default inputs)
GET /repos/{owner}/{repo}/installation
404
owner-scoped (owner: input)
GET /users/projectbluefin/installation
404
Evidence
Failing in a non-fork repo, minting for another non-fork repo:
projectbluefin/actions — Factory Health, run 36261753935 (2026-09-26 18:13Z), also
36248... at 12:15Z and 06:18Z: url: 'https://api.github.com/repos/projectbluefin/common/installation', status: 404.
The job degrades instead of dying and warns Could not mint the projectbluefin/common issue token ...; factory alerts will be misrouted to projectbluefin/actions —
so factory alerts are currently landing in the wrong repo.
Failing in the four fork repos, update-base.yml → Mint Mergeraptor token:
Repo
Run
Date
Endpoint
ghostscript-printer-app
36227018420
2026-09-26 07:31Z
/users/projectbluefin/installation
gutenprint-printer-app
36229713313
2026-09-26 08:25Z
/users/projectbluefin/installation
hplip-printer-app
36227784318
2026-09-26 07:46Z
/users/projectbluefin/installation
ps-printer-app
36230724276
2026-09-26 08:45Z
/users/projectbluefin/installation
The four fork repos also failed on 2026-09-25 18:13Z on the repo-scoped endpoint, before
the owner: change landed.
The fork explanation in fsdk-containers#331 does not hold
fsdk-containers#331 was closed on the theory that the 404 is a fork-only quirk of GET /repos/{owner}/{repo}/installation, fixed by adding owner:. That is contradicted by
the evidence above:
actions and contribute are not forks and 404 on the same repo-scoped endpoint.
The owner: fix landed in all four printer repos (ps-printer-app#47 and siblings, commit 3168bb91) and they still fail — now at /users/projectbluefin/installation.
A 404 on both targets with a decodable JWT points at the credential/installation pair itself,
not at fork geometry. Candidates for an org admin to check, in order:
The mergeraptor App installation on projectbluefin (reported as installation 115719940,
"all repositories") — is it still present and still "all repositories"?
Whether MERGERAPTOR_APP_ID still names the App that MERGERAPTOR_PRIVATE_KEY belongs to.
A valid key plus another App's ID decodes into a JWT that 404s on every installation lookup,
which is exactly this signature. A rotated App ID or a key rotated on 2026-09-24 fits the
start date.
Whether the org secrets are scoped to "selected repositories" that omits these repos.
Impact
fsdk-containers base bumps are not proposed in any of the four printer repos; the junction
ref (elements/fsdk-containers.bst) goes stale silently — the workflow reports success
whenever there is nothing to bump, so only a bump-day run is red.
Factory Health alerts from actions are misrouted to projectbluefin/actions instead of projectbluefin/common.
Recommendation
Org admin, first: restore the installation/credential pair, then re-run Factory Health in actions and Update fsdk-containers base (workflow_dispatch) in one
printer repo. Both must mint a token before anything else here is worth doing.
Reopen fsdk-containers#331, or supersede it: it is closed against a root cause the
evidence does not support, and its landed fix is still failing.
After the mint works again, re-test the printer repos withoutowner:. If the
repo-scoped lookup succeeds there, revert the four update-base.yml files, because owner: alone mints an installation-wide token across every repo in the org, which is far
wider than a junction bump needs. In .github/workflows/update-base.yml of ghostscript-printer-app, gutenprint-printer-app, hplip-printer-app and ps-printer-app, the Mint Mergeraptor token step is byte-identical; replace lines 63-67:
app-id: ${{ secrets.MERGERAPTOR_APP_ID }}private-key: ${{ secrets.MERGERAPTOR_PRIVATE_KEY }}# A fork's per-repo installation lookup (GET /repos/{owner}/{repo}/installation) 404s;# owner: switches to the owner-level lookup, which resolves from a fork (fsdk-containers#331).owner: ${{ github.repository_owner }}
If the owner-level lookup turns out to be genuinely required, keep owner: but narrow the
token, which the landed fix omitted even though fsdk-containers#331 called for it:
Verify with gh workflow run update-base.yml --repo projectbluefin/<repo> --ref testing
and confirm the Mint Mergeraptor token step succeeds.
Docs:docs/skills/ci-tooling/SKILL.md in fsdk-containers (landed as chore(deps): update actions/setup-python action to v7 #333) now teaches
the fork theory as fact. It should be corrected once the real cause is known, or it will
route the next occurrence to the same dead end.
These changes live in .github/workflows/**, which this agent's App token cannot push
(the contributor tier carries no Workflows permission, so GitHub rejects the push
server-side). Applying step 3 needs a maintainer using their own credentials. Steps 1, 2 and 4
need a human regardless.
Filed by ci-maintainer agent (ACMM L4/L5 — hold-gated mode)
CI Issue
Every workflow that mints a Mergeraptor token inside a projectbluefin repository has been
failing with HTTP 404 from the installation lookup since 2026-09-24. This is one org-level
incident, not one bug per repo: the App's installation no longer resolves for the
MERGERAPTOR_APP_ID/MERGERAPTOR_PRIVATE_KEYpair that org workflows authenticate with.The 404 (not 401) means the JWT decoded — the App authenticated — but GitHub reports no
installation for the requested target. Both lookup paths fail:
GET /repos/{owner}/{repo}/installationowner:input)GET /users/projectbluefin/installationEvidence
Failing in a non-fork repo, minting for another non-fork repo:
projectbluefin/actions—Factory Health, run 36261753935 (2026-09-26 18:13Z), also36248... at 12:15Z and 06:18Z:
url: 'https://api.github.com/repos/projectbluefin/common/installation',status: 404.The job degrades instead of dying and warns
Could not mint the projectbluefin/common issue token ...; factory alerts will be misrouted to projectbluefin/actions—so factory alerts are currently landing in the wrong repo.
projectbluefin/contribute—Renovate, runs 36086603555 (2026-09-25 02:31Z) and35947770442 (2026-09-24 02:33Z), same 404 on the repo-scoped endpoint. Tracked in
[ci-maintainer] Renovate workflow fails at Get mergeraptor token (404) — self-hosted Renovate has not run since 2026-09-24 contribute#686.
contributeis not a fork.Failing in the four fork repos,
update-base.yml→Mint Mergeraptor token:/users/projectbluefin/installation/users/projectbluefin/installation/users/projectbluefin/installation/users/projectbluefin/installationThe four fork repos also failed on 2026-09-25 18:13Z on the repo-scoped endpoint, before
the
owner:change landed.The fork explanation in fsdk-containers#331 does not hold
fsdk-containers#331 was closed on the theory that the 404 is a fork-only quirk of
GET /repos/{owner}/{repo}/installation, fixed by addingowner:. That is contradicted bythe evidence above:
actionsandcontributeare not forks and 404 on the same repo-scoped endpoint.owner:fix landed in all four printer repos (ps-printer-app#47 and siblings, commit3168bb91) and they still fail — now at/users/projectbluefin/installation.mergeraptor[bot]can write to the fork repos: it opened ps-printer-app#48/chore(deps): update actions/checkout action to v4.3.1 #49/feat(caching): partition dnf-cache by flavor, add pre-commit cache, fix cache-hit telemetry #51/chore(deps): update nick-fields/retry action to v4 #57and hplip-printer-app#41/Dependency Dashboard #42 on 2026-09-25/26. Those come from the central Renovate runner,
i.e. a token minted elsewhere. So App access to the forks exists; only the in-repo mint fails.
A 404 on both targets with a decodable JWT points at the credential/installation pair itself,
not at fork geometry. Candidates for an org admin to check, in order:
mergeraptorApp installation onprojectbluefin(reported as installation115719940,"all repositories") — is it still present and still "all repositories"?
MERGERAPTOR_APP_IDstill names the App thatMERGERAPTOR_PRIVATE_KEYbelongs to.A valid key plus another App's ID decodes into a JWT that 404s on every installation lookup,
which is exactly this signature. A rotated App ID or a key rotated on 2026-09-24 fits the
start date.
Impact
fsdk-containersbase bumps are not proposed in any of the four printer repos; the junctionref (
elements/fsdk-containers.bst) goes stale silently — the workflow reportssuccesswhenever there is nothing to bump, so only a bump-day run is red.
contribute's self-hosted Renovate has not run since 2026-09-24 ([ci-maintainer] Renovate workflow fails at Get mergeraptor token (404) — self-hosted Renovate has not run since 2026-09-24 contribute#686).actionsare misrouted toprojectbluefin/actionsinstead ofprojectbluefin/common.Recommendation
Org admin, first: restore the installation/credential pair, then re-run
Factory HealthinactionsandUpdate fsdk-containers base(workflow_dispatch) in oneprinter repo. Both must mint a token before anything else here is worth doing.
Reopen fsdk-containers#331, or supersede it: it is closed against a root cause the
evidence does not support, and its landed fix is still failing.
After the mint works again, re-test the printer repos without
owner:. If therepo-scoped lookup succeeds there, revert the four
update-base.ymlfiles, becauseowner:alone mints an installation-wide token across every repo in the org, which is farwider than a junction bump needs. In
.github/workflows/update-base.ymlofghostscript-printer-app,gutenprint-printer-app,hplip-printer-appandps-printer-app, theMint Mergeraptor tokenstep is byte-identical; replace lines 63-67:with:
If the owner-level lookup turns out to be genuinely required, keep
owner:but narrow thetoken, which the landed fix omitted even though fsdk-containers#331 called for it:
Verify with
gh workflow run update-base.yml --repo projectbluefin/<repo> --ref testingand confirm the
Mint Mergeraptor tokenstep succeeds.Docs:
docs/skills/ci-tooling/SKILL.mdinfsdk-containers(landed as chore(deps): update actions/setup-python action to v7 #333) now teachesthe fork theory as fact. It should be corrected once the real cause is known, or it will
route the next occurrence to the same dead end.
These changes live in
.github/workflows/**, which this agent's App token cannot push(the
contributortier carries no Workflows permission, so GitHub rejects the pushserver-side). Applying step 3 needs a maintainer using their own credentials. Steps 1, 2 and 4
need a human regardless.
Filed by ci-maintainer agent (ACMM L4/L5 — hold-gated mode)
🐝 Hive Agent:
ci-maintainer| Instance:hosted-projectbluefin-knuckle-gjvq| SHA:unknown— hive: agent=ci-maintainer backend=copilot model=claude-opus-5 copilot=1.0.88