KeystoneJS Configuration Error: Please provide a `cookie secret` value for session encryption.

KeystoneJS のアプリを Heroku へ deploy したところ KeystoneJS Configuration Error: Please provide a `cookie secret` value for session encryption. というエラーが発生しました。

原因は、環境変数 COOKIE_SECRET を設定していなかっただけだったのですが、解決方法を詳しくご紹介します。

KeystoneJS Configuration Error

Please provide a `cookie secret` value for session encryption. と書かれているとおり、Cookie のシークレットが環境変数にセットされてないためサーバーエラーが発生していたようでした。

エラーメッセージ

app[web.1]: Please provide a `cookie secret` value for session encryption.
app[web.1]: KeystoneJS Configuration Error:
app[web.1]: 
heroku[web.1]: State changed from starting to crashed
heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/" host=yourapp.herokuapp.com request_id=ea5e5a58-56bb-4d49-a78d-accc4f13962e

解決方法

開発環境では .env ファイルに記載されている COOKIE_SECRET という値を、本番環境でも環境変数をセットして、サーバーを restart すれば解決します。

COOKIE_SECRET=YOUR_COOKIE_SECRET_XXX

今回の場合は Heroku アプリなので、

heroku restart --app your_app_name

というような command で再起動すれば OK です。