Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Configuration error[Application secret not set]

I got this error running Play 2.4 server in production mode:

play.api.UnexpectedException: Unexpected exception[ProvisionException: Unable to provision, see the following errors:

1) Error in custom provider, @6mh5cjo5l: Configuration error
  while locating play.api.libs.CryptoConfigParser
  while locating play.api.libs.CryptoConfig

...

Caused by: play.api.PlayException: Configuration error[Application secret not set]

How to fix?

like image 939
bjfletcher Avatar asked Mar 28 '26 15:03

bjfletcher


1 Answers

The default Play template uses the following:

play.crypto.secret="changeme"

in the application.conf which needs to be changed for use in production. Play provides an utility to generate a random secret for you:

./activator playGenerateSecret

with which you can then populate as an environment variable:

APPLICATION_SECRET=...

and in conf/application.conf ensure the following:

play.crypto.secret="changeme"
play.crypto.secret=${?APPLICATION_SECRET}

which as the Play documentation explains:

The second line in that configuration sets the secret to come from an environment variable called APPLICATION_SECRET if such an environment variable is set, otherwise, it leaves the secret unchanged from the previous line.

Then the error will go away.

like image 89
bjfletcher Avatar answered Mar 31 '26 04:03

bjfletcher



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!