Skip to main content
← Back to list
01Issue
BugShippedSwamp CLI
Assigneesstack72

Relationships

#552 Inconsistent failures in swamp doctor extensions (database is locked, bundle build failed)

Opened by crudec · 6/4/2026· Shipped 6/4/2026

Running swamp doctor extensions repeatedly yields different results and intermittent failures.

Steps to reproduce:

  1. Run swamp doctor extensions multiple times in succession.

Observed behavior:

  • Run 1: Succeeded, but reported Extension catalog updated: 1 "entry" repaired.
  • Run 2: Failed with ERR_SQLITE_ERROR: database is locked in ExtensionCatalogStore.upsertWithIdentity.
  • Run 3: Failed with BundleBuildFailed: Last upgrade toVersion... does not match model version... for model type \@swamp/ssh\.
02Bog Flow
OPENTRIAGEDIN PROGRESSSHIPPED+ 1 MOREASSIGNED+ 4 MOREREVIEW+ 3 MOREPR_MERGED+ 1 MORECONTRIBUTOR_NOTIFIED

Shipped

6/4/2026, 8:17:39 PM

Click a lifecycle step above to view its details.

03Sludge Pulse
stack72 assigned stack726/4/2026, 6:31:01 PM
Editable. Press Enter to edit.

stack72 commented 6/4/2026, 8:17:47 PM

Thanks @crudec for reporting this! The fix has been merged and a release is on its way. We appreciate your contribution to swamp.

mgreten commented 7/21/2026, 8:38:58 PM

Still reproduces on swamp 20260721.174127.0-sha.0e77b06b (latest — swamp update --check reports up to date).

Running swamp doctor extensions repeatedly against an unchanged repo alternates OVERALL PASS/FAIL nondeterministically. Five consecutive runs just now:

run 1: FAIL   run 2: PASS   run 3: FAIL   run 4: PASS   run 5: FAIL

On the FAIL runs it's the same BundleBuildFailed version-mismatch class from the original report — here on a pulled extension:

✗ model … @magistr/obsidian-vault …
  BundleBuildFailed: Last upgrade toVersion "2026.03.28.2" does not match model version "2026.07.16.2"

Re-pulling the extension (swamp extension pull @magistr/obsidian-vault -y) refreshed it but did not change the flapping, which points at the shared-bundle build / version reconciliation being order- or timing-dependent rather than at stale content.

Flagging as a recurrence in case the original fix regressed or was partial — thanks for the work on the first pass here.

Sign in to post a ripple.