Bug: Account SDK does not return detailed errors when signer fails to sign transactions
- Dominant language
- TypeScript
- Stars
- 172
- Forks
- 207
- Avg merge
- 49m
- Merged PRs (30d)
- 1
Description
### Describe the bug
When using the Base Account SDK to prepare and submit a transaction, if the configured signer fails (for example, due to missing private key, user rejection, or invalid signer state), the SDK often returns a generic error without detailed information about the cause. This makes it difficult for developers to differentiate between signer failure modes and handle them appropriately in the UI.
### Steps
Steps to reproduce:
1. Integrate the Base Account SDK in a test application.
2. Configure the account with a signer that will reject signing (e.g., prompt user rejection or undefined private key).
3. Invoke a transaction signing method (e.g., prepare and submit a simple transfer).
4. Catch the error returned by the SDK.
5. Observe that the error lacks structured details indicating why the signing failed.
### Expected behavior
When the signer fails to sign a transaction, the SDK should return a structured error object containing specific failure information (e.g., "user_rejected", "missing_private_key", "invalid_signer_state"). This enables applications to display the correct UI message and handle different failure scenarios programmatically.
### Version
_No response_
### Additional info
_No response_
### Desktop
_No response_
### Smartphone
_No response_
Contributor guide
Research direction
Start by tracing the Base Account SDK transaction signing flow described in the reproduction steps, focusing on how signer failures are caught and returned. Reproduce the cases involving user rejection, an undefined private key, and invalid signer state. Done means callers receive structured failure information that distinguishes these scenarios, with coverage for the observed failures.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript
- Domain
- api
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 42/100