Skip to content

fix(keychain): propagate execute submit errors instead of hanging#2488

Merged
tarrencev merged 1 commit intomainfrom
fix/propagate-execute-errors
Mar 14, 2026
Merged

fix(keychain): propagate execute submit errors instead of hanging#2488
tarrencev merged 1 commit intomainfrom
fix/propagate-execute-errors

Conversation

@tarrencev
Copy link
Copy Markdown
Contributor

@tarrencev tarrencev commented Mar 13, 2026

Summary

  • propagate ConfirmTransaction submit failures via onError
  • keep existing local error UI behavior
  • add test assertion that failed submit calls onError

Why

Some execute failures were handled only in local component state and never surfaced to the parent /execute callback flow. In sync/modal execute mode that can leave the caller waiting until its own timeout (for example: "Wallet execute timed out after 60s").

Validation

  • pnpm --filter @cartridge/keychain test:ci src/components/transaction/ConfirmTransaction.test.tsx
    • fails in this environment before running tests due unresolved imports (for example ethereum-blockies-base64)
  • pre-commit hook test run also fails due existing workspace dependency/export issues unrelated to this diff (for example ethereum-blockies-base64, micro-sol-signer, @cartridge/arcade export)

@vercel
Copy link
Copy Markdown

vercel bot commented Mar 13, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
controller-example-next Ready Ready Preview Mar 13, 2026 9:16pm
keychain Ready Ready Preview Mar 13, 2026 9:16pm
keychain-storybook Ready Ready Preview Mar 13, 2026 9:16pm

Request Review

@claude
Copy link
Copy Markdown
Contributor

claude bot commented Mar 14, 2026

Claude finished @tarrencev's task —— View job


Analyzing PR changes for documentation updates…

Tasks

  • Analyze PR changes to determine if user-facing behavior changed
  • Check docs repository structure for relevant documentation
  • Make minimal updates if needed, or confirm no changes required

Analysis

PR Summary: This PR fixes error propagation in the keychain's ConfirmTransaction component. Previously, when transaction execution failed during the submit phase, errors were only handled in local component state and never surfaced to parent callbacks via onError. This could leave callers waiting until timeout (e.g., "Wallet execute timed out after 60s").

Key change: Line 84 in ConfirmTransaction.tsx now calls onError?.(submitError) to propagate submit errors properly.

User-facing impact: This is an internal bug fix that makes existing error handling work as originally intended. The onError callback already existed in the API but wasn't being called for submit failures. This PR doesn't introduce new API behavior or change documented functionality - it fixes the implementation to match the expected behavior.

Documentation review: I checked the error handling documentation in:

  • controller/configuration.md - Documents propagateSessionErrors option
  • controller/sessions.md - Documents error handling in sessions
  • controller/getting-started.mdx - Basic usage docs
  • Example files and other relevant docs

The existing documentation correctly describes error handling behavior. This PR fixes the implementation to match what's already documented, so no documentation updates are needed.

Conclusion

No documentation changes required

This is an internal bug fix that corrects error propagation behavior to work as originally designed. The existing documentation already accurately describes how error handling should work - this PR simply fixes the implementation to match the documented behavior.


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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant