Problem deploying Phoenix 1.4 to Heroku

I’m having trouble deploying Phoenix 1.4 to Heroku. I’m not sure how to debug this issue. On my local machine everything is working fine, but I had Elixir 1.7.3 running on Heroku already. The only change I did was upgrade to Phoenix 1.4.

Here’s my buildpack:

erlang_version=21.0
elixir_version=1.7.3
always_rebuild=true

Here’s the log output.

remote: -----> Elixir app detected
remote: -----> Checking Erlang and Elixir versions
remote:        Will use the following versions:
remote:        * Stack heroku-18
remote:        * Erlang 21.0
remote:        * Elixir 1.7.3 
remote: -----> Will export the following config vars:
remote:        * MIX_ENV=prod
remote: -----> Stack changed, will rebuild
remote: -----> Cleaning all cache to force rebuilds
remote: -----> Fetching Erlang 21.0 from https://s3.amazonaws.com/heroku-buildpack-elixir/erlang/cedar-14/OTP-21.0.tar.gz
remote: -----> Installing Erlang 21.0 (changed)
remote: 
remote: -----> Fetching Elixir v1.7.3 for OTP 21 from https://repo.hex.pm/builds/elixir/v1.7.3-otp-21.zip
remote: -----> Installing Elixir v1.7.3 (changed)
remote: -----> Installing Hex
remote: * creating /app/.mix/archives/hex-0.18.2
remote: -----> Installing rebar
remote: * creating /app/.mix/rebar
remote: * creating /app/.mix/rebar3
remote: -----> Fetching app dependencies with mix
remote: ** (KeyError) key "SECRET_KEY_BASE" not found in: %{"BINDIR" => "/app/.platform_tools/erlang/erts-10.0/bin", "BUILDPACK_LOG_FILE" => "/dev/null", "DYNO" => "run.5110", "EMU" => "beam", "HOME" => "/app", "LANG" => "en_US.UTF-8", "LC_CTYPE" => "en_US.utf8", "MIX_ENV" => "prod", "OLDPWD" => "/app/tmp/buildpacks/7dbb5567c3a8b869f9516cd869ebf95082d7cf78f12fea9cba8fad1e1923c580f31b53ba792ed7279cc47894e95fe878ef82661603023bf1f6a023e7c7953587", "PATH" => "/app/.platform_tools/erlang/erts-10.0/bin:/app/.platform_tools/erlang/bin:/tmp/build_6e841776721fff2ac35cb2a7eeccda6d/.platform_tools/elixir/bin:/tmp/build_6e841776721fff2ac35cb2a7eeccda6d/.platform_tools/erlang/bin:/usr/local/bin:/usr/bin:/bin:/tmp/codon/vendor/bin", "PROGNAME" => "erl", "PWD" => "/tmp/build_6e841776721fff2ac35cb2a7eeccda6d", "REQUEST_ID" => "42dc35f0-eeac-c6a2-023e-bac04606077b", "ROOTDIR" => "/app/.platform_tools/erlang", "SHLVL" => "2", "SOURCE_VERSION" => "b3bc1311fdd01907d0e16b9b17d5b09ddd6748d1", "STACK" => "heroku-18", "_" => "/tmp/build_6e841776721fff2ac35cb2a7eeccda6d/.platform_tools/elixir/bin/mix"}
remote:     (stdlib) :maps.get("SECRET_KEY_BASE", %{"BINDIR" => "/app/.platform_tools/erlang/erts-10.0/bin", "BUILDPACK_LOG_FILE" => "/dev/null", "DYNO" => "run.5110", "EMU" => "beam", "HOME" => "/app", "LANG" => "en_US.UTF-8", "LC_CTYPE" => "en_US.utf8", "MIX_ENV" => "prod", "OLDPWD" => "/app/tmp/buildpacks/7dbb5567c3a8b869f9516cd869ebf95082d7cf78f12fea9cba8fad1e1923c580f31b53ba792ed7279cc47894e95fe878ef82661603023bf1f6a023e7c7953587", "PATH" => "/app/.platform_tools/erlang/erts-10.0/bin:/app/.platform_tools/erlang/bin:/tmp/build_6e841776721fff2ac35cb2a7eeccda6d/.platform_tools/elixir/bin:/tmp/build_6e841776721fff2ac35cb2a7eeccda6d/.platform_tools/erlang/bin:/usr/local/bin:/usr/bin:/bin:/tmp/codon/vendor/bin", "PROGNAME" => "erl", "PWD" => "/tmp/build_6e841776721fff2ac35cb2a7eeccda6d", "REQUEST_ID" => "42dc35f0-eeac-c6a2-023e-bac04606077b", "ROOTDIR" => "/app/.platform_tools/erlang", "SHLVL" => "2", "SOURCE_VERSION" => "b3bc1311fdd01907d0e16b9b17d5b09ddd6748d1", "STACK" => "heroku-18", "_" => "/tmp/build_6e841776721fff2ac35cb2a7eeccda6d/.platform_tools/elixir/bin/mix"})
remote:     (stdlib) erl_eval.erl:677: :erl_eval.do_apply/6
remote:     (stdlib) erl_eval.erl:885: :erl_eval.expr_list/6
remote:     (stdlib) erl_eval.erl:240: :erl_eval.expr/5
remote:     (stdlib) erl_eval.erl:232: :erl_eval.expr/5
remote:     (stdlib) erl_eval.erl:233: :erl_eval.expr/5
remote:     (stdlib) erl_eval.erl:885: :erl_eval.expr_list/6
remote:     (stdlib) erl_eval.erl:408: :erl_eval.expr/5
remote:  !     Push rejected, failed to compile Elixir app.
remote: 
remote:  !     Push failed
remote: Verifying deploy...
remote: 
remote: !	Push rejected to obramax.

Any clues?

The issue was setting the secret key base env variable on heroku:

heroku config:set SECRET_KEY_BASE="..."
2 Likes