Dumping the ALIASES was a great advise as it lead me to the cause : caching.
For the same set of routes:
$f3->route('GET @home: /', 'Controller\Inside->login');
$f3->route('GET @stage-entreprise: /stage-entreprise.html', 'Controller\Outside->stagesEntreprise');
$f3->route('GET @getbadges: /get-badges/@username', 'Controller\CodeAcademy->getBadges');
$f3->route('GET|POST @login: /login', 'Controller\Inside->login');
$f3->route('GET @logout: /logout', 'Controller\Inside->logout');
$f3->route('GET @student: /startup/@promoid/student/@studentid', 'Controller\Inside->start');
$f3->route('GET @start: /startup', 'Controller\Inside->start');
$f3->route('GET @external_sync: /sync', 'Controller\Inside->sync');
$f3->route('GET /binome/@amount', 'Controller\Binome->random');
$f3->route('GET @binome_generator_app: /binome', 'Controller\Binome->random');
$f3->route('GET|POST @github_callback: /sso/callback', 'Controller\Inside->callback');
locally dumping $f3->ALIASES shows this :
Array
(
[home] => /
[stage-entreprise] => /stage-entreprise.html
[getbadges] => /get-badges/@username
[login] => /login
[logout] => /logout
[student] => /startup/@promoid/student/@studentid
[startup] => /startup/@promoid
[start] => /startup
[external_sync] => /sync
[binome_generator_app] => /binome
[github_callback] => /sso/callback
)
Whereas on prod I get this :
Array
(
[home] => /
[stage-entreprise] => /stage-entreprise.html
[getbadges] => /get-badges/@username
[login] => /login
[logout] => /logout
[student] => /promo/@promoid/student/@studentid
[start] => /start
[external_sync] => /sync
[binome_generator_app] => /binome
[github_callback] => /sso/callback
)
So indeed, the startup alias is missing, and the "startup" URL is wrong. It is actually outdated (the student route is an old one). Apparently the route change did not provoke a refresh of the cache. So I manually emptied the /tmp folder and... it solved it.
Thank you !!