Pushing a large snap fails with 502 error

Hi,

My snap is 1.7GB and each time I try to push it to the store I need about 10 attempts before it finally goes through. In about 9 out of 10 attempts, I get a 502 error:

$ snapcraft push webots_R2019b-rev1_amd64.snap --release candidate,beta,edge
Preparing to push 'webots_R2019b-rev1_amd64.snap'.
After pushing, an attempt will be made to release to 'beta', 'candidate', and 'edge'
Generating delta for 'webots_R2019b-rev1_amd64.snap'.
Pushing 'webots_R2019b-rev1_amd64.snap.xdelta3' [===============================================================================================================================================] 100%
Processing...|                                                                                                                                                                                        
Error while processing delta...
Error generating delta: There has been a problem while processing a snap delta.
  - Delta service failed to apply delta within 60s
Falling back to pushing full snap...
The Snap Store encountered an error while processing your request: bad gateway (code 502).===================================================================================================== ]  99%
The operational status of the Snap Store can be checked at https://status.snapcraft.io/

Is that a known issue? Is there any workaround?

I am still badly experiencing this issue and it’s getting worst… It took me about 30 or 40 attempts before I could upload my new snap (1.8GB). This is very time consuming: more than 2 days to upload a snap before we can test it.

If you guys want to test uploading it on snapcraft.io, I just uploaded it here: https://cyberbotics.com/files/repository/beta/webots_R2019b-rev1_amd64.snap

Hello,

We’re looking into possible causes but the fact here is that webots is a really large snap which is close to the size limits we tested and designed for, so any “disturbance” is likely to cause the upload to run into trouble.

An interim solution I can suggest, if it makes sense, is to split your software into binaries and content snaps (e.g. webots and webots-data) so each snap is smaller and uploads are easier to perform (also you can decouple the release cycles for data and binaries). The downside is that the user then needs to install two snaps. The upside is that if you declare webots-data as default-provider in webots’ snapd, it will get auto-installed when webots is installed.

If the webots-data snap turns out to be really large, though, it may not really help too much :confused:

We’ll keep looking at things on our side to see if we can provide options here.

  • Daniel
1 Like