Rails: ActiveSupport::MessageEncryptor::InvalidMessage

user9409769 picture user9409769 · Jan 20, 2019 · Viewed 18.3k times · Source

Help me please, I've finished 11 chapters of the rails tutorial, deployed my app to heroku (locally it worked perfectly) and it crashing all time. I'm using rails 5.2.2 After execution of command $heroku run rails console I'm receiving this:

Traceback (most recent call last):
    92: from /app/bin/rails:9:in `<main>'
    91: from /app/vendor/bundle/ruby/2.5.0/gems/activesupport-5.2.2/lib/active_support/dependencies.rb:291:in `require'
    90: from /app/vendor/bundle/ruby/2.5.0/gems/activesupport-5.2.2/lib/active_support/dependencies.rb:257:in `load_dependency'
    89: from /app/vendor/bundle/ruby/2.5.0/gems/activesupport-5.2.2/lib/active_support/dependencies.rb:291:in `block in require'
    88: from /app/vendor/bundle/ruby/2.5.0/gems/bootsnap-1.3.2/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:29:in `require'
    87: from /app/vendor/bundle/ruby/2.5.0/gems/bootsnap-1.3.2/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:20:in `require_with_bootsnap_lfi'
    86: from /app/vendor/bundle/ruby/2.5.0/gems/bootsnap-1.3.2/lib/bootsnap/load_path_cache/loaded_features_index.rb:65:in `register'
    85: from /app/vendor/bundle/ruby/2.5.0/gems/bootsnap-1.3.2/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:21:in `block in require_with_bootsnap_lfi'
    84: from /app/vendor/bundle/ruby/2.5.0/gems/bootsnap-1.3.2/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:21:in `require'
    83: from /app/vendor/bundle/ruby/2.5.0/gems/railties-5.2.2/lib/rails/commands.rb:18:in `<main>'
    82: from /app/vendor/bundle/ruby/2.5.0/gems/railties-5.2.2/lib/rails/command.rb:46:in `invoke'
    81: from /app/vendor/bundle/ruby/2.5.0/gems/railties-5.2.2/lib/rails/command/base.rb:65:in `perform'
    80: from /app/vendor/bundle/ruby/2.5.0/gems/thor-0.20.3/lib/thor.rb:387:in `dispatch'
     6: from /app/vendor/bundle/ruby/2.5.0/gems/activesupport-5.2.2/lib/active_support/encrypted_configuration.rb:21:in `read'
     5: from /app/vendor/bundle/ruby/2.5.0/gems/activesupport-5.2.2/lib/active_support/encrypted_file.rb:42:in `read'
     4: from /app/vendor/bundle/ruby/2.5.0/gems/activesupport-5.2.2/lib/active_support/encrypted_file.rb:79:in `decrypt'
     3: from /app/vendor/bundle/ruby/2.5.0/gems/activesupport-5.2.2/lib/active_support/messages/rotator.rb:21:in `decrypt_and_verify'
     2: from /app/vendor/bundle/ruby/2.5.0/gems/activesupport-5.2.2/lib/active_support/message_encryptor.rb:157:in `decrypt_and_verify'
     1: from /app/vendor/bundle/ruby/2.5.0/gems/activesupport-5.2.2/lib/active_support/message_encryptor.rb:183:in `_decrypt'
/app/vendor/bundle/ruby/2.5.0/gems/activesupport-5.2.2/lib/active_support/message_encryptor.rb:206:in `rescue in _decrypt': ActiveSupport::MessageEncryptor::InvalidMessage (ActiveSupport::MessageEncryptor::InvalidMessage)

Also, I've read this topic Running a rails server in production locally (InvalidMessage error) and haven't found files master.key and credentials.yml.enc on my PC.

Also here is my production config:

