Could not find rake-13.0.1 in any of the sources

I’m trying to deploy to the new ruby2.7 runtime on Lambda, and this is the error I’m getting when trying to execute a job (it deploys fine, and everything works on ruby2.5):

{
  "errorMessage": "Could not find rake-13.0.1 in any of the sources",
  "errorType": "Init<Bundler::GemNotFound>",
  "stackTrace": [
    "/var/lang/lib/ruby/2.7.0/bundler/spec_set.rb:86:in `block in materialize'",
    "/var/lang/lib/ruby/2.7.0/bundler/spec_set.rb:80:in `map!'",
    "/var/lang/lib/ruby/2.7.0/bundler/spec_set.rb:80:in `materialize'",
    "/var/lang/lib/ruby/2.7.0/bundler/definition.rb:170:in `specs'",
    "/var/lang/lib/ruby/2.7.0/bundler/definition.rb:237:in `specs_for'",
    "/var/lang/lib/ruby/2.7.0/bundler/definition.rb:226:in `requested_specs'",
    "/var/lang/lib/ruby/2.7.0/bundler/runtime.rb:101:in `block in definition_method'",
    "/var/lang/lib/ruby/2.7.0/bundler/runtime.rb:20:in `setup'",
    "/var/lang/lib/ruby/2.7.0/bundler.rb:149:in `setup'",
    "/var/lang/lib/ruby/2.7.0/bundler/setup.rb:20:in `block in <top (required)>'",
    "/var/lang/lib/ruby/2.7.0/bundler/ui/shell.rb:136:in `with_level'",
    "/var/lang/lib/ruby/2.7.0/bundler/ui/shell.rb:88:in `silence'",
    "/var/lang/lib/ruby/2.7.0/bundler/setup.rb:20:in `<top (required)>'",
    "/var/lang/lib/ruby/2.7.0/rubygems/core_ext/kernel_require.rb:92:in `require'",
    "/var/lang/lib/ruby/2.7.0/rubygems/core_ext/kernel_require.rb:92:in `require'",
    "/var/task/handlers/jobs/my_job.rb:1:in `<top (required)>'",
    "/var/lang/lib/ruby/2.7.0/rubygems/core_ext/kernel_require.rb:72:in `require'",
    "/var/lang/lib/ruby/2.7.0/rubygems/core_ext/kernel_require.rb:72:in `require'"
  ]
}

Adding that version of rake to my gemfile does not fix it.

Jets doesn’t support Ruby 2.7 yet. Started looking into it and it’s more complicated than just changing the runtime.

Gems are usually installed in a Ruby folder that matches the Ruby version.

2.5.7 -> 2.5.0
2.7.0 -> 2.7.0

Currently, Jets packages gems in the 2.5.0 folder regardless. That has to be adjusted. So, that’s simple.

However, there are other issues also. It looks like the new Lambda runtime uses a stripped-down version of the Amazon Linux 2 AMI. Common shared libraries, which many gems rely on, are also not installed. This causes issues with common gems like nokogiri.

It looks like AWS did the same thing with node8 to node10. Some links:

It will be a decent amount of work and time. Can follow issue here: https://github.com/tongueroo/jets/issues/444

Got it. Thanks for the quick reply! I’ll follow along with the issue.