Route 'appname/index' not found

v2026

Route ‘appname/index’ not found.

all “routes” are not being found. not sure why. not sure due to all the prior issues generating?

in order to do testing, this is a sub-folder in my “2025” apps htdocs folder

xamp\htdocs ==> v2025
xamp\htdocs\2026app

in .htaccess added: RewriteBase /2026app

Symfony\Component\Routing\Exception\ResourceNotFoundException:
No routes found for “/appname/index/”.

A post was split to a new topic: CurrentUserID() and Global Functions are work

A post was split to a new topic: Virtual fields don’t work

There is no such route (ending with /index/). In v2025, there was /index which redirects to /. In v2026 there is only /.

doesn’t matter what is entered or not.. still same outcome.

enter: /localhost/appname
Symfony\Component\HttpKernel\Exception\NotFoundHttpException:
No route found for “GET http://localhost/app/dashboard2

where dashboard2 is actually the “default” page

If Symfony reports no such route, it did not discover such route. You may check:

  1. The dashboard controller, see if the route is really #[Route('/dashboard2', ...)].
  2. If you have not enabled the option “Lowercase routes”, your route may be in mixed case, e.g. your dashboard is named “Dashboard2” in your project.
  3. If you have other errors when starting the app, the routes might not be built correctly. Do not ignore errors and continue testing.
  4. If you app can start without errors, you may check the routes by console command, see DebuggingConsole Commands, e.g.
# List all configured application routes.
php -d memory_limit=-1 bin/console router:debug

i think i was able to get the full app gen to complete, after removing the composite keys.

but it still doesn’t fire up.
running:
http://localhost/appname/
returns:
http://localhost/appname/dashboard2

which returns:
# No route found for "GET http://localhost/appname/dashboard2

ran:
php -d memory_limit=-1 bin/console router:debug

returned:
Do you want to run "router:match" instead? (y)

debug is enabled in the build, and convert to lowercase is enabled

the root htdocs is my current test 2025 project, added 2026 version as a directory underneath the root localhost and added
RewriteBase /appname
to the htaccess file.

regenerated the htaccess, so there are no 2025 attributes in it.
no difference or change, continues to return no routes found..

i can see the base routes in the AppController.php, as well as the controllers for all the various forms, appears all vendor modules are loaded.

if this is correct, ran:
php -d memory_limit=-1 bin/console router:match dashboard2

it returned:
[ERROR] None of the routes match the path "dashboard2"

i tried some others, privacy, login, logout, 2fa etc same results

  1. There is no need to use RewriteBase in .htaccess since v2024 (see URL Rewrite), you can remove it.
  2. I provided a wrong command, it should be:
    php -d memory_limit=-1 bin/console debug:router
    See DebuggingConsole Commands and/or Symfony docs for more info.
  3. Your command for matching the route should be:
    php -d memory_limit=-1 bin/console router:match /dashboard2
    If the route exists, you’ll see detailed info of the route similar to: (example from demo project)

 [OK] Route "custom.home" matches

+--------------+-------------------------------------------------------------+
| Property     | Value                                                       |
+--------------+-------------------------------------------------------------+
| Route Name   | custom.home                                                 |
| Path         | /home/{params}                                              |
| Path Regex   | {^/home(?:/(?P<params>.+))?$}sDu                            |
| Host         | ANY                                                         |
| Host Regex   |                                                             |
| Scheme       | ANY                                                         |
| Method       | GET|POST|OPTIONS                                            |
| Requirements | params: .+                                                  |
| Class        | Symfony\Component\Routing\Route                             |
| Defaults     | _controller: PHPMaker2026\Demo2026Demosite\HomeController() |
|              | params: NULL                                                |
| Options      | compiler_class: Symfony\Component\Routing\RouteCompiler     |
|              | utf8: true                                                  |
+--------------+-------------------------------------------------------------+

ok thanks,

it appears the app is coming to life.

it looks like there are a bunch of routes when the command ran, i didn’t see the /dashboard2 route, which i can visually see the files for it in the various folders.

[edit] but it looks like in 2026 - it removed the “2” and is /dashboard (in 2025 it was created as dasboard2)

i can run register/resetpassword/login, etc.. they display but attempting to login:

on the login page:
Exception: Call to a member function setLanguage() on null File: C:\xampp\htdocs\documanage2026\src\LoginListener.php:189

i have 5 languages, and they appear to be loading when i switch between them

looking at the network debug:

Unable to find the controller for path “/login1fa”. The route is wrongly configured.

looks like its failing at the login1fa

i can see:
[OK] Route “login1fa” matches

update:
issue is in LoginListerner.php

Call to a member function setLanguage() on null Error in src/LoginListener.php (line 189)

userloggingIn():

global $Security, $Language, $gsFormError;  
$lang = _getUserInfoByUserName("GUI_Lang", $userName);        
if($lang == "" || $lang == null)             
 $lang = $def_lang;        
$Language->setLanguage($lang);

it appears all the globals are now NULL at this stage.

Note that most global variables are removed, see Migrating to v2026 → Deprecated and Removed:

Global variables are removed. If you still need to use the old global variables (e.g. $DECIMAL_SEPARATOR), you can use HttpContext('DECIMAL_SEPARATOR') instead.

Avoid global variables. Use properties available in the context. In your case, since userLoggingIn, userLoggedIn and userLoginError (methods for the corresponding server events) are generated in the LoginListener, you can reuse the properties of the class (see the generated source), e.g. you can simply use $this->language, $this->security now.

$gsFormError is out-dated and should be removed. If you want to return custom error message, you may throw CustomUserMessageAuthenticationException, e.g.

throw new CustomUserMessageAuthenticationException('Your error message');