Error: Cannot instantiate abstract class Drupal\Core\Database\Schema in Drupal\Core\Database\Connection->schema() (line 1386 of /core/lib/Drupal/Core/Database/Connection.php)
#0 /core/lib/Drupal/Core/Queue/DatabaseQueue.php(268): Drupal\Core\Database\Connection->schema()
#1 /modules/contrib/purge/src/Plugin/Purge/Queue/DatabaseQueue.php(286): Drupal\Core\Queue\DatabaseQueue->ensureTableExists()
#2 /modules/contrib/purge/src/Plugin/Purge/Queue/DatabaseQueue.php(41): Drupal\purge\Plugin\Purge\Queue\DatabaseQueue->ensureTableExists()
#3 /modules/contrib/purge/src/Plugin/Purge/Queue/DatabaseQueue.php(48): Drupal\purge\Plugin\Purge\Queue\DatabaseQueue->__construct(Object(Drupal\mysql\Driver\Database\mysql\Connection))
#4 /core/lib/Drupal/Core/Plugin/Factory/ContainerFactory.php(21): Drupal\purge\Plugin\Purge\Queue\DatabaseQueue::create(Object(Drupal\Core\DependencyInjection\Container), Array, 'database', Array)
#5 /core/lib/Drupal/Component/Plugin/PluginManagerBase.php(83): Drupal\Core\Plugin\Factory\ContainerFactory->createInstance('database', Array)
#6 /modules/contrib/purge/src/Plugin/Purge/Queue/QueueService.php(416): Drupal\Component\Plugin\PluginManagerBase->createInstance('database')
#7 /modules/contrib/purge/src/Plugin/Purge/Queue/QueueService.php(158): Drupal\purge\Plugin\Purge\Queue\QueueService->initializeQueue()
#8 /modules/contrib/purge/modules/purge_processor_lateruntime/src/EventSubscriber/LateRuntimeProcessor.php(87): Drupal\purge\Plugin\Purge\Queue\QueueService->claim()
#9 [internal function]: Drupal\purge_processor_lateruntime\EventSubscriber\LateRuntimeProcessor->onKernelTerminate(Object(Symfony\Component\HttpKernel\Event\TerminateEvent), 'kernel.terminat...', Object(Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher))
#10 /core/lib/Drupal/Component/EventDispatcher/ContainerAwareEventDispatcher.php(142): call_user_func(Array, Object(Symfony\Component\HttpKernel\Event\TerminateEvent), 'kernel.terminat...', Object(Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher))
#11 /mnt/www/html/nypsiteode17/vendor/symfony/http-kernel/HttpKernel.php(103): Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object(Symfony\Component\HttpKernel\Event\TerminateEvent), 'kernel.terminat...')
#12 /mnt/www/html/nypsiteode17/vendor/stack/builder/src/Stack/StackedHttpKernel.php(32): Symfony\Component\HttpKernel\HttpKernel->terminate(Object(Symfony\Component\HttpFoundation\Request), Object(Drupal\Core\Ajax\AjaxResponse))
#13 /core/lib/Drupal/Core/DrupalKernel.php(687): Stack\StackedHttpKernel->terminate(Object(Symfony\Component\HttpFoundation\Request), Object(Drupal\Core\Ajax\AjaxResponse))
#14 /index.php(22): Drupal\Core\DrupalKernel->terminate(Object(Symfony\Component\HttpFoundation\Request), Object(Drupal\Core\Ajax\AjaxResponse))
#15 {main}
Comments
Comment #2
avpadernoComment #3
avpadernoThis is an issue with the Purge module. It should be reported in their queue.
Comment #4
avpadernoComment #5
megha_kundar commentedFacing this issue
Comment #6
raileanu.nalexandru commentedI can replicate the same issue.
Comment #7
rahul_ commentedI am also facing same issue.
Comment #8
bkelly commentedI get this when deploying to Acquia.
Comment #9
qusai taha commentedI have the same issue on Acquia, and for the workaround:
https://support-acquia.force.com/s/article/add-workaround-for-Drupal-9-4...
Comment #10
scott_earnest commentedI was also experiencing the same issue the other day - thank you for the article link @Quasi Taha.
As I was getting ready to apply the workaround I noticed that the issue has resolved itself for me. Could some of the others on the thread check as well please?
The problem never happened locally - only when deployed to Acquia.
I was unable to run any Drush commands (cr, st, updb, cim) - all produced the "Cannot instantiate abstract class" error described above.
Also, I feel that the issue was related to Acquia hosting, as the article indicates, and with that in mind I don't think it's Purge module related, and will move out of that queue into Acquia. Please adjust if someone feels differently about that.