← Back to issue list

Hard to see what the causes an error for a 404 network error

View original Github issue

Metadata

Project
snapcraft
Number
#4328
Type
issue
State
open
Author
sergiusens
Labels
Status: Triaged Type: Enhancement
Created
Updated
Closed
—

Current evaluation

Source downloads now report 404s with the failing URL instead of an opaque generic network error.

Suggested action: close resolved

Reason: Current craft-parts code maps a 404 in FileSourceHandler.pull() to SourceNotFound with the source URL, producing "Failed to pull source: '<URL>' not found"; test_pull_url_not_found asserts this message. This behavior is present from craft-parts commit aef71035 / PR #743, "fix: add proper error messages".

Evaluated by: mr-cal-bot

Impact: 38 Quick Win: 27 Complexity: 20 Confidence: 95 Actionability: 90

Issue body

### Bug Description Running in brief, for sources, we can see a 404 network error, but not what part caused it or the actual source reference ### To Reproduce Run snapcraft in brief with a source that produces a 404, running in verbose makes it a bit more obvious, but still not entirely clear ### Environment Ubuntu 22.04 LTS ### snapcraft.yaml ```shell name: ansel version: "0.0.0" adopt-info: ansel grade: stable confinement: strict base: core22 compression: lzo donation: "https://liberapay.com/aurelienpierre" source-code: "https://github.com/aurelienpierreeng/ansel" website: "https://ansel.photos" architectures: - build-on: amd64 - build-on: arm64 apps: ansel: command: usr/bin/ansel --datadir $SNAP/usr/share/ansel --moduledir $SNAP/usr/lib/$SNAPCRAFT_ARCH_TRIPLET/ansel --configdir $SNAP_USER_DATA --localedir $SNAP/usr/share/locale environment: GTK_USE_PORTAL: 0 extensions: [gnome] plugs: - opengl - home - removable-media - password-manager-service - network - network-bind common-id: photos.ansel.app cli: command: usr/bin/ansel-cli --datadir $SNAP/usr/share/ansel --moduledir $SNAP/usr/lib/$SNAPCRAFT_ARCH_TRIPLET/ansel --configdir $SNAP_USER_DATA --localedir $SNAP/usr/share/locale extensions: [gnome] plugs: - opengl - home - removable-media - password-manager-service - network - network-bind # https://forum.snapcraft.io/t/help-gdbus-error-this-call-is-not-available-inside-the-sandbox/29969/5 - network-status lensfun-update-data: command: usr/bin/lensfun-update-data environment: PYTHONPATH: $SNAP/usr/lib/python3/dist-packages plugs: - network slots: session-dbus-interface: interface: dbus name: org.darktable.service bus: session layout: /usr/include/clc: symlink: $SNAP/usr/include/clc /usr/lib/clc: symlink: $SNAP/usr/lib/clc /usr/lib/$SNAPCRAFT_ARCH_TRIPLET/gallium-pipe: symlink: $SNAP/usr/lib/$SNAPCRAFT_ARCH_TRIPLET/gallium-pipe /usr/lib/$SNAPCRAFT_ARCH_TRIPLET/intel-opencl: symlink: $SNAP/usr/lib/$SNAPCRAFT_ARCH_TRIPLET/intel-opencl build-packages: - gcc-12 - g++-12 parts: opencl: plugin: nil stage-packages: - mesa-opencl-icd - ocl-icd-libopencl1 intel-opencl-icd: source: https://github.com/intel/compute-runtime/releases/download/intel-opencl-icd_23.22.26516.18_amd64.deb source-checksum: sha256/934959f815a2692a65a16cfe126b466749d03f14d0184afdf84a6453dba06b04 plugin: dump libigdgmm12: source: https://github.com/intel/compute-runtime/releases/download/libigdgmm12_23.22.26516.18_amd64.deb source-checksum: sha256/de6ed9333a74506de43993eb14c8e0e0eb23314c42b03af66fe9c3df24a8973d plugin: dump intel-level-zero-gpu: source: https://github.com/intel/compute-runtime/releases/download/intel-level-zero-gpu_1.3.26516.18_amd64.deb source-checksum: sha256/3505f1dad479aaeea1f2460cc9288edc031bead47ac924a9f78b3c01fdcf5d3a plugin: dump intel-igc-core: source: https://github.com/intel/intel-graphics-compiler/releases/download/intel-igc-core_1.0.14062.11_amd64.deb source-checksum: sha256/c75dc93b168246f0ac08aea6aef551312f54545771b4637a268de205617d2ab0 plugin: dump stage: - -usr/share/doc - -usr/local - -usr/lib/igc organize: usr/local/lib: usr/lib intel-igc-opencl: source: https://github.com/intel/intel-graphics-compiler/releases/download/intel-igc-opencl_1.0.14062.11_amd64.deb source-checksum: sha256/cf76d943dbe44d3da2b7bad2a1049b8834030ec03f7cea6270528f5e67251095 plugin: dump stage: - -usr/share/doc - -usr/local - -usr/lib/igc organize: usr/local/lib: usr/lib ansel: plugin: cmake source: . cmake-parameters: - -DCMAKE_BUILD_TYPE=Release # Place the data alongside that coming from stage-packages (e.g. the lensfun database) - -DCMAKE_INSTALL_PREFIX=/usr # Support Lua scripts by way of internal Lua implementation - -DDONT_USE_INTERNAL_LUA=OFF # Don't overly optimize for build CPU-- stay generic - -DBINARY_PACKAGE_BUILD=ON - -DCMAKE_FIND_ROOT_PATH="$SNAPCRAFT_STAGE;/snap/gnome-42-2204-sdk/current" - -DCMAKE_VERBOSE_MAKEFILE=ON - -DCMAKE_C_COMPILER="/usr/bin/gcc-12" - -DCMAKE_CXX_COMPILER="/usr/bin/g++-12" - -DUSE_LIGHTROOM=ON stage-packages: - libasn1-8-heimdal - libavif13 - libcurl3-gnutls - libexiv2-27 - libgraphicsmagick-q16-3 - libgssapi3-heimdal - libhcrypto4-heimdal - libheimbase1-heimdal - libheimntlm0-heimdal - libhx509-5-heimdal - libimage-exiftool-perl - libkrb5-26-heimdal - libgphoto2-6 - libldap-2.5-0 - liblensfun-bin - liblensfun-data-v1 - liblensfun1 - libnghttp2-14 - libpugixml1v5 - libroken18-heimdal - librtmp1 - libsasl2-2 - libssh-4 - libwind0-heimdal build-packages: - intltool - libavif-dev - libexiv2-dev - libgraphicsmagick1-dev - liblensfun-dev - libgphoto2-dev - libpugixml-dev - libsdl2-dev - libsm-dev - libxml2-utils - libxrandr-dev - ninja-build - patch - pkg-config - xsltproc # -- Missing jsonschema, problems in noiseprofiles.json might go unnoticed # -- GMIC not found # Disabled capabilities for now due to interfaces: # # Need to test with cups-control interface # - libcups2-dev # No colord interface # - libcolord-dev # - libcolord-gtk-dev build-environment: - LDFLAGS: "-L${CRAFT_STAGE}/usr/lib/${CRAFT_ARCH_TRIPLET} $(pkg-config --libs libheif sdl2 harfbuzz gtk+-3.0 OpenEXR)" # [-Werror=shadow] # :: src/src/gui/guides.c:534:63: error: declaration of ‘free’ shadows a global declaration - CFLAGS: "-O3 $(pkg-config --cflags libheif sdl2 harfbuzz OpenEXR) -Wno-error=type-limits -Wno-error=shadow -Wno-error=unused-value" # [-Werror=shadow] # :: usr/include/OpenEXR/ImfRational.h:48:26: error: declaration of ‘d’ shadows a member of ‘Imf_3_1::Rational’ - CXXFLAGS: "-O3 $(pkg-config --cflags libheif sdl2 harfbuzz OpenEXR) -Wno-error=register -Wno-error=shadow" override-pull: | craftctl default craftctl set version=$(git describe --tags) patch -p0 < "${SNAPCRAFT_PROJECT_DIR}/snap/local/patches/darktable-math_h.patch" patch -p0 < "${SNAPCRAFT_PROJECT_DIR}/snap/local/patches/darktable-lens_cc.patch" override-build: | snapcraftctl build PYTHONPATH=$SNAPCRAFT_PART_INSTALL/usr/lib/python3/dist-packages $SNAPCRAFT_PART_INSTALL/usr/bin/lensfun-update-data || echo No updates if [ -d /var/lib/lensfun-updates/version_1/]; then cp /var/lib/lensfun-updates/version_1/* $SNAPCRAFT_PART_INSTALL/usr/share/lensfun/version_1/ fi parse-info: - usr/share/metainfo/photos.ansel.app.appdata.xml after: - openexr - osmgpsmap - heif heif: source: https://github.com/strukturag/libheif/releases/download/v1.14.2/libheif-1.14.2.tar.gz source-checksum: sha256/d016905e247d6952cd7ee4f9b90957350b6a6caa466bc76fdfe6eb302b6d088c plugin: autotools autotools-configure-parameters: - --prefix=/usr build-environment: - CC: "/usr/bin/gcc-12" - CXX: "/usr/bin/g++-12" openexr: source: https://github.com/AcademySoftwareFoundation/openexr/archive/refs/tags/v3.1.5.tar.gz source-checksum: sha256/93925805c1fc4f8162b35f0ae109c4a75344e6decae5a240afdfce25f8a433ec plugin: cmake cmake-parameters: - -DCMAKE_INSTALL_PREFIX=/usr - -DDOCS=OFF - -DOPENEXR_INSTALL_EXAMPLES=OFF - -DOPENEXR_BUILD_TOOLS=OFF - -DOPENEXR_INSTALL_TOOLS=OFF - -DCMAKE_C_COMPILER="/usr/bin/gcc-12" - -DCMAKE_CXX_COMPILER="/usr/bin/g++-12" build-environment: - CFLAGS: "-O3" osmgpsmap: source: https://github.com/nzjrs/osm-gps-map/releases/download/1.2.0/osm-gps-map-1.2.0.tar.gz source-checksum: sha256/ddec11449f37b5dffb4bca134d024623897c6140af1f9981a8acc512dbf6a7a5 plugin: autotools autotools-configure-parameters: - --prefix=/usr - --enable-introspection=no build-packages: - libcurl4-gnutls-dev - libssl-dev - libsoup2.4-dev build-environment: - CFLAGS: "-O3" - CXXFLAGS: "-O3" - CC: "/usr/bin/gcc-12" - CXX: "/usr/bin/g++-12" ``` ### Relevant log output ```shell snapcraft build --shell-after Executed: skip pull heif (already ran) Executed: skip pull openexr (already ran) Executed: skip pull osmgpsmap (already ran) Executed: skip pull ansel (already ran) Executed: skip pull gnome/sdk (already ran) Network request error: network request failed (request=<PreparedRequest [GET]>, response=<Response [404]>). Check the network and try again. Failed to execute build in instance. Full execution log: '/home/sergiusens/.local/state/snapcraft/log/snapcraft-20230818-092033.508680.log' ``` ### Additional context _No response_

Evaluation history

Date Model Scores Action Summary
stealth/space-bunny-alpha
Impact: 38
Quick Win: 27
Complexity: 20
Confidence: 95
Actionability: 90
close resolved Source downloads now report 404s with the failing URL instead of an opaque generic network error.
qwen/qwen3.6-35b-a3b
Impact: 40
Quick Win: 17
Complexity: 40
Confidence: 80
Actionability: 70
keep open Enhancement to improve error messages for network failures (e.g. 404s) by including part name and source URL for better debugging.
qwen/qwen3.8-27b
Impact: 40
Quick Win: 28
Staleness: 55
Complexity: 30
Confidence: 60
Support Request: 10
keep open Enhancement: 404 network errors during source pull don't identify which part/source failed. Triaged by maintainer, synced to Jira SNAPCRAFT-1086. craft-parts NetworkRequestError now includes a source detail field.
qwen/qwen3.6-35b-a3b
Staleness: 88
Complexity: 20
Confidence: 75
Support Request: 5
keep open Enhancement to improve error messaging for 404 network failures by identifying the specific source or part that triggered the error. Currently triaged but inactive for over a year.
qwen3.6-35b-a3b-mtp-q6
Staleness: 85
Complexity: 30
Confidence: 80
Support Request: 5
keep open Enhancement request to clarify which source or part triggered a 404 network error during builds. The issue is triaged but has seen no maintainer activity in over a year.

Update history

No update history recorded yet.

Related work

  • Likely Fixed By: craft-parts#743 (confidence 95%)

    Commit aef71035 introduced proper source error messages; the current 404 handling includes the failing source URL and has unit coverage.

Related issues

No related issues found above the similarity threshold.