The error model
Node and Python surface failures differently, and that difference is the most useful thing to know.- Node throws a generic
Error. The category prefix appears at the start of the message string, so catch the one exception type and read the message to decide what to do. For example:err.message.startsWith("Rejected:")orerr.message.startsWith("Signing service:"). - Python maps the same failures onto two built-in exceptions.
ValueErrormeans fix the call (invalid input or encoding).RuntimeErrormeans retry or check connectivity (signing service, transport, or an incomplete request).
Logging the message is the fastest way to see which category you hit. In Python, the exception type already tells you which half you are in.
Error categories
Use this table to map a failure to a fix.If
signEvm7702 refuses with an InvalidInput failure and every argument you passed looks correct, contact support@walletsuite.io. This can happen if your account is not yet set up for the batched signing path.Timeouts
Every signing call and wallet creation needs your endpoint reachable for the round trip. One setting governs how long the client waits.registerTimeoutSecs(default30) sets how long the client waits while connecting before it gives up. Raise it for high-latency networks. Lower it to fail fast in a tight request path. It is a constructor argument, positional in Node andregister_timeout_secs=in Python.- Reachability. If your environment cannot reach your endpoint, you get a Transport failure. Confirm outbound network access to the URL you passed. The recommended production endpoint is
https://cosigner.walletsuite.io.
A timeout surfaces as a Transport failure, which is a
RuntimeError in Python. Retry with backoff once the network is healthy. A retried call starts fresh, so no partial state carries over.Retrying
Most failures are recoverable.- Retry with backoff on Signing service, Transport, and Protocol failures. These are transient. Start fresh on each attempt and do not reuse partial state.
- Fix the call on InvalidInput and Encoding failures. Retrying the same arguments will fail the same way, so correct the input first.
- Check inputs, then retry on a Rejected failure. Confirm your arguments are right for the request you intend, then try again.
RuntimeError categories and surfaces the ValueError categories straight to your own validation.
Next steps
SDK reference
The full client surface, methods, and arguments across Node and Python.
Signing
Sign transactions across 84 chains from one wallet, with shared prose and per-language code.