Jets deploy errors

I get a error with deploy jets in my application, The details are as follows:

......
Using text-table 1.2.4
Using jets 3.0.3
Using mysql2 0.5.3
Bundle complete! 11 Gemfile dependencies, 70 gems now installed.
Gems in the groups development and test were not installed.
Bundled gems are installed into `./vendor/gems`
Bundle install success.
Tidying project: removing ignored files to reduce package size.
=> rsync -a --links /tmp/jets/lotus/stage/code/vendor/gems/ruby/2.5.0/ /tmp/jets/lotus/stage/opt/ruby/gems/2.5.0/
=> Replacing compiled gems with AWS Lambda Linux compiled versions: /tmp/jets/lotus/stage/opt
Checking projects gems for binary serverlessgems...
Command Failed cd /tmp/jets/lotus/stage/opt && unzip -qo /tmp/jets/lotus/serverlessgems/downloads/gems/racc-1.5.2.zip > /dev/null 2>&1

how can I fix this problem?

Wondering if unzip is installed on that system.

type unzip

I confirm that unzip has been installed, and type unzip output “unzip is /usr/bin/unzip”.

Hi,Tung, I think this error may be caused by the file cannot be downloaded locally.I found this file size=0,Where can I manually download this file?

Binary gems are downloaded from the Serverless Gems service.

Just created and deployed a small test app. Controller code:

app/controllers/demo_controller.rb

require 'racc'

class DemoController < ApplicationController
  def index
    render json: {
      racc_version: Racc::VERSION,
      jets_version: Jets::VERSION,
      ruby_version: RUBY_VERSION,
    }
  end
end

Deployed it:

Click to see `jets deploy` summarized output
$ jets deploy
...
Using jets 3.0.3
Using mysql2 0.5.3
Bundle complete! 12 Gemfile dependencies, 69 gems now installed.
Gems in the groups development and test were not installed.
Bundled gems are installed into `./vendor/gems`
Bundle install success.
Tidying project: removing ignored files to reduce package size.
=> rsync -a --links /tmp/jets/racc-demo/stage/code/vendor/gems/ruby/2.7.0/ /tmp/jets/racc-demo/stage/opt/ruby/gems/2.7.0/
=> Replacing compiled gems with AWS Lambda Linux compiled versions: /tmp/jets/racc-demo/stage/opt
Checking projects gems for binary serverlessgems...
=> Generating shims in the handlers folder.
=> Creating zip file for /tmp/jets/racc-demo/stage/opt
...

02:43:48PM UPDATE_COMPLETE AWS::CloudFormation::Stack racc-demo-dev 
Stack success status: UPDATE_COMPLETE
Time took for stack deployment: 2m 7s.
Prewarming application.
API Gateway Endpoint: https://bzeglueat0.execute-api.us-west-2.amazonaws.com/dev/
$

Screenshot of results on AWS Lambda:

Screen Shot 2021-03-26 at 9.05.56 AM

So it appears to be working, at least, in that test.


Wondering if there’s some edge case where the download fails for whatever reason. IE: Intermittent internet connection? :face_with_monocle: Thinking will add additional retry logic for possible edge cases like this.

As an immediate step, try this:

jets clean:build
jets deploy

This clears out the cache, currently located in /tmp/jets, first.

It’s so sad. This method doesn’t work for me “jets clean:build”
What I’m creating now is a minimal jets application, just “jets new xxx”, and “jets deploy”, but it has been unsuccessful,so I can’t test the method of info version in the control you mentioned.
When it’s late, I’ll try to change to a different network environment, hoping to have good luck

RE: try to change to a different network environment,

Interesting. Wondering if you’re on a corporate VPN? Sometimes more restrictive VPNs will block URLs. Have seen some companies require that you ask the VPN admin to explicitly whitelist domains. Wondering if that’s what’s happening and it results in the 0 bytes downloaded files.

Regardless, would like to improve the logic to try and then provide a warning message to the user if jets is unable to download for some network reason.

I confirmed, the file cannot be downloaded because of the company’s VPN. I switched to my home network and the deployment was successful.

1 Like