phpsymfonyheroku

Error during deployment of Symfony 5 on Heroku


I really need help for this one. I created an app (with login and signup) that allows you to monitor ongoing projects and their associated tasks. Each project has a user as creator. I deployed it on Heroku, when I create a project, I should be redirected to my account (/account) and have all the projects listed, but it does not work. I know the project is created because I can see its details on another URL like /project/[id]/details, but I can no longer go back to /account URL. I get this error on my website :

Oops! An Error Occurred
The server returned a "500 Internal Server Error".

Something is broken. Please let us know what you were doing when this error occurred. We will fix it as soon as possible. Sorry for any inconvenience caused.

my Heroku logs :

2022-05-17T10:13:06.508011+00:00 heroku[router]: at=info method=GET path="/account" host=ebi-tracker.herokuapp.com request_id=51d1ce91-7b3d-4619-9692-cd8fcb849910 fwd="77.198.36.214" dyno=web.1 connect=0ms service=23ms status=500 bytes=1113 protocol=https

2022-05-17T10:13:06.503594+00:00 app[web.1]: [2022-05-17T10:13:06.502577+00:00] deprecation.INFO: Deprecated: uasort(): Returning bool from comparison function is deprecated, return an integer less than, equal to, or greater than zero {"exception":"[object] (ErrorException(code: 0): Deprecated: uasort(): Returning bool from comparison function is deprecated, return an integer less than, equal to, or greater than zero at /app/vendor/twig/twig/src/Extension/CoreExtension.php:940)"} []

2022-05-17T10:13:06.506126+00:00 app[web.1]: {"message":"Matched route \"app_account\".","context":{"route":"app_account","route_parameters":{"_route":"app_account","_controller":"App\\Controller\\UserController::account"},"request_uri":"http://ebi-tracker.herokuapp.com/account","method":"GET"},"level":200,"level_name":"INFO","channel":"request","datetime":"2022-05-17T10:13:06.486637+00:00","extra":{}}

2022-05-17T10:13:06.506484+00:00 app[web.1]: {"message":"Checking for authenticator support.","context":{"firewall_name":"main","authenticators":1},"level":100,"level_name":"DEBUG","channel":"security","datetime":"2022-05-17T10:13:06.486973+00:00","extra":{}}

2022-05-17T10:13:06.506917+00:00 app[web.1]: {"message":"Checking support on authenticator.","context":{"firewall_name":"main","authenticator":"App\\Security\\LoginAuthenticator"},"level":100,"level_name":"DEBUG","channel":"security","datetime":"2022-05-17T10:13:06.486978+00:00","extra":{}}

2022-05-17T10:13:06.507429+00:00 app[web.1]: {"message":"Authenticator does not support the request.","context":{"firewall_name":"main","authenticator":"App\\Security\\LoginAuthenticator"},"level":100,"level_name":"DEBUG","channel":"security","datetime":"2022-05-17T10:13:06.486983+00:00","extra":{}}

2022-05-17T10:13:06.507973+00:00 app[web.1]: {"message":"Read existing security token from the session.","context":{"key":"_security_main","token_class":"Symfony\\Component\\Security\\Http\\Authenticator\\Token\\PostAuthenticationToken"},"level":100,"level_name":"DEBUG","channel":"security","datetime":"2022-05-17T10:13:06.499829+00:00","extra":{}}

2022-05-17T10:13:06.508459+00:00 app[web.1]: {"message":"User was reloaded from a user provider.","context":{"provider":"Symfony\\Bridge\\Doctrine\\Security\\User\\EntityUserProvider","username":"jnguessan2003@gmail.com"},"level":100,"level_name":"DEBUG","channel":"security","datetime":"2022-05-17T10:13:06.502157+00:00","extra":{}}

2022-05-17T10:13:06.509406+00:00 app[web.1]: {"message":"Deprecated: uasort(): Returning bool from comparison function is deprecated, return an integer less than, equal to, or greater than zero","context":{"exception":{"class":"ErrorException","message":"Deprecated: uasort(): Returning bool from comparison function is deprecated, return an integer less than, equal to, or greater than zero","code":0,"file":"/app/vendor/twig/twig/src/Extension/CoreExtension.php:940"}},"level":200,"level_name":"INFO","channel":"deprecation","datetime":"2022-05-17T10:13:06.502577+00:00","extra":{}}

2022-05-17T10:13:06.511950+00:00 app[web.1]: {"message":"Uncaught PHP Exception Twig\\Error\\RuntimeError: \"An exception has been thrown during the rendering of a template (\"The Symfony\\Polyfill\\Intl\\Icu\\IntlDateFormatter::__construct() method's argument $locale value 'fr' behavior is not implemented. Only the locale \"en\" is supported.  Please install the \"intl\" extension for full localization capabilities.\").\" at /tmp/build_4ffe4d79/templates/pages/account/index.html.twig line 29","context":{"exception":{"class":"Twig\\Error\\RuntimeError","message":"An exception has been thrown during the rendering of a template (\"The Symfony\\Polyfill\\Intl\\Icu\\IntlDateFormatter::__construct() method's argument $locale value 'fr' behavior is not implemented. Only the locale \"en\" is supported.  Please install the \"intl\" extension for full localization capabilities.\").","code":0,"file":"/tmp/build_4ffe4d79/templates/pages/account/index.html.twig:29","previous":{"class":"Symfony\\Polyfill\\Intl\\Icu\\Exception\\MethodArgumentValueNotImplementedException","message":"The Symfony\\Polyfill\\Intl\\Icu\\IntlDateFormatter::__construct() method's argument $locale value 'fr' behavior is not implemented. Only the locale \"en\" is supported.  Please install the \"intl\" extension for full localization capabilities.","code":0,"file":"/app/vendor/symfony/polyfill-intl-icu/IntlDateFormatter.php:148"}}},"level":500,"level_name":"CRITICAL","channel":"request","datetime":"2022-05-17T10:13:06.505321+00:00","extra":{}}

2022-05-17T10:13:06.512287+00:00 app[web.1]: {"message":"Stored the security token in the session.","context":{"key":"_security_main"},"level":100,"level_name":"DEBUG","channel":"security","datetime":"2022-05-17T10:13:06.506763+00:00","extra":{}}

2022-05-17T10:13:06.512571+00:00 app[web.1]: 10.1.27.78 - - [17/May/2022:10:13:06 +0000] "GET /account HTTP/1.1" 500 831 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:100.0) Gecko/20100101 Firefox/100.0

Solution

  • Uncaught PHP Exception Twig\Error\RuntimeError: "An exception has been thrown during the rendering of a template ("The Symfony\Polyfill\Intl\Icu\IntlDateFormatter::__construct() method's argument $locale value 'fr' behavior is not implemented. Only the locale "en" is supported. Please install the "intl" extension for full localization capabilities.

    So, install the intl extension.

    On Heroku you can do that by adding ext-intl as a dependency in your composer.json:

    {
        "require": {
            "ext-intl": "*"
        }
    }
    

    Then commit and redeploy.

    You might also have to enable an appropriate locale, but see if the above works on its own first.