/civicrm-core/CRM/Utils/System/Drupal8.php autoload.php path issue 5.16.3
line 419. Relies on cmsRootPath
Standard drupal installation cms path (cmsRoot) is now [drupal root]/web.
Drupal8.php now looks for autoload as [cms.root]//autoload.php (line 419)
Unless you symlink autoload.php from ../vendor/autoload.php this fails to find autoload.php.
Suggest an if block that first tries
require_once "autoload.php"; and if that fails (vendor directory is not in php's include_path) then look for it in a better place than cmsRoot. As well [cms.root] has a trailing slash so the forward slash in the
$autoloader = require_once $root."/autoload.php" is unnecessary.
vendor is not supposed to be accessible in the web root, so for anyone who's vendor directory is not the web root, and is in a directory one directory level up (out of web root) Drupal8.php won't find autoload.php.
I'm not sure of the Drupal8.php's history, but changes related to the path to autoload.php between 5.15.1 and 5.16.3 and broke things.
If you change the [cms.root] so Drupal8.php can find autoload.php the rest of civi breaks. If I set this path properly in Drupal8.php everything works.