The SDK should return structured and descriptive error information whenever a user operation fails. The error object should include details such as the specific failure reason (e.g., insufficient collateral, invalid parameter values, RPC error) and any relevant context needed for proper error handling in the UI. This would allow developers to surface meaningful messages to users and handle errors programmatically.