Rails で config/credentials.yml.enc と config/master.key のペアが不整合である場合、config/ の YAML の設定が読み込まれないことがある

結論

標題の通りですが、config/credentials.yml.enc の復号に失敗すると、config/ にある YAML が読み込まれないことがあります。私の場合は config/storage.yml が読み込まれませんでした。

確認方法

確認方法は簡単で、credentials.yml.enc を編集しようとしてみればよいです。

$ bundle exec rails credentials:edit

上記のコマンドを実行した際に ActiveSupport::MessageEncryptor::InvalidMessage (ActiveSupport::MessageEncryptor::InvalidMessage) というエラーが出たら、復号に失敗しています。

厳密な話

  • Used as the base secret for all MessageVerifiers in Rails, including the one protecting cookies. なので、注意が必要です
# Used as the base secret for all MessageVerifiers in Rails, including the one protecting cookies.
secret_key_base: hogehogehogehogehogehogehogehoge

補足

これで 6時間 溶かしました……。

Powered by はてなブログ