storeapi: better handle network errors and retries
Metadata
Current evaluation
Resolves Launchpad bug #1765671 by improving storeapi network error handling. Sets urllib log level to ERROR and properly manages max retry failures, eliminating verbose warnings and tracebacks. Approved and merged after passing CI.
Suggested action: —
No scores available.
Issue body
- [x] Have you followed the [guidelines for contributing](https://github.com/snapcore/snapcraft/blob/master/CONTRIBUTING.md)?
- [x] Have you signed the [CLA](http://www.ubuntu.com/legal/contributors/)?
- [x] If this is a bugfix. Have you checked that there is a bug report open for the issue you are trying to fix on [bug reports](https://bugs.launchpad.net/snapcraft)?
- [x] If this is a new feature. Have you discussed the design on the [forum](https://forum.snapcraft.io)?
- [x] Have you successfully run `./runtests.sh static`?
- [x] Have you successfully run `./runtests.sh unit`?
-----
Currently Snapcraft prints an ugly warning every time it retries a connection instead of just retrying until the max number has occurred. And then, if after all the retries have happened and no connection has been made, it dumps a traceback.
This PR fixes LP: [#1765671](https://bugs.launchpad.net/snapcraft/+bug/1765671) by fixing both of othese issues: up the log level of urllib to ERROR, and properly handle connection errors resulting from exceeding the maximum number of retries.
In the long run, we should consider doing retries differently-- this stuff leaks right through requests.
Evaluation history
| Date | Model | Scores | Action | Summary |
|---|---|---|---|---|
| qwen/qwen3.6-35b-a3b | — | — | Resolves Launchpad bug #1765671 by improving storeapi network error handling. Sets urllib log level to ERROR and properly manages max retry failures, eliminating verbose warnings and tracebacks. Approved and merged after passing CI. | |
| qwen3.6-35b-a3b-mtp-q6 | — | — | Merged storeapi updates resolving Launchpad bug #1765671. Raises urllib log level to ERROR and properly handles max retry connection failures, eliminating verbose warnings and tracebacks. | |
| qwen3.6-35b-a3b-mtp-q6 | — | — | Merged to resolve Launchpad bug #1765671. Storeapi now raises urllib log level to ERROR and properly handles connection failures after maximum retries, eliminating ugly warnings and traceback dumps. |
Update history
No update history recorded yet.
Related issues
| Issue | Project | State | Summary | Similarity |
|---|---|---|---|---|
| #1936 storeapi: handle errors even for >400 responses | snapcraft | merged | Merged PR resolves Launchpad bug #1736963 by fixing storeapi error handling for HTTP responses over 400. Bypasses the requests library __bool__ quirk to ensure proper error messages display for failed API calls. Approved and passed CI. | |
| #2116 storeapi: handle 5xx error codes for all store endpoints | snapcraft | merged | Merged robust 5xx error handling across all store API endpoints. Fixes Launchpad bug #1768370 by generalizing release-specific error handling. Approved by two reviewers and passed CI checks. | |
| #3550 storeapi: log responses and registration error code | snapcraft | merged | Merged. Adds debug logging for store API responses and improves registration error code output. The minimal change (+16/-5 lines, 4 files) passed CI, achieved 100% coverage, and was approved for backporting. | |
| #3667 storeapi: fix typo | snapcraft | merged | Merged a single-line typo correction in the storeapi module. Approved by a reviewer, passed CI, and increased test coverage by 0.07%. | |
| #3124 storeapi: update api and error messages from push to upload | snapcraft | merged | Merged updates to the storeapi module replacing push terminology with upload in API calls and error messages. Approved by one reviewer, modifying 10 files with 126 additions and 146 deletions. |