Skip to content

fix: wrap external getCapsule in transactionAsync#22595

Merged
mverzilli merged 1 commit intomerge-train/fairiesfrom
martin/capsule-store-transaction-fix
Apr 16, 2026
Merged

fix: wrap external getCapsule in transactionAsync#22595
mverzilli merged 1 commit intomerge-train/fairiesfrom
martin/capsule-store-transaction-fix

Conversation

@mverzilli
Copy link
Copy Markdown
Contributor

The recent relaxation of contract scope sync to increase concurrency exposed a latent issue in the getCapsule method of CapsuleStore. This method was not wrapped in transactionAsync, which was fine due to the architecture ensuring it wouldn't race other transactions. With multiple syncs running concurrently, that guarantee is no longer a given, so we need to be more defensive.

@mverzilli mverzilli enabled auto-merge (squash) April 16, 2026 08:59
@mverzilli mverzilli merged commit 5c31e99 into merge-train/fairies Apr 16, 2026
21 of 25 checks passed
@mverzilli mverzilli deleted the martin/capsule-store-transaction-fix branch April 16, 2026 09:14
AztecBot pushed a commit that referenced this pull request Apr 16, 2026
The recent relaxation of contract scope sync to increase concurrency
exposed a latent issue in the `getCapsule` method of `CapsuleStore`.
This method was not wrapped in `transactionAsync`, which was fine due to
the architecture ensuring it wouldn't race other transactions. With
multiple syncs running concurrently, that guarantee is no longer a
given, so we need to be more defensive.
@AztecBot
Copy link
Copy Markdown
Collaborator

✅ Successfully backported to backport-to-v4-next-staging #22580.

github-merge-queue bot pushed a commit that referenced this pull request Apr 17, 2026
BEGIN_COMMIT_OVERRIDE
feat: check noir release has nargo binaries before releasing (#22551)
chore: cache chainInfo in embeddedwallet (#22592)
fix: wrap external getCapsule in transactionAsync (#22595)
fix(pxe): throw clear error for invalid comparator in pick_notes
(#22585)
refactor(aztec-nr): rename conversion fns to encode_/decode_ naming
(#22576)
fix: adding transactions to PXE stores (#22603)
feat: infrastructure for testing `[new_contract_artfiacts,
old_aztec_stack]` (#22593)
chore: fix unnecessary and inconsistent side-effect counter increments
(#22245)
feat(aztec-nr): new BoundedVec emit private log APIs (#22064)
END_COMMIT_OVERRIDE
Thunkar added a commit that referenced this pull request Apr 17, 2026
BEGIN_COMMIT_OVERRIDE
fix(pxe): cap event filter toBlock to last synced block (#22573)
fix(pxe): round tx expiration timestamp to reduce precision (#22577)
fix: eliminate anvil watcher warp race and false success logs (#22584)
refactor: aztec new and init creating 2 crates (#20681)
test: aztec new scaffold works (#20711)
feat(cli): warning if contract crate has tests (#20723)
feat(cli): auto-recompiling when aztec test is run (#20729)
feat: aztec new supporting multiple contract crates (#21007)
feat: asserts that aztec dep version matches cli (#21245)
chore: backport aztec CLI improvements to v4-next (#22587)
feat: check noir release has nargo binaries before releasing (#22551)
chore: cache chainInfo in embeddedwallet (#22592)
fix: wrap external getCapsule in transactionAsync (#22595)
fix(pxe): throw clear error for invalid comparator in pick_notes
(#22585)
refactor(aztec-nr): rename conversion fns to encode_/decode_ naming
(#22576)
feat: infrastructure for testing `[new_contract_artfiacts,
old_aztec_stack]` (#22593)
chore: fix unnecessary and inconsistent side-effect counter increments
(#22245)
fix: update FaceID wallet redirects and strip anchors in redirect
validation (#22505)
docs: add getting started on testnet guide (#22366)
docs: add getting started on testnet guide (backport #22366) (#22619)
feat(aztec-nr): new BoundedVec emit private log APIs (#22064)
END_COMMIT_OVERRIDE
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants