【rails】Heroku 「error:0308010C:digital envelope routines::unsupported」
Herokuにデプロイするとエラーが起こる
前回、node-sassのバージョンに関するエラーを解消するも新たなエラーが発生
備忘録としてエラー解消方法を残しておく
開発環境
ruby 2.7.7
Rails 6.0.6.1
MacOS sonoma14.5
エラー内容
Waiting on build...
-----> Building on the Heroku-20 stack
# 長文すぎるので割愛
!
! Precompiling assets failed.
!
! Push rejected, failed to compile Ruby app.
! Push failed
あれ?どれがエラー?となったが、「Precompiling assets failed.」がエラーらしい
Precompiling assets failed.
このエラーをまずGoogle検索したところ、こちらの記事を発見
[
参考
[Rails] herokuデプロイエラー Precompiling assets failed. – Qiita
Qiita
](https://qiita.com/koda_7932/items/63061c197aabf1dafb0e)
でも詳細なエラー内容は違うみたいなので、発生したエラーのログをもっとよく見てみる
Error: error:0308010C:digital envelope routines::unsupported
ログを遡っていくと、途中でポツンとエラー文があることを発見
# 308行目
Error: error:0308010C:digital envelope routines::unsupported
chatGPTによると、以下が原因らしい
- Node.jsのバージョン17以上で、OpenSSL 3がデフォルトで使われるようになったこと
- 上記によってライブラリが非サポートとなったこと
前回、webpackerのバージョンを上げたため、Nodejsのバージョンにも影響が出てしまった・・?
開発環境を考慮してワード検索する
「Error: error:0308010C:digital envelope routines::unsupported」
上記のエラー文言でGoogle検索していると、他言語の記事が多く出てくる
他言語の記事を読むも解決策や修正方法が分からず、デイトラチャットで質問
「自分の環境と同じ状況でエラーが出ている記事を探すこと」をアドバイスいただく
(開発中に他言語も出てくるのかと混乱していたので助かりました)
あらためて「Heroku」も含めて検索したところ、すぐにこちらの記事を発見
[

参考
【Heroku】 error:0308010C デプロイ失敗 – Qiita
Qiita
](https://qiita.com/mon65_/items/d218fccdcc5c425db373)
[

参考
【Heroku】 error:0308010C が発生してデプロイに失敗する場合の解決策
Zenn
](https://zenn.dev/yutonishi/articles/04d617d67eed73)
解決方法
Heroku側で環境の設定
- Heroku画面からSettingsを開く
- Config VarsのReveal Config Varsをクリック
- 以下を追加(Add)する
| KEY | VALUE |
|---|---|
| NOTE_OPTIONS | –openssl-legacy-provider |
production.rbに環境変数を追加
config/environments/production.rbを開く
ENV['NODE_OPTIONS'] = '--openssl-legacy-provider'
これによりエラーが解消された!
ようやくデプロイ成功!!

お疲れさまでした〜
#DAY26