Skip to content

develop is green again: a held driver and a verified pin - #752

Merged
sridharkalaibala merged 1 commit into
developfrom
fix/develop-is-green-again
Sep 15, 2026
Merged

sridharkalaibala merged 1 commit into
developfrom
fix/develop-is-green-again

Conversation

@sridharkalaibala

Copy link
Copy Markdown
Contributor

develop has been red since #749 merged, and every branch cut from it inherits
the failure
- which is why #745 came back red after its conflict was resolved.

Neither of these is a code fix. Both are decisions the automation is not allowed
to make on its own, and in one case the guard that stopped it was working
exactly as intended.

1. Mongoose 9.10 cannot talk to the test database

#749 moved mongoose 9.9.59.10.0 inside a patch-and-minor group. Mongoose
9.10 moves its bundled mongodb driver from ~7.5 to ~7.6, and the handshake
7.6 sends is rejected outright by the mongod mongodb-memory-server runs:

MongooseServerSelectionError: Missing required sub-document 'driver'
in the client metadata document
    at Object.<anonymous> (tests/.../the-bill-flow-end-to-end.test.js:39:3)

Line 39 is await mongoose.connect(...). It is not a test that broke, it is the
connection
- every suite that opens a database died in beforeAll, which is why
six unrelated files failed at once and each took ~30s to give up.

Reproduced locally rather than guessed: installed 9.10.1 against mongod 8.2.6,
got the identical error, went back to 9.9.5, clean.

Held at ~9.9.5, which still accepts patches. Dependabot is told the range and
the reason
, so it does not reopen the same pull request on Monday, and the note
says how to lift it: run the api suite against 9.10 or later, and if it connects,
widen back to a caret.

2. The codeql pin was never approved, and that guard worked

#750 bumped github/codeql-action/upload-sarif to v4.38.0. The workflow carries
the new SHA; tests/scorecard-workflow.test.js carries the SHAs a person has
actually verified
, and nobody had verified this one.

That is the supply-chain guard doing its job. A bump arrives as a SHA plus a
trailing comment, and the comment is written by whoever opened the pull request,
not by the registry - so the test refuses to take the comment's word for it.

Verified upstream before approving, the way the existing comment instructs:

gh api repos/github/codeql-action/git/ref/tags/v4.38.0
  -> annotated tag 4bd7200e1f146b1c937cae12d258b50f41a53cf8
gh api repos/github/codeql-action/git/tags/4bd7200e...
  -> commit      b96794f015dfd88f77b49b1c93e0fa7110f94c63

which is exactly the commit the workflow now pins, so the bump is genuine and is
approved here. The new comment records the commands and the trap worth
remembering: a signed release's refs/tags/vX points at a tag object, so
reading .object.sha off the ref approves the tag rather than the commit it
names.

Tests

API 10625 pass / 0 fail. Desktop 2427 pass / 0 fail.

Merge this first

It unblocks everything else. Once develop is green:

#751 (this)  →  #744  →  #746  →  #747  →  #745

#745 and #747 both append to all seventeen language packs, so whichever goes
second needs a resolve; #744 and #746 touch no packs.

Two dependabot merges took develop red, and every branch cut from it inherited
the failure. Nothing here is a code fix; both are decisions the automation is
not allowed to make on its own.

MONGOOSE 9.10 CANNOT TALK TO THE TEST DATABASE

#749 moved mongoose from 9.9.5 to 9.10.0 as part of a patch-and-minor group.
Mongoose 9.10 moves its bundled mongodb driver from ~7.5 to ~7.6, and the
handshake 7.6 sends is rejected outright by the mongod that
mongodb-memory-server runs:

  MongooseServerSelectionError: Missing required sub-document 'driver' in the
  client metadata document

So it is not a test that broke, it is the connection. Every suite that opens a
database failed at beforeAll. Reproduced locally by installing 9.10.1 against
mongod 8.2.6 and watching the same error, then cleared by going back to 9.9.5.

Held at ~9.9.5, which still takes patches, and dependabot is told the version
range and the reason rather than being left to reopen the same pull request on
Monday. The note says how to lift it: run the api suite against 9.10 or later,
and if it connects, widen it back.

THE CODEQL PIN WAS NOT APPROVED, AND THAT GUARD WORKED

#750 bumped github/codeql-action/upload-sarif to v4.38.0. The workflow carries
the new SHA; tests/scorecard-workflow.test.js carries the list of SHAs a person
has actually checked, and nobody had checked this one, so it failed. That is
the guard doing its job, not a stale test.

Verified upstream before approving, the way the existing comment instructs:

  gh api repos/github/codeql-action/git/ref/tags/v4.38.0
    -> annotated tag 4bd7200e1f146b1c937cae12d258b50f41a53cf8
  gh api repos/github/codeql-action/git/tags/4bd7200e...
    -> commit b96794f015dfd88f77b49b1c93e0fa7110f94c63

which is the commit the workflow now pins. The comment records the commands and
the trap: a signed release's refs/tags/vX points at a TAG OBJECT, so reading
.object.sha off the ref approves the tag rather than the commit it names.

API 10625 pass, desktop 2427 pass, both zero failures.
@sridharkalaibala
sridharkalaibala merged commit 84445cb into develop Sep 15, 2026
9 checks passed
@github-actions github-actions Bot added the ready for QA Merged to develop and live on develop.posnic.io - anyone can test it label Sep 15, 2026
@github-actions

Copy link
Copy Markdown
Contributor

Merged to develop. Anyone can test this - you do not need write access.

Try it at https://develop.posnic.io, or run it yourself:

git fetch origin develop && git checkout develop
npm install && npm --prefix api install
npm run dev   # then http://localhost:3000

When you have tested it, say what you did and what happened, and set
QA passed or QA failed. If you cannot set labels, just comment -
a maintainer will.

Reporting that something is broken is as useful as fixing it. It is
better found here than by a shopkeeper.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ready for QA Merged to develop and live on develop.posnic.io - anyone can test it

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant