Cannot deploy with OTP 24.0.1 in Gigalixir

Hi all, tried deploying my app on Gigalixir after updating my elixir_buildpack.config to the following:

elixir_version=1.12.1
erlang_version=24.0.1

The trace I’m seeing is

Deploying to gigalixir
  /usr/bin/git -c http.extraheader=GIGALIXIR-CLEAN: true push -f gigalixir HEAD:refs/heads/master
  remote: Starting deploy        
  remote: Preparing cache        
  remote: Compiling code and generating slug.        
  remote: Setting environment variables.        
  remote: * LIBCLUSTER_KUBERNETES_SELECTOR        
  remote: * LIBCLUSTER_KUBERNETES_NODE_BASENAME        
  remote: * APP_NAME        
  remote: * SECRET_KEY_BASE        
  remote: * PORT        
  remote: * SOURCE_VERSION        
  remote: * POOL_SIZE        
  remote: * DATABASE_URL        
  remote:        ----->        Found custom phoenix_static_buildpack.config        
  remote:        Detecting assets directory        
  remote:        package.json found in assets directory        
  remote:        Elixir+Phoenix+Releases app detected        
  remote:        Found custom phoenix_static_buildpack.config        
  remote:        Detecting assets directory        
  remote:        package.json found in assets directory        
  remote: =====> Downloading Buildpack: https://github.com/HashNuke/heroku-buildpack-elixir.git        
  remote: =====> Detected Framework: Elixir        
  remote: -----> Will export the following config vars:        
  remote:        APP_NAME        
  remote:        DATABASE_URL        
  remote:        LIBCLUSTER_KUBERNETES_NODE_BASENAME        
  remote:        LIBCLUSTER_KUBERNETES_SELECTOR        
  remote:        POOL_SIZE        
  remote:        PORT        
  remote:        SECRET_KEY_BASE        
  remote:        SOURCE_VERSION        
  remote:        * MIX_ENV=prod        
  remote: -----> Checking Erlang and Elixir versions        
  remote:        Will use the following versions:        
  remote:        * Stack heroku-18        
  remote:        * Erlang 24.0.1        
  remote:        * Elixir v1.12.1        
  remote: -----> Stack changed, will rebuild        
  remote: -----> Fetching Erlang 24.0.1 from https://s3.amazonaws.com/heroku-buildpack-elixir/erlang/cedar-14/OTP-24.0.1.tar.gz        
  remote: -----> Installing Erlang 24.0.1 (changed)        
  remote: 
  remote: gzip: stdin: not in gzip format        
  remote: tar: Child returned status 1        
  remote: tar: Error is not recoverable: exiting now        
  remote: Deploy aborted        
  To https://git.gigalixir.com/<app_name_redacted>.git/
   ! [remote rejected] HEAD -> master (pre-receive hook declined)
  error: failed to push some refs to 'https://git.gigalixir.com/<app_name_redacted>.git/'
Error: The process '/usr/bin/git' failed with exit code 1

Based on what I read online as possible reasons, the file https://s3.amazonaws.com/heroku-buildpack-elixir/erlang/cedar-14/OTP-24.0.1.tar.gz might not have been gzipped and may sport the .gz extension in error, but I’m not sure how to access it and verify this assumption.

Has anyone else seen this?

PS. I’m also using Github Actions and gigalixir-action for the deployment but I don’t think they’re related to this.

Pasting that URL into the browser returns an AWS “Access Denied” message. :scream_cat:

I tried some other versions listed in heroku-buildpack-elixir-otp-builds/otp-versions at master · HashNuke/heroku-buildpack-elixir-otp-builds · GitHub and got the same response.

This seems relevant: Travis build script fails silently · Issue #168 · HashNuke/heroku-buildpack-elixir-otp-builds · GitHub

Hey, I guess you’re right. I did not think to check if those are publicly accessible (I assumed they weren’t) but the one I was previously using for example (https://s3.amazonaws.com/heroku-buildpack-elixir/erlang/cedar-14/OTP-23.2.1.tar.gz) is.

I guess I’ll just wait until it’s fixed. Thanks!

Although you’re not directly using it, I see that the url you’re downloading from references Heroku cedar-14 which reached end of life in 2019 (source)

So maybe verify that you’re using the latest version of the https://github.com/HashNuke/heroku-buildpack-elixir.git buildpack. It’s not clear what version you’re using from the logs you provided.

Edit: although it actually looks like the buildpack is uploading to a cedar-14 url even if it’s not only used for cedar-14 which is a bit confusing.

Ah, I see. You did get that right though, I’m not compiling (is that the appropriate term?) the buildpack myself, I’m only specifying a buildpack config with erlang and elixir versions to upload to Gigalixir, the rest is handled by them. Also based on what I read around configuring buildpacks, there’s no way to specify a version of the buildpack to use from inside the buildpack config. Also, I could be wrong of course, I’m pretty unfamiliar with buildpacks :slight_smile:

The buildpack has been having problems with OTP 24 on stacks other than gigalixir-20. Upgrading your stack to gigalixir-20 and redeploying should fix the issue. We’re looking into fixing this for the other stacks as well.

3 Likes