This process is quite costly to the render process on mobile browsers so it is disabled.

See this post:
How to replicate background-attachment fixed on iOS

Background-attachment: fixed is not working in iPad
I give up.

The problem is with the overrided Twig 404 template. It is overrided in a default way by creating an error404.html.twig under the /app/Resources/TwigBundle/views directory.

The template itself does not contain any irregular or complex logic: just a layout with some translated text (|trans) and a menu with several links.

The problem is, that I can't get app.user object (returned as NULL) or current app.request.locale (always returned as default locale) inside this template.

I have even tried to override the twig exception controller and dump a current locale (Request::getLocale()) or get user - the results are the same - default locale and NULL for user.

Then I decided to dig deeper and found a dozens of listeners (locale listeners, exception liteners, ...) and tried to debug/fix/test there, but I didn't proceed any further.

By the way, I have overrided the 500 error page too, and everything is fine there. Well I guess that when 500 error (exception) is thrown, the symfony has already set up user/locale/etc, because it already has got to the target (controller/action) and other listeners been already executed. But 404 error (NotFoundHttpException) is being thrown BEFORE Symfony targets the action...

Some words about project: symfony 2.4.8, doctrine, Gedmo extensions/stof bundle, JMS i18n routing bundle.

Symfony version: v2.4.8
JMS I18n Routing bundle: 1.1.1

Appreciate your help.