Rails.application.configure do
  # Settings specified here will take precedence over those in config/application.rb.

  # Code is not reloaded between requests.
  config.cache_classes = true

  # Eager load code on boot. This eager loads most of Rails and
  # your application in memory, allowing both threaded web servers
  # and those relying on copy on write to perform better.
  # Rake tasks automatically ignore this option for performance.
  config.eager_load = true

  # Full error reports are disabled and caching is turned on.
  config.consider_all_requests_local       = false
  config.action_controller.perform_caching = true

  # Ensures that a master key has been made available in either ENV["RAILS_MASTER_KEY"]
  # or in config/master.key. This key is used to decrypt credentials (and other encrypted files).
  # config.require_master_key = true

  # Disable serving static files from the `/public` folder by default since
  # Apache or NGINX already handles this.
  config.public_file_server.enabled = ENV['RAILS_SERVE_STATIC_FILES'].present?

  # Compress JavaScripts and CSS.
  config.assets.js_compressor = :uglifier
  # config.assets.css_compressor = :sass

  # Do not fallback to assets pipeline if a precompiled asset is missed.
  config.assets.compile = false

  # `config.assets.precompile` and `config.assets.version` have moved to config/initializers/assets.rb

  # Enable serving of images, stylesheets, and JavaScripts from an asset server.
  # config.action_controller.asset_host = 'http://assets.example.com'

  # Specifies the header that your server uses for sending files.
  # config.action_dispatch.x_sendfile_header = 'X-Sendfile' # for Apache
  # config.action_dispatch.x_sendfile_header = 'X-Accel-Redirect' # for NGINX

  # Store uploaded files on the local file system (see config/storage.yml for options)
  config.active_storage.service = :local

  # Mount Action Cable outside main process or domain
  # config.action_cable.mount_path = nil
  # config.action_cable.url = 'wss://example.com/cable'
  # config.action_cable.allowed_request_origins = [ 'http://example.com', /http:\/\/example.*/ ]

  # Force all access to the app over SSL, use Strict-Transport-Security, and use secure cookies.
  config.force_ssl = true

  # Use the lowest log level to ensure availability of diagnostic information
  # when problems arise.
  config.log_level = :debug

  # Prepend all log lines with the following tags.
  config.log_tags = [ :request_id ]

  # Use a different cache store in production.
  # config.cache_store = :mem_cache_store

  # Use a real queuing backend for Active Job (and separate queues per environment)
  # config.active_job.queue_adapter     = :resque
  # config.active_job.queue_name_prefix = "sample_app_#{Rails.env}"

  config.action_mailer.perform_caching = false

  # Ignore bad email addresses and do not raise email delivery errors.
  # Set this to true and configure the email server for immediate delivery to raise delivery errors.
  # config.action_mailer.raise_delivery_errors = false

  # Enable locale fallbacks for I18n (makes lookups for any locale fall back to
  # the I18n.default_locale when a translation cannot be found).
  config.i18n.fallbacks = true

  # Send deprecation notices to registered listeners.
  config.active_support.deprecation = :notify

  # Use default logging formatter so that PID and timestamp are not suppressed.
  config.log_formatter = ::Logger::Formatter.new

  # Use a different logger for distributed setups.
  # require 'syslog/logger'
  # config.logger = ActiveSupport::TaggedLogging.new(Syslog::Logger.new 'app-name')

  if ENV["RAILS_LOG_TO_STDOUT"].present?
    logger           = ActiveSupport::Logger.new(STDOUT)
    logger.formatter = config.log_formatter
    config.logger    = ActiveSupport::TaggedLogging.new(logger)
  end

  config.action_mailer.raise_delivery_errors = true
  config.action_mailer.delivery_method = :smtp
  host = 'calm-spire-36002.herokuapp.com'
  config.action_mailer.default_url_options = { host: host }
  ActionMailer::Base.smtp_settings = {
    :address        => 'smtp.sendgrid.net',
    :port           => '587',
    :authentication => :plain,
    :user_name      => ENV['SENDGRID_USERNAME'],
    :password       => ENV['SENDGRID_PASSWORD'],
    :domain         => 'heroku.com',
    :enable_starttls_auto => true
  }

  # Do not dump schema after migrations.
  config.active_record.dump_schema_after_migration = false
end

And I'm receiving these errors when deploying to heroku:

Counting objects: 23, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (23/23), done.
Writing objects: 100% (23/23), 2.17 KiB | 1.08 MiB/s, done.
Total 23 (delta 16), reused 0 (delta 0)
remote: Compressing source files... done.
remote: Building source:
remote: 
remote: -----> Ruby app detected
remote: -----> Compiling Ruby/Rails
remote: -----> Using Ruby version: ruby-2.5.3
remote: -----> Installing dependencies using bundler 1.15.2
remote:        Running: bundle install --without development:test --path vendor/bundle --binstubs vendor/bundle/bin -j4 --deployment
remote:        Your Gemfile lists the gem pg (>= 0) more than once.
remote:        You should probably keep only one of them.
remote:        While it's not a problem now, it could cause errors if you change the version of one of them later.
remote:        Warning: the running version of Bundler (1.15.2) is older than the version that created the lockfile (1.17.2). We suggest you upgrade to the latest version of Bundler by running `gem install bundler`.
remote:        Fetching gem metadata from https://rubygems.org/.........
remote:        Fetching version metadata from https://rubygems.org/..
remote:        Fetching dependency metadata from https://rubygems.org/.
remote:        Using rake 12.3.2
remote:        Using concurrent-ruby 1.1.4
remote:        Using minitest 5.11.3
remote:        Using thread_safe 0.3.6
remote:        Using builder 3.2.3
remote:        Using erubi 1.8.0
remote:        Using mini_portile2 2.4.0
remote:        Using crass 1.0.4
remote:        Using rack 2.0.6
remote:        Using nio4r 2.3.1
remote:        Using websocket-extensions 0.1.3
remote:        Using mini_mime 1.0.1
remote:        Using arel 9.0.0
remote:        Using mimemagic 0.3.3
remote:        Using execjs 2.7.0
remote:        Using bcrypt 3.1.12
remote:        Using msgpack 1.2.6
remote:        Using rb-fsevent 0.10.3
remote:        Using ffi 1.10.0
remote:        Using will_paginate 3.1.6
remote:        Using bundler 1.15.2
remote:        Using coffee-script-source 1.12.2
remote:        Using method_source 0.9.2
remote:        Using thor 0.20.3
remote:        Using multi_json 1.13.1
remote:        Using pg 1.1.4
remote:        Using puma 3.12.0
remote:        Using tilt 2.0.9
remote:        Using turbolinks-source 5.2.0
remote:        Using tzinfo 1.2.5
remote:        Using nokogiri 1.10.0
remote:        Using rack-test 1.1.0
remote:        Using i18n 0.9.5
remote:        Using sprockets 3.7.2
remote:        Using websocket-driver 0.7.0
remote:        Using autoprefixer-rails 9.4.4
remote:        Using uglifier 4.1.20
remote:        Using marcel 0.3.3
remote:        Using mail 2.7.1
remote:        Using rb-inotify 0.10.0
remote:        Using coffee-script 2.4.1
remote:        Using turbolinks 5.2.0
remote:        Using bootstrap-will_paginate 1.0.0
remote:        Using bootsnap 1.3.2
remote:        Using loofah 2.2.3
remote:        Using activesupport 5.2.2
remote:        Using faker 1.7.3
remote:        Using sass-listen 4.0.0
remote:        Using rails-html-sanitizer 1.0.4
remote:        Using sass 3.7.3
remote:        Using bootstrap-sass 3.3.7
remote:        Using rails-dom-testing 2.0.3
remote:        Using globalid 0.4.2
remote:        Using activemodel 5.2.2
remote:        Using jbuilder 2.8.0
remote:        Using activerecord 5.2.2
remote:        Using actionview 5.2.2
remote:        Using actionpack 5.2.2
remote:        Using activejob 5.2.2
remote:        Using actioncable 5.2.2
remote:        Using activestorage 5.2.2
remote:        Using railties 5.2.2
remote:        Using sprockets-rails 3.2.1
remote:        Using actionmailer 5.2.2
remote:        Using coffee-rails 4.2.2
remote:        Using jquery-rails 4.3.3
remote:        Using rails 5.2.2
remote:        Using sass-rails 5.0.7
remote:        Bundle complete! 31 Gemfile dependencies, 68 gems now installed.
remote:        Gems in the groups development and test were not installed.
remote:        Bundled gems are installed into ./vendor/bundle.
remote:        Bundle completed (3.30s)
remote:        Cleaning up the bundler cache.
remote:        Your Gemfile lists the gem pg (>= 0) more than once.
remote:        You should probably keep only one of them.
remote:        While it's not a problem now, it could cause errors if you change the version of one of them later.
remote:        Warning: the running version of Bundler (1.15.2) is older than the version that created the lockfile (1.17.2). We suggest you upgrade to the latest version of Bundler by running `gem install bundler`.
remote:        The latest bundler is 2.0.1, but you are currently running 1.15.2.
remote:        To update, run `gem install bundler`
remote: -----> Installing node-v10.14.1-linux-x64
remote: -----> Detecting rake tasks
remote: -----> Preparing app for Rails asset pipeline
remote:        Running: rake assets:precompile
remote:        rake aborted!
remote:        ActiveSupport::MessageEncryptor::InvalidMessage: ActiveSupport::MessageEncryptor::InvalidMessage
remote:        /tmp/build_f2f890d3b7847e0537bd079a0d608e14/vendor/bundle/ruby/2.5.0/gems/activesupport-5.2.2/lib/active_support/message_encryptor.rb:206:in `rescue in _decrypt'
remote:        /tmp/build_f2f890d3b7847e0537bd079a0d608e14/vendor/bundle/ruby/2.5.0/gems/activesupport-5.2.2/lib/active_support/message_encryptor.rb:183:in `_decrypt'
remote:        /tmp/build_f2f890d3b7847e0537bd079a0d608e14/vendor/bundle/ruby/2.5.0/gems/activesupport-5.2.2/lib/active_support/message_encryptor.rb:157:in `decrypt_and_verify'
remote:        /tmp/build_f2f890d3b7847e0537bd079a0d608e14/vendor/bundle/ruby/2.5.0/gems/activesupport-5.2.2/lib/active_support/messages/rotator.rb:21:in `decrypt_and_verify'
remote:        /tmp/build_f2f890d3b7847e0537bd079a0d608e14/vendor/bundle/ruby/2.5.0/gems/activesupport-5.2.2/lib/active_support/encrypted_file.rb:79:in `decrypt'
remote:        /tmp/build_f2f890d3b7847e0537bd079a0d608e14/vendor/bundle/ruby/2.5.0/gems/activesupport-5.2.2/lib/active_support/encrypted_file.rb:42:in `read'
remote:        /tmp/build_f2f890d3b7847e0537bd079a0d608e14/vendor/bundle/ruby/2.5.0/gems/activesupport-5.2.2/lib/active_support/encrypted_configuration.rb:21:in `read'
remote:        /tmp/build_f2f890d3b7847e0537bd079a0d608e14/vendor/bundle/ruby/2.5.0/gems/activesupport-5.2.2/lib/active_support/encrypted_configuration.rb:33:in `config'
remote:        /tmp/build_f2f890d3b7847e0537bd079a0d608e14/vendor/bundle/ruby/2.5.0/gems/activesupport-5.2.2/lib/active_support/encrypted_configuration.rb:38:in `options'
remote:        /tmp/build_f2f890d3b7847e0537bd079a0d608e14/vendor/bundle/ruby/2.5.0/gems/activesupport-5.2.2/lib/active_support/core_ext/module/delegation.rb:271:in `method_missing'
remote:        /tmp/build_f2f890d3b7847e0537bd079a0d608e14/config/environments/production.rb:100:in `block in <main>'
remote:        /tmp/build_f2f890d3b7847e0537bd079a0d608e14/vendor/bundle/ruby/2.5.0/gems/railties-5.2.2/lib/rails/railtie.rb:216:in `instance_eval'
remote:        /tmp/build_f2f890d3b7847e0537bd079a0d608e14/vendor/bundle/ruby/2.5.0/gems/railties-5.2.2/lib/rails/railtie.rb:216:in `configure'
remote:        /tmp/build_f2f890d3b7847e0537bd079a0d608e14/config/environments/production.rb:1:in `<main>'
remote:        /tmp/build_f2f890d3b7847e0537bd079a0d608e14/vendor/bundle/ruby/2.5.0/gems/bootsnap-1.3.2/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:21:in `require'
remote:        /tmp/build_f2f890d3b7847e0537bd079a0d608e14/vendor/bundle/ruby/2.5.0/gems/bootsnap-1.3.2/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:21:in `block in require_with_bootsnap_lfi'
remote:        /tmp/build_f2f890d3b7847e0537bd079a0d608e14/vendor/bundle/ruby/2.5.0/gems/bootsnap-1.3.2/lib/bootsnap/load_path_cache/loaded_features_index.rb:65:in `register'
remote:        /tmp/build_f2f890d3b7847e0537bd079a0d608e14/vendor/bundle/ruby/2.5.0/gems/bootsnap-1.3.2/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:20:in `require_with_bootsnap_lfi'
remote:        /tmp/build_f2f890d3b7847e0537bd079a0d608e14/vendor/bundle/ruby/2.5.0/gems/bootsnap-1.3.2/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:29:in `require'
remote:        /tmp/build_f2f890d3b7847e0537bd079a0d608e14/vendor/bundle/ruby/2.5.0/gems/activesupport-5.2.2/lib/active_support/dependencies.rb:291:in `block in require'
remote:        /tmp/build_f2f890d3b7847e0537bd079a0d608e14/vendor/bundle/ruby/2.5.0/gems/activesupport-5.2.2/lib/active_support/dependencies.rb:257:in `load_dependency'
remote:        /tmp/build_f2f890d3b7847e0537bd079a0d608e14/vendor/bundle/ruby/2.5.0/gems/activesupport-5.2.2/lib/active_support/dependencies.rb:291:in `require'
remote:        /tmp/build_f2f890d3b7847e0537bd079a0d608e14/vendor/bundle/ruby/2.5.0/gems/railties-5.2.2/lib/rails/engine.rb:602:in `block (2 levels) in <class:Engine>'
remote:        /tmp/build_f2f890d3b7847e0537bd079a0d608e14/vendor/bundle/ruby/2.5.0/gems/railties-5.2.2/lib/rails/engine.rb:601:in `each'
remote:        /tmp/build_f2f890d3b7847e0537bd079a0d608e14/vendor/bundle/ruby/2.5.0/gems/railties-5.2.2/lib/rails/engine.rb:601:in `block in <class:Engine>'
remote:        /tmp/build_f2f890d3b7847e0537bd079a0d608e14/vendor/bundle/ruby/2.5.0/gems/railties-5.2.2/lib/rails/initializable.rb:32:in `instance_exec'
remote:        /tmp/build_f2f890d3b7847e0537bd079a0d608e14/vendor/bundle/ruby/2.5.0/gems/railties-5.2.2/lib/rails/initializable.rb:32:in `run'
remote:        /tmp/build_f2f890d3b7847e0537bd079a0d608e14/vendor/bundle/ruby/2.5.0/gems/railties-5.2.2/lib/rails/initializable.rb:61:in `block in run_initializers'
remote:        /tmp/build_f2f890d3b7847e0537bd079a0d608e14/vendor/bundle/ruby/2.5.0/gems/railties-5.2.2/lib/rails/initializable.rb:50:in `each'
remote:        /tmp/build_f2f890d3b7847e0537bd079a0d608e14/vendor/bundle/ruby/2.5.0/gems/railties-5.2.2/lib/rails/initializable.rb:50:in `tsort_each_child'
remote:        /tmp/build_f2f890d3b7847e0537bd079a0d608e14/vendor/bundle/ruby/2.5.0/gems/railties-5.2.2/lib/rails/initializable.rb:60:in `run_initializers'
remote:        /tmp/build_f2f890d3b7847e0537bd079a0d608e14/vendor/bundle/ruby/2.5.0/gems/railties-5.2.2/lib/rails/application.rb:361:in `initialize!'
remote:        /tmp/build_f2f890d3b7847e0537bd079a0d608e14/config/environment.rb:5:in `<main>'
remote:        /tmp/build_f2f890d3b7847e0537bd079a0d608e14/vendor/bundle/ruby/2.5.0/gems/bootsnap-1.3.2/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:21:in `require'
remote:        /tmp/build_f2f890d3b7847e0537bd079a0d608e14/vendor/bundle/ruby/2.5.0/gems/bootsnap-1.3.2/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:21:in `block in require_with_bootsnap_lfi'
remote:        /tmp/build_f2f890d3b7847e0537bd079a0d608e14/vendor/bundle/ruby/2.5.0/gems/bootsnap-1.3.2/lib/bootsnap/load_path_cache/loaded_features_index.rb:65:in `register'
remote:        /tmp/build_f2f890d3b7847e0537bd079a0d608e14/vendor/bundle/ruby/2.5.0/gems/bootsnap-1.3.2/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:20:in `require_with_bootsnap_lfi'
remote:        /tmp/build_f2f890d3b7847e0537bd079a0d608e14/vendor/bundle/ruby/2.5.0/gems/bootsnap-1.3.2/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:29:in `require'
remote:        /tmp/build_f2f890d3b7847e0537bd079a0d608e14/vendor/bundle/ruby/2.5.0/gems/activesupport-5.2.2/lib/active_support/dependencies.rb:291:in `block in require'
remote:        /tmp/build_f2f890d3b7847e0537bd079a0d608e14/vendor/bundle/ruby/2.5.0/gems/activesupport-5.2.2/lib/active_support/dependencies.rb:257:in `load_dependency'
remote:        /tmp/build_f2f890d3b7847e0537bd079a0d608e14/vendor/bundle/ruby/2.5.0/gems/activesupport-5.2.2/lib/active_support/dependencies.rb:291:in `require'
remote:        /tmp/build_f2f890d3b7847e0537bd079a0d608e14/vendor/bundle/ruby/2.5.0/gems/railties-5.2.2/lib/rails/application.rb:337:in `require_environment!'
remote:        /tmp/build_f2f890d3b7847e0537bd079a0d608e14/vendor/bundle/ruby/2.5.0/gems/railties-5.2.2/lib/rails/application.rb:520:in `block in run_tasks_blocks'
remote:        /tmp/build_f2f890d3b7847e0537bd079a0d608e14/vendor/bundle/ruby/2.5.0/gems/sprockets-rails-3.2.1/lib/sprockets/rails/task.rb:62:in `block (2 levels) in define'
remote:        /tmp/build_f2f890d3b7847e0537bd079a0d608e14/vendor/bundle/ruby/2.5.0/gems/rake-12.3.2/exe/rake:27:in `<top (required)>'
remote:        
remote:        Caused by:
remote:        OpenSSL::Cipher::CipherError: 
remote:        /tmp/build_f2f890d3b7847e0537bd079a0d608e14/vendor/bundle/ruby/2.5.0/gems/activesupport-5.2.2/lib/active_support/message_encryptor.rb:201:in `final'
remote:        /tmp/build_f2f890d3b7847e0537bd079a0d608e14/vendor/bundle/ruby/2.5.0/gems/activesupport-5.2.2/lib/active_support/message_encryptor.rb:201:in `_decrypt'
remote:        /tmp/build_f2f890d3b7847e0537bd079a0d608e14/vendor/bundle/ruby/2.5.0/gems/activesupport-5.2.2/lib/active_support/message_encryptor.rb:157:in `decrypt_and_verify'
remote:        /tmp/build_f2f890d3b7847e0537bd079a0d608e14/vendor/bundle/ruby/2.5.0/gems/activesupport-5.2.2/lib/active_support/messages/rotator.rb:21:in `decrypt_and_verify'
remote:        /tmp/build_f2f890d3b7847e0537bd079a0d608e14/vendor/bundle/ruby/2.5.0/gems/activesupport-5.2.2/lib/active_support/encrypted_file.rb:79:in `decrypt'
remote:        /tmp/build_f2f890d3b7847e0537bd079a0d608e14/vendor/bundle/ruby/2.5.0/gems/activesupport-5.2.2/lib/active_support/encrypted_file.rb:42:in `read'
remote:        /tmp/build_f2f890d3b7847e0537bd079a0d608e14/vendor/bundle/ruby/2.5.0/gems/activesupport-5.2.2/lib/active_support/encrypted_configuration.rb:21:in `read'
remote:        /tmp/build_f2f890d3b7847e0537bd079a0d608e14/vendor/bundle/ruby/2.5.0/gems/activesupport-5.2.2/lib/active_support/encrypted_configuration.rb:33:in `config'
remote:        /tmp/build_f2f890d3b7847e0537bd079a0d608e14/vendor/bundle/ruby/2.5.0/gems/activesupport-5.2.2/lib/active_support/encrypted_configuration.rb:38:in `options'
remote:        /tmp/build_f2f890d3b7847e0537bd079a0d608e14/vendor/bundle/ruby/2.5.0/gems/activesupport-5.2.2/lib/active_support/core_ext/module/delegation.rb:271:in `method_missing'
remote:        /tmp/build_f2f890d3b7847e0537bd079a0d608e14/config/environments/production.rb:100:in `block in <main>'
remote:        /tmp/build_f2f890d3b7847e0537bd079a0d608e14/vendor/bundle/ruby/2.5.0/gems/railties-5.2.2/lib/rails/railtie.rb:216:in `instance_eval'
remote:        /tmp/build_f2f890d3b7847e0537bd079a0d608e14/vendor/bundle/ruby/2.5.0/gems/railties-5.2.2/lib/rails/railtie.rb:216:in `configure'
remote:        /tmp/build_f2f890d3b7847e0537bd079a0d608e14/config/environments/production.rb:1:in `<main>'
remote:        /tmp/build_f2f890d3b7847e0537bd079a0d608e14/vendor/bundle/ruby/2.5.0/gems/bootsnap-1.3.2/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:21:in `require'
remote:        /tmp/build_f2f890d3b7847e0537bd079a0d608e14/vendor/bundle/ruby/2.5.0/gems/bootsnap-1.3.2/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:21:in `block in require_with_bootsnap_lfi'
remote:        /tmp/build_f2f890d3b7847e0537bd079a0d608e14/vendor/bundle/ruby/2.5.0/gems/bootsnap-1.3.2/lib/bootsnap/load_path_cache/loaded_features_index.rb:65:in `register'
remote:        /tmp/build_f2f890d3b7847e0537bd079a0d608e14/vendor/bundle/ruby/2.5.0/gems/bootsnap-1.3.2/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:20:in `require_with_bootsnap_lfi'
remote:        /tmp/build_f2f890d3b7847e0537bd079a0d608e14/vendor/bundle/ruby/2.5.0/gems/bootsnap-1.3.2/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:29:in `require'
remote:        /tmp/build_f2f890d3b7847e0537bd079a0d608e14/vendor/bundle/ruby/2.5.0/gems/activesupport-5.2.2/lib/active_support/dependencies.rb:291:in `block in require'
remote:        /tmp/build_f2f890d3b7847e0537bd079a0d608e14/vendor/bundle/ruby/2.5.0/gems/activesupport-5.2.2/lib/active_support/dependencies.rb:257:in `load_dependency'
remote:        /tmp/build_f2f890d3b7847e0537bd079a0d608e14/vendor/bundle/ruby/2.5.0/gems/activesupport-5.2.2/lib/active_support/dependencies.rb:291:in `require'
remote:        /tmp/build_f2f890d3b7847e0537bd079a0d608e14/vendor/bundle/ruby/2.5.0/gems/railties-5.2.2/lib/rails/engine.rb:602:in `block (2 levels) in <class:Engine>'
remote:        /tmp/build_f2f890d3b7847e0537bd079a0d608e14/vendor/bundle/ruby/2.5.0/gems/railties-5.2.2/lib/rails/engine.rb:601:in `each'
remote:        /tmp/build_f2f890d3b7847e0537bd079a0d608e14/vendor/bundle/ruby/2.5.0/gems/railties-5.2.2/lib/rails/engine.rb:601:in `block in <class:Engine>'
remote:        /tmp/build_f2f890d3b7847e0537bd079a0d608e14/vendor/bundle/ruby/2.5.0/gems/railties-5.2.2/lib/rails/initializable.rb:32:in `instance_exec'
remote:        /tmp/build_f2f890d3b7847e0537bd079a0d608e14/vendor/bundle/ruby/2.5.0/gems/railties-5.2.2/lib/rails/initializable.rb:32:in `run'
remote:        /tmp/build_f2f890d3b7847e0537bd079a0d608e14/vendor/bundle/ruby/2.5.0/gems/railties-5.2.2/lib/rails/initializable.rb:61:in `block in run_initializers'
remote:        /tmp/build_f2f890d3b7847e0537bd079a0d608e14/vendor/bundle/ruby/2.5.0/gems/railties-5.2.2/lib/rails/initializable.rb:50:in `each'
remote:        /tmp/build_f2f890d3b7847e0537bd079a0d608e14/vendor/bundle/ruby/2.5.0/gems/railties-5.2.2/lib/rails/initializable.rb:50:in `tsort_each_child'
remote:        /tmp/build_f2f890d3b7847e0537bd079a0d608e14/vendor/bundle/ruby/2.5.0/gems/railties-5.2.2/lib/rails/initializable.rb:60:in `run_initializers'
remote:        /tmp/build_f2f890d3b7847e0537bd079a0d608e14/vendor/bundle/ruby/2.5.0/gems/railties-5.2.2/lib/rails/application.rb:361:in `initialize!'
remote:        /tmp/build_f2f890d3b7847e0537bd079a0d608e14/config/environment.rb:5:in `<main>'
remote:        /tmp/build_f2f890d3b7847e0537bd079a0d608e14/vendor/bundle/ruby/2.5.0/gems/bootsnap-1.3.2/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:21:in `require'
remote:        /tmp/build_f2f890d3b7847e0537bd079a0d608e14/vendor/bundle/ruby/2.5.0/gems/bootsnap-1.3.2/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:21:in `block in require_with_bootsnap_lfi'
remote:        /tmp/build_f2f890d3b7847e0537bd079a0d608e14/vendor/bundle/ruby/2.5.0/gems/bootsnap-1.3.2/lib/bootsnap/load_path_cache/loaded_features_index.rb:65:in `register'
remote:        /tmp/build_f2f890d3b7847e0537bd079a0d608e14/vendor/bundle/ruby/2.5.0/gems/bootsnap-1.3.2/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:20:in `require_with_bootsnap_lfi'
remote:        /tmp/build_f2f890d3b7847e0537bd079a0d608e14/vendor/bundle/ruby/2.5.0/gems/bootsnap-1.3.2/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:29:in `require'
remote:        /tmp/build_f2f890d3b7847e0537bd079a0d608e14/vendor/bundle/ruby/2.5.0/gems/activesupport-5.2.2/lib/active_support/dependencies.rb:291:in `block in require'
remote:        /tmp/build_f2f890d3b7847e0537bd079a0d608e14/vendor/bundle/ruby/2.5.0/gems/activesupport-5.2.2/lib/active_support/dependencies.rb:257:in `load_dependency'
remote:        /tmp/build_f2f890d3b7847e0537bd079a0d608e14/vendor/bundle/ruby/2.5.0/gems/activesupport-5.2.2/lib/active_support/dependencies.rb:291:in `require'
remote:        /tmp/build_f2f890d3b7847e0537bd079a0d608e14/vendor/bundle/ruby/2.5.0/gems/railties-5.2.2/lib/rails/application.rb:337:in `require_environment!'
remote:        /tmp/build_f2f890d3b7847e0537bd079a0d608e14/vendor/bundle/ruby/2.5.0/gems/railties-5.2.2/lib/rails/application.rb:520:in `block in run_tasks_blocks'
remote:        /tmp/build_f2f890d3b7847e0537bd079a0d608e14/vendor/bundle/ruby/2.5.0/gems/sprockets-rails-3.2.1/lib/sprockets/rails/task.rb:62:in `block (2 levels) in define'
remote:        /tmp/build_f2f890d3b7847e0537bd079a0d608e14/vendor/bundle/ruby/2.5.0/gems/rake-12.3.2/exe/rake:27:in `<top (required)>'
remote:        Tasks: TOP => environment
remote:        (See full trace by running task with --trace)
remote: 
remote:  !
remote:  !     Precompiling assets failed.
remote:  !
remote:  !     Push rejected, failed to compile Ruby app.
remote: 
remote:  !     Push failed
remote: Verifying deploy...
remote: 
remote: !   Push rejected to cryptic-chamber-73265.
remote: 
To heroku.com:cryptic-chamber-73265.git
 ! [remote rejected] master -> master (pre-receive hook declined)
error: failed to push some refs to '[email protected]:cryptic-chamber-73265.git'

Answer

Javier Men&#233;ndez Rizo picture Javier Menéndez Rizo · Jan 20, 2019

Here are the docs for environmental security on rails https://guides.rubyonrails.org/security.html#environmental-security

In your case, you should have these files

config/master.key
config/credentials.yml.enc

Delete those files and then you can generate with this:

rails credentials:edit

Now the file master.key is ignored by your version control because it is the key rails use to decrypt the .enc, just commit your credentials.yml.enc and push it to heroku.

For master.key on heroku you can define the environment variable RAILS_MASTER_KEY on your heroku app and put the value of master.key on it.

Now to access the environments variables that you defined on your .enc file you must access through Rails.application.credentials

ActionMailer::Base.smtp_settings = {
    :address        => 'smtp.sendgrid.net',
    :port           => '587',
    :authentication => :plain,
    :user_name      => Rails.application.credentials.SENDGRID_USERNAME,
    :password       => Rails.application.credentials.SENDGRID_PASSWORD,
    :domain         => 'heroku.com',
    :enable_starttls_auto => true
}