While debugging the issue described in PR #18, the root cause was identified as a version mismatch between the Reader and Holder apps:
- Reader App (Test App v0.95.0) was built with Multipaz v0.94
- Utopia Holder App was running Multipaz v0.94.0
This mismatch caused the credential exchange to fail, leading to crashes in the Holder app.
Although installing the correct Test App version resolved the problem, the current logs provide little clarity and make it difficult for developers to identify the underlying cause.
You can see the issue reproduced in the following videos:
Problem:
- The Holder app crashes or fails silently when a document is exchanged between apps built with different Multipaz versions.
- Log messages do not indicate the version mismatch, leaving developers uncertain about the cause of the failure.
Proposed Solution:
Add defensive validation and clearer error handling in the Holder app (and possibly the Reader app) to facilitate troubleshooting, for example:
- Detect mismatched SDK versions or schema changes between the two apps.
- Log clear and actionable messages (e.g., “Credential exchange failed due to SDK version mismatch: Reader v0.94 vs Holder v0.94.0”).
- Optionally, display a user-facing message suggesting that both apps be updated to compatible versions.
Expected Outcome:
- Developers can quickly identify version mismatches and avoid unnecessary debugging.
- Reduced time spent diagnosing crashes due to SDK incompatibilities.
- Improved overall developer experience and log transparency.
References:
While debugging the issue described in PR #18, the root cause was identified as a version mismatch between the Reader and Holder apps:
This mismatch caused the credential exchange to fail, leading to crashes in the Holder app.
Although installing the correct Test App version resolved the problem, the current logs provide little clarity and make it difficult for developers to identify the underlying cause.
You can see the issue reproduced in the following videos:
Problem:
Proposed Solution:
Add defensive validation and clearer error handling in the Holder app (and possibly the Reader app) to facilitate troubleshooting, for example:
Expected Outcome:
References: