← Back to issue list

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.

View original Launchpad issue

Metadata

Project
snapcraft (launchpad)
Number
#1750177
Type
issue
State
closed
Author
~chipaca
Labels
stacktrace
Created
Updated
Closed

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.
86%