0

After updating to Drupal 8.4 I now have an error in my browser when trying to load my Drupal site:

Error: Class '\Drupal\rest\PathProcessor\PathProcessorEntityResourceBC' not found in Drupal\Component\DependencyInjection\Container->createService() (line 262 of core/lib/Drupal/Component/DependencyInjection/Container.php)

If I execute a drush or drupal console command the error is the same but with more of a stacktrace.

I upgraded to Drush 9 which simplifies the error a bit more:

Service 'rest.path_processor_entity_resource_bc' for consumer 'path_processor_manager' does not implement Drupal\Core\PathProcessor\InboundPathProcessorInterface.

It looks like I have some dependency missing somewhere. I'm not sure how to track it down.

I have tried "composer install", "composer update", and removing the vendor directory and re-installing the composer packages but nothing has worked yet.

Has anyone had this error or know how to get the missing PathProcessorEntityResourceBC class?

  • How, exactly, did you update to 8.4? – Patrick Kenny Oct 9 '17 at 14:23
  • I updated using drush (8.1 at the time) "drush up". Then I got some similar errors after the update. I managed to get passed the errors at the time by installing some drush dependency via composer and I got 8.4 working. I then committed & pushed my changes, and this morning I pulled my changes (of working 8.4) and updated the database with the latest version - and now I have the errors again (but not sure if they are the same missing classes that I had before). Basically I have my site on 2 machines, working on 1 and broken on the other. The code & database is exactly the same. – Rick Bergmann Oct 9 '17 at 14:44
  • Is core installed via composer? If so, drush up will break things. In that case, I would revert to a backup and then update core through composer. – Patrick Kenny Oct 9 '17 at 14:46
  • I can't remember exactly how it was installed, (probably just downloaded and unzipped core but possible that I installed it via composer - it's the only site I've had trouble with using 'drush up' on a few occasions) so that's good to know. Thanks, I will revert or post the answer if I find the problem. – Rick Bergmann Oct 9 '17 at 14:55
0

I have fixed the error by replacing the 'core' directory with the latest 8.4.0 version. I then checked the git log and differences which were found in these files:

modified:   core/scripts/drupal.sh
modified:   core/scripts/password-hash.sh
modified:   core/scripts/rebuild_token_calculator.sh
modified:   core/scripts/run-tests.sh
modified:   core/scripts/update-countries.sh

The differences were similar for each file, for example:

--git a/core/scripts/update-countries.sh b/core/scripts/update-countries.sh

I'm not sure exactly how and why this fixed the missing class, but it seems like I have some differences between the 2 versions of the site.

I then added the changes into git on a new branch and after switching between the 2 branches I don't get the fatal error any more (with or without the updated files).

It's possible that something was cached and as my site and drush was broken I was unable to clear the cache, refreshing the core files must have fixed it.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.