fix: include exception detail in shared-key decrypt error#525
Open
cconstab wants to merge 1 commit into
Open
Conversation
get_encryption_key_shared_by_me raised AtDecryptionException with the literal
string 'e' instead of the interpolated {e}, so the actual decryption error was
hidden (messages read '... - e'). Interpolate the exception like the sibling
handlers do.
There was a problem hiding this comment.
Pull request overview
Fixes an error-message formatting bug in AtClient.get_encryption_key_shared_by_me() where decrypt failures appended the literal e instead of the caught exception, improving diagnostics for shared-key decrypt issues.
Changes:
- Interpolate the caught exception in the shared-key decrypt failure message (
- {e}). - Add a network-free unit test to exercise the decrypt-failure path and validate the error message.
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated 1 comment.
| File | Description |
|---|---|
| at_client/atclient.py | Fixes the decrypt failure message to include the real exception detail. |
| test/decrypt_error_test.py | Adds a unit test covering the shared-key decrypt error-message formatting. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Comment on lines
+25
to
+31
| key = SharedKey("k", AtSign("@alice"), AtSign("@bob")) | ||
| with self.assertRaises(AtDecryptionException) as ctx: | ||
| client.get_encryption_key_shared_by_me(key) | ||
|
|
||
| msg = str(ctx.exception) | ||
| self.assertFalse(msg.rstrip().endswith("- e")) # the bug printed a literal 'e' | ||
| self.assertIn("Failed to decrypt", msg) |
cpswan
approved these changes
Jul 3, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
In
at_client/atclient.py,get_encryption_key_shared_by_me()raised:The
eis a literal character, not the interpolated exception, so shared-key decryptfailures printed
... - ewith no detail — making the underlying problem impossibleto diagnose. The sibling handlers (same file, ~L169 and ~L310) correctly use
{e}.Fix: interpolate the exception (
- {e}).Tests:
test/decrypt_error_test.py— network-free; forces a decrypt failure via amocked connection and asserts the raised message includes the real exception (not the
literal
e).Small, isolated, and unblocks diagnosis of an intermittent "Failed to decrypt
shared_key…" seen on long-lived clients.