• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

supabase / cli / 32115999570
62%
develop: 62%

Build:
Build:
LAST BUILD BRANCH: gh-readonly-queue/develop/pr-6275-dc97151e51eca112de94c5b9bfe102ee798b7caf
DEFAULT BRANCH: develop
Ran 18 Aug 2026 08:23AM UTC
Jobs 1
Files 95
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

18 Aug 2026 08:21AM UTC coverage: 62.406%. Remained the same
32115999570

push

github

web-flow
fix(cli): classify batch connection failures as connect errors (#6234)

## TL;DR

Follow-ups to the two confirmed findings from the #6224 review
([comment](https://github.com/supabase/cli/pull/6224#issuecomment-5317097171)).

## 1. Batch connection failures were misclassified as exec failures

`execBatch` checks its own connection out of the pool, but mapped a
failed checkout through `legacyToExecError`. A plain `ECONNREFUSED`
during the redial surfaced as `LegacyDbExecError`: wrong telemetry
actionability, the connect-suggestion text dropped, and
`legacyFormatExecBatchError` rendering `At statement: 0` — blaming the
migration's first statement for the database being unreachable.

Acquiring the batch connection now fails with `LegacyDbConnectError`
(same pattern as the sibling `acquireRawClient`), and the
migration-apply path surfaces it verbatim instead of routing it through
the statement formatter. Mid-batch/Sync failures stay
`LegacyDbExecError` — only connection *acquisition* moves to connect
classification. Shadow-scoped callers fold it into their own
connect-flavored errors (`LegacyShadowDbError{reason:"connect"}`,
`LegacyDeclarativeShadowDbError`) so the suggestion text survives.

## 2. `execBatch` is now a required session capability

No production session ever lacked `execBatch`, so the `BEGIN`/`COMMIT`
fallback in `execMigrationBatch` was dead code — and the
push/reset/squash/repair integration suites all mocked sessions
*without* it, so every command-level test exercised the dead path
instead of what ships. `execBatch` is required on `LegacyDbSession`, the
fallback is deleted, and the test mocks now go through a shared
`legacySequentialExecBatch` helper (or batch recorders) so they exercise
the batching path.

## ref
- follow-up to: https://github.com/supabase/cli/pull/6224

🤖 Generated with [Claude Code](https://claude.com/claude-code)

---------

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>

5571 of 8927 relevant lines covered (62.41%)

6.65 hits per line

Jobs
ID Job ID Ran Files Coverage
1 32115999570.1 18 Aug 2026 08:23AM UTC 95
62.41
GitHub Action Run
Source Files on build 32115999570
  • Tree
  • List 95
  • Changed 0
  • Source Changed 0
  • Coverage Changed 0
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #32115999570
  • 8877048b on github
  • Prev Build on gh-readonly-queue/develop/pr-6240-2728b7bfb2cefeb4f2b60dd4d9b67a2d8327ed23 (#32115678229)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc