LoginSignup
1
1

More than 1 year has passed since last update.

rails new 時に "ActiveSupport::EncryptedFile::InvalidKeyLengthError" エラーが出た時の対応

Posted at

タイミングは rails new に限りませんが、rails でコマンドを叩いた時に以下のようにActiveSupport::EncryptedFile::InvalidKeyLengthError が出ることがあったので対処方法を書きます。

$ rails new xxxxx
/Users/yyyyyy/.rbenv/versions/3.0.3/lib/ruby/gems/3.0.0/gems/activesupport-7.0.1/lib/active_support/encrypted_file.rb:114:in `check_key_length': Encryption key must be exactly 32 characters. (ActiveSupport::EncryptedFile::InvalidKeyLengthError)
# 環境情報
$ ruby -v
ruby 3.0.3p157 (2021-11-24 revision 3fb7d2cadc) [arm64-darwin21]
$ rails -v
Rails 7.0.1

原因

環境変数に設定していた RAILS_MASTER_KEY が適切な文字数 (=32) ではなかったことが原因でした。

$ export -p | grep RAILS_MASTER_KEY
declare -x RAILS_MASTER_KEY="hogehoge" 👈 ここ

背景

検証中、ローカル端末の ~/.bash_profile 内で設定している環境変数のうち
RAILS_MASTER_KEY に一時的に適当な値を設定していました。
(Rails 5.2 以上で実装された credentials.yml と master.key の仕組みで使う環境変数)

しかし RAILS_MASTER_KEY は 32 文字であるという制限事項が設けられているため、適当な値をセットしていると弾かれる仕組みのようです。

対策

検証で一時的に適当な値をセットする際は、RAILS_MASTER_KEY には 32 文字の文字列をセットしましょう。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1