Craft Store should raise a better exception if we get an un-decodable response from the server.
Metadata
Current evaluation
Maintainer-identified bug remains open: malformed server bytes can escape as UnicodeDecodeError instead of a CraftStore error; a CI log is provided, but no stable reproducer exists.
Suggested action: keep open
Reason: The maintainer-authored report provides a concrete UnicodeDecodeError containing invalid server bytes and a failing CI job, while the codebase already has InvalidResponseError as an appropriate error type. Reliable reproduction is explicitly unknown, so implementation may require tracing all response-decoding paths, but the reported behavior is valid and should remain open.
Evaluated by: mr-cal-bot
Impact:
41
Quick Win:
18
Complexity:
37
Confidence:
86
Actionability:
69
Issue body
### Bug Description
It appears that if we get bad text from the store we'll just bubble up a `UnicodeDecodeError` - we should convert that into a `StoreError` of some kind.
### To Reproduce
Not sure if it's reproducible reliably, but here: https://github.com/dell-esg/powerflex-cinder-charm/actions/runs/15607294154/job/43959689846
### part yaml
```shell
```
### Relevant log output
```shell
snap/bin/charmcraft resource-revisions cinder-dell-powerflex sdc-deb-package
charmcraft internal error: UnicodeDecodeError('utf-8', b'\x86\xdbi\xb3\xff\xe0\x8a\xd8nm\xca&\xfd\xd7\xa5\x95\xeb \xfe\x9a0z\xb7\xe5{\x19\xe8\xbd\xa7!j\xb9\xbfi\xcbb\xa2{?\xae\xe9\xec\xff^y\xf3\x9d{\xdb\xad8\xfe:\x1b\xff\x8d\xfc\xf3\xde:\xeb\x8du', 0, 1, 'invalid start byte')
Full execution log: '/home/runner/.local/state/charmcraft/log/charmcraft-20250612-095333.234337.log'
Error: The process '/snap/bin/charmcraft' failed with exit code 70
Error: Error: The process '/snap/bin/charmcraft' failed with exit code 70
at ExecState._setResult (/home/runner/work/_actions/canonical/charming-actions/2.6.2/dist/upload-charm/index.js:3950:25)
at ExecState.CheckComplete (/home/runner/work/_actions/canonical/charming-actions/2.6.2/dist/upload-charm/index.js:3933:18)
at ChildProcess. (/home/runner/work/_actions/canonical/charming-actions/2.6.2/dist/upload-charm/index.js:3827:27)
at ChildProcess.emit (node:events:524:28)
at maybeClose (node:internal/child_process:1104:16)
at ChildProcess._handle.onexit (node:internal/child_process:304:5)
```
Evaluation history
| Date | Model | Scores | Action | Summary |
|---|---|---|---|---|
| stealth/space-bunny-alpha |
Impact:
41
Quick Win:
18
Complexity:
37
Confidence:
86
Actionability:
69
|
keep open | Maintainer-identified bug remains open: malformed server bytes can escape as UnicodeDecodeError instead of a CraftStore error; a CI log is provided, but no stable reproducer exists. | |
| qwen/qwen3.6-35b-a3b |
Impact:
45
Quick Win:
22
Complexity:
35
Confidence:
75
Actionability:
75
|
needs triage | Craft Store raises raw UnicodeDecodeError instead of a user-friendly StoreError when the server returns an un-decodable response. Issue is open, unlabelled, and has no maintainer comments. | |
| qwen/qwen3.8-27b |
Impact:
40
Quick Win:
28
Staleness:
85
Complexity:
30
Confidence:
75
Support Request:
0
|
keep open | Craft Store should raise a better exception if we get an un-decodable response from the server. | |
| qwen/qwen3.6-35b-a3b |
Staleness:
90
Complexity:
20
Confidence:
70
Support Request:
5
|
needs triage | Unhandled UnicodeDecodeError from store responses should be caught and converted to a StoreError. Open for over a year with no maintainer response, labels, or comments. | |
| qwen3.6-35b-a3b-mtp-q6 |
Staleness:
85
Complexity:
15
Confidence:
80
Support Request:
10
|
needs triage | Replaces raw UnicodeDecodeError with a proper StoreError when Craft Store returns un-decodable responses. Currently untriaged and inactive for over a year. |
Update history
No update history recorded yet.
Related issues
No related issues found above the similarity threshold.