Skip to content

500 instead of 404 when no homepage is defined in production #27945

Closed
@greg0ire

Description

@greg0ire

Symfony version(s) affected: 4.1.1

Description
I'm working on a microservice that does not have a homepage, because we have this policy of prefixing our APIs with /api. I didn't configuration a homepage, and while in dev, I get a welcome page aimed at developers, in production, I get a 500 because this welcome page is displayed by throwing a NoConfigurationException

Here is what I believe is the configuration responsible for this:

$code .= " throw new Symfony\Component\Routing\Exception\NoConfigurationException();\n";

How to reproduce

cd /tmp
composer create-project symfony/skeleton
cd skeleton
sed -i 's/dev/prod/' .env
php -S 127.0.0.1:8000 -t public
[Fri Jul 13 17:05:48 2018] PHP Fatal error:  Uncaught Symfony\Component\Routing\Exception\NoConfigurationException in /tmp/skeleton/var/cache/prod/srcProdProjectContainerUrlMatcher.php:65
Stack trace:
#0 /tmp/skeleton/var/cache/prod/srcProdProjectContainerUrlMatcher.php(21): srcProdProjectContainerUrlMatcher->doMatch('/', Array, Array)
#1 /tmp/skeleton/vendor/symfony/routing/Matcher/UrlMatcher.php(107): srcProdProjectContainerUrlMatcher->match('/')
#2 /tmp/skeleton/vendor/symfony/routing/Router.php(262): Symfony\Component\Routing\Matcher\UrlMatcher->matchRequest(Object(Symfony\Component\HttpFoundation\Request))
#3 /tmp/skeleton/vendor/symfony/http-kernel/EventListener/RouterListener.php(115): Symfony\Component\Routing\Router->matchRequest(Object(Symfony\Component\HttpFoundation\Request))
#4 /tmp/skeleton/vendor/symfony/event-dispatcher/EventDispatcher.php(212): Symfony\Component\HttpKernel\EventListener\RouterListener->onKernelRequest(Object(Symfony\Component\HttpKernel\Event\GetResponseEvent), 'kernel.request', Object(Symfony\Component\EventDispatcher\ in /tmp/skeleton/vendor/symfony/http-kernel/EventListener/RouterListener.php on line 139
[Fri Jul 13 17:05:48 2018] 127.0.0.1:51332 [500]: / - Uncaught Symfony\Component\Routing\Exception\NoConfigurationException in /tmp/skeleton/var/cache/prod/srcProdProjectContainerUrlMatcher.php:65
Stack trace:
#0 /tmp/skeleton/var/cache/prod/srcProdProjectContainerUrlMatcher.php(21): srcProdProjectContainerUrlMatcher->doMatch('/', Array, Array)
#1 /tmp/skeleton/vendor/symfony/routing/Matcher/UrlMatcher.php(107): srcProdProjectContainerUrlMatcher->match('/')
#2 /tmp/skeleton/vendor/symfony/routing/Router.php(262): Symfony\Component\Routing\Matcher\UrlMatcher->matchRequest(Object(Symfony\Component\HttpFoundation\Request))
#3 /tmp/skeleton/vendor/symfony/http-kernel/EventListener/RouterListener.php(115): Symfony\Component\Routing\Router->matchRequest(Object(Symfony\Component\HttpFoundation\Request))
#4 /tmp/skeleton/vendor/symfony/event-dispatcher/EventDispatcher.php(212): Symfony\Component\HttpKernel\EventListener\RouterListener->onKernelRequest(Object(Symfony\Component\HttpKernel\Event\GetResponseEvent), 'kernel.request', Object(Symfony\Component\EventDispatcher\ in /tmp/skeleton/vendor/symfony/http-kernel/EventListener/RouterListener.php on line 139
[1]    7903 segmentation fault (core dumped)  php -S 127.0.0.1:8000 -t public


Possible Solution
Catch the exception somehwere?

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions