Rails: An unhandled lowlevel error occurred. The application logs may have details

Pavel picture Pavel · Oct 4, 2016 · Viewed 11.5k times · Source

I made this on my server:

deploy@ubuntu-512mb-ams2-01:~/applications/spa_backend/current$ bundle exec rake secret
4b921910**
deploy@ubuntu-512mb-ams2-01:~/applications/spa_backend/current$ export SECRET_KEY_BASE=4b921910**
deploy@ubuntu-512mb-ams2-01:~/applications/spa_backend/current$ irb
irb(main):001:0> ENV["SECRET_KEY_BASE"]
=> "4b921910**"

And when I try open link with my app, I see this:

An unhandled lowlevel error occurred. The application logs may have details.

puma_error.log:

#<RuntimeError: Missing `secret_key_base` for 'production' environment, set this value in `config/secrets.yml`>
/home/deploy/applications/spa_backend/shared/bundle/ruby/2.3.0/gems/railties-5.0.0.1/lib/rails/application.rb:513:in `validate_secret_key_config!'
/home/deploy/applications/spa_backend/shared/bundle/ruby/2.3.0/gems/railties-5.0.0.1/lib/rails/application.rb:246:in `env_config'

secrets.yml:

production:
  secret_key_base: <%= ENV["SECRET_KEY_BASE"] %>

UPD. I changed <%= ENV["secret_key_base"] %> -> <%= ENV["SECRET_KEY_BASE"] %> but it didn't help

Answer

treiff picture treiff · Oct 4, 2016

In your secrets.yml, your environment variable key needs to be capitalized. Calling ENV['secret_key_base'] is returning nil.

Modify your secrets.yml like below:

production:
  secret_key_base: <%= ENV["SECRET_KEY_BASE"] %>