まとめ
Railsアプリで認証などに bcrypt (https://rubygems.org/gems/bcrypt )を使っている場合、バージョンが3.1.10以下だとUbuntu20.04では動作しないのでアップデートが必要。
こんなエラーが出る。
BCrypt::Errors::InvalidHash (invalid hash):
現時点では下記で対応すると解消する。
gem 'bcrypt', '3.1.16'
経緯
Herokuにて、StackをHeroku-18(Ubuntu 18.04ベース)からHeroku-20(Ubuntu 20.04ベース)にアップデートする際に発生しましたが、エラーメッセージでググっても(自分のググり方が悪く)直接の原因をすぐ探せなかったので記事にしてみました。
開発時のOSを本番と合わせておくことで早期発見対応できるはず。
参考)
https://github.com/bcrypt-ruby/bcrypt-ruby/issues/225
https://github.com/bcrypt-ruby/bcrypt-ruby/issues/226