← Back to issue list

snapcraft doesn't run store checks locally, causing disappointment at upload time

View original Launchpad issue

Metadata

Project
snapcraft (launchpad)
Number
#1919397
Type
issue
State
open
Author
~racb
Labels
craft-466
Created
Updated
Closed

Current evaluation

Snapcraft should run store validation checks locally (e.g. external symlinks) before upload. Issue is 5+ years old with no comments; a snapcraft lint command was later added, but no evidence it covers this specific check.

Suggested action: needs triage

Reason: The issue is a genuine feature request (local validation parity with store checks) with zero maintainer interaction for ~5 years. A later lint command (PR #4095) may partially address it, but there's no evidence it validates external symlinks, so it can't be closed as fixed without verification.

Impact: 50 Quick Win: 22.5 Staleness: 95 Complexity: 55 Confidence: 55 Support Request: 10

Issue body

I spent considerable time preparing a snap, thought it was all good, only to get this at store upload time: The store was unable to accept this snap. - package contains external symlinks: etc/rmt Expected: snapcraft runs the same checks locally as the store does Actual: I think it's going to work, and then it doesn't

Evaluation history

Date Model Scores Action Summary
qwen/qwen3.8-27b
Impact: 50
Quick Win: 22.5
Staleness: 95
Complexity: 55
Confidence: 55
Support Request: 10
needs triage Snapcraft should run store validation checks locally (e.g. external symlinks) before upload. Issue is 5+ years old with no comments; a snapcraft lint command was later added, but no evidence it covers this specific check.
qwen/qwen3.6-35b-a3b
Staleness: 95
Complexity: 70
Confidence: 90
Support Request: 10
close stale Feature request to align local snapcraft validation with Snap Store checks to catch errors like external symlinks before upload. Unaddressed for nearly 5 years with no maintainer comments.
qwen/qwen3.6-35b-a3b
Staleness: 95
Complexity: 60
Confidence: 85
Support Request: 10
close stale Request to align snapcraft local checks with Snap Store upload validation. Untriaged, zero maintainer comments, inactive for over five years.
qwen3.6-35b-a3b-mtp-q6
Staleness: 95
Complexity: 60
Confidence: 85
Support Request: 10
close stale Request to add local validation checks to snapcraft that mirror Snap Store upload checks. Untriaged, zero comments, inactive for over five years.
qwen3.6-35b-a3b-mtp-q6
Staleness: 95
Complexity: 65
Confidence: 85
Support Request: 10
close stale Feature request to align local snapcraft validation with Snap Store checks to prevent unexpected publishing failures. Unaddressed and inactive for nearly five years.

Update history

No update history recorded yet.

Related work

  • Related To: canonical/snapcraft#4095 (confidence 60%)

    Adds a snapcraft lint command that could host local store-equivalent checks, but no evidence it covers external symlinks.

Related issues

Issue Project State Summary Similarity
#1790004 Snapcraft should warn if it produces a snap that the store will reject snapcraft (launchpad) open Feature request for snapcraft to warn during/after build about store-rejection issues like unusual file modes. No maintainer activity in 8 years. The snapcraft lint command (PRs #4095, #4115) now provides pre-upload checks.
78%
#1902913 snapcraft validate does not work with snaps in stores other than Global snapcraft (launchpad) closed Closed without resolution. The snapcraft validate failure for non-global store snaps was abandoned due to inactivity, with no fix implemented or workaround provided.
72%
#1992557 snapcraft remote-build snapcraft.yaml validation too strict snapcraft (launchpad) open snapcraft remote-build validation rejects empty LD_LIBRARY_PATH in environment, blocking some classic snaps. Issue is 4 years old with no maintainer engagement.
71%
#1986624 snapcraft points to wrong entry in apps as being invalid. snapcraft (launchpad) open Snapcraft 6.1 validation error misreports the first app ('runtests') as invalid when the actual offending app name ('get_cache_info', with an underscore) is the real problem. No maintainer interaction; zero comments; ~4 years old.
71%