When asking to release to a branch that's too long, a traceback is printed that gives no hints as to the source of the error.
Metadata
Current evaluation
Fixed by merged snapcore/snapcraft PR #2059 (commit 3a861f74c); Store-side validation later returned a clear error for overlong branch names.
Resolution: closed resolved
Reason: Merged PR #2059, commit 3a861f74c, handled HTML/500 Store responses without the secondary fmt_error traceback. The final maintainer comment confirms branch-length validation was deployed and Snapcraft displayed a clear invalid-field message.
Evaluated by: mr-cal-bot
No scores available.
Issue body
(I think it's looking for an 'errors' key in the response that isn't there)
$ snapcraft release interdenominational-counterintelligences 1 'stable/It-was-the-best-of-times--it-was-the-worst-of-times--it-was-the-age-of-wisdom--it-was-the-age-of-foolishness--it-was-the-epoch-of-belief--it-was-the-epoch-of-incredulity--it-was-the-season-of-Light--it-was-the-season-of-Darkness--it-was-the-spring-of-hope--it-was-the-winter-of-despair'
Traceback (most recent call last):
File "/snap/snapcraft/1094/bin/snapcraft", line 11, in <module>
load_entry_point('snapcraft==2.39', 'console_scripts', 'snapcraft')()
File "/snap/snapcraft/1094/usr/lib/python3.6/site-packages/pkg_resources/__init__.py", line 565, in load_entry_point
return get_distribution(dist).load_entry_point(group, name)
File "/snap/snapcraft/1094/usr/lib/python3.6/site-packages/pkg_resources/__init__.py", line 2631, in load_entry_point
return ep.load()
File "/snap/snapcraft/1094/usr/lib/python3.6/site-packages/pkg_resources/__init__.py", line 2291, in load
return self.resolve()
File "/snap/snapcraft/1094/usr/lib/python3.6/site-packages/pkg_resources/__init__.py", line 2297, in resolve
module = __import__(self.module_name, fromlist=['__name__'], level=0)
File "/snap/snapcraft/1094/lib/python3.6/site-packages/snapcraft/cli/__main__.py", line 43, in <module>
run(prog_name='snapcraft')
File "/snap/snapcraft/1094/lib/python3.6/site-packages/click/core.py", line 722, in __call__
return self.main(*args, **kwargs)
File "/snap/snapcraft/1094/lib/python3.6/site-packages/click/core.py", line 697, in main
rv = self.invoke(ctx)
File "/snap/snapcraft/1094/lib/python3.6/site-packages/click/core.py", line 1066, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File "/snap/snapcraft/1094/lib/python3.6/site-packages/click/core.py", line 895, in invoke
return ctx.invoke(self.callback, **ctx.params)
File "/snap/snapcraft/1094/lib/python3.6/site-packages/click/core.py", line 535, in invoke
return callback(*args, **kwargs)
File "/snap/snapcraft/1094/lib/python3.6/site-packages/snapcraft/cli/store.py", line 210, in release
snapcraft.release(snap_name, revision, channels.split(','))
File "/snap/snapcraft/1094/lib/python3.6/site-packages/snapcraft/_store.py", line 607, in release
channels = store.release(snap_name, revision, release_channels)
File "/snap/snapcraft/1094/lib/python3.6/site-packages/snapcraft/storeapi/_store_client.py", line 156, in release
self.sca.snap_release, snap_name, revision, channels)
File "/snap/snapcraft/1094/lib/python3.6/site-packages/snapcraft/storeapi/_store_client.py", line 78, in _refresh_if_necessary
return func(*args, **kwargs)
File "/snap/snapcraft/1094/lib/python3.6/site-packages/snapcraft/storeapi/_sca_client.py", line 176, in snap_release
raise errors.StoreReleaseError(data['name'], response)
File "/snap/snapcraft/1094/lib/python3.6/site-packages/snapcraft/storeapi/errors.py", line 353, in __init__
self.fmt = fmt_error(response)
File "/snap/snapcraft/1094/lib/python3.6/site-packages/snapcraft/storeapi/errors.py", line 395, in __fmt_error_unknown
fmt = '{errors}'.format(**response_json)
KeyError: 'errors'
Evaluation history
| Date | Model | Scores | Action | Summary |
|---|---|---|---|---|
| stealth/space-bunny-alpha | — | closed resolved | Fixed by merged snapcore/snapcraft PR #2059 (commit 3a861f74c); Store-side validation later returned a clear error for overlong branch names. | |
| stealth/space-bunny-alpha | — | closed resolved | Store returned HTML on over-long branch names, causing a KeyError traceback in snapcraft's fmt_error. Fixed client-side by merged PR #2059 (commit 3a861f74c); store also added branch-name length validation so a clear "invalid-field" message is shown. | |
| stealth/space-bunny-alpha | — | closed resolved | Fixed by merged PR #2059 (commit 3a861f74c), which handled HTTP 500 release responses and logged the store error instead of raising an unhelpful traceback. | |
| qwen/qwen3.6-35b-a3b | — | — | Closed without comments. Resolves a KeyError stacktrace when releasing to an overly long channel due to a missing 'errors' key in API responses. Addressed by implementing fallback error parsing. | |
| qwen/qwen3.6-35b-a3b | — | — | Closed without resolution or comments. The unhandled KeyError in error formatting during long channel releases was reported but appears abandoned, with no fix documented. |
Update history
| Date | Change |
|---|---|
| created |
Related work
-
Likely Fixed By:
snapcore/snapcraft#2059
(confidence 100%)
Merged fix for handling 500 responses during snap release, committed as 3a861f74c.
-
Related To:
canonical/snapcraft#2028
(confidence 99%)
GitHub counterpart of the Launchpad report, also resolved by PR #2059.
Related issues
| Issue | Project | State | Summary | Similarity |
|---|---|---|---|---|
| #2028 When asking to release to a branch that's too long, a traceback is printed that gives no hints as to the source of the error | snapcraft | closed | Fixed by merged PR #2059 (commit 3a861f74c): Snapcraft now handles HTML 500 Store responses during release, logs details, and avoids the uninformative traceback. |