With book, media, and media library installed, the "Add media" form sometimes fails.
Note that the content does not need to be in a book in order for this failure to occur.
Location: /node/1/edit?_wrapper_format=drupal_ajax&ajax_form=1
Message:
TypeError: Argument 1 passed to Drupal\book\BookManager::addParentSelectFormElements() must be of the type array, null given, called in /drupal-8.7.1/core/modules/book/src/BookManager.php on line 201 in Drupal\book\BookManager->addParentSelectFormElements() (line 357 of /drupal-8.7.1/core/modules/book/src/BookManager.php) #0 /drupal-8.7.1/core/modules/book/src/BookManager.php(201): Drupal\book\BookManager->addParentSelectFormElements(NULL) #1 /drupal-8.7.1/core/modules/book/book.module(150): Drupal\book\BookManager->addFormElements(Array, Object(Drupal\Core\Form\FormState), Object(Drupal\node\Entity\Node), Object(Drupal\Core\Session\AccountProxy), true) #2 /drupal-8.7.1/core/lib/Drupal/Core/Extension/ModuleHandler.php(539): book_form_node_form_alter(Array, Object(Drupal\Core\Form\FormState), 'node_page_edit_...') #3 /drupal-8.7.1/core/lib/Drupal/Core/Form/FormBuilder.php(835): Drupal\Core\Extension\ModuleHandler->alter('form', Array, Object(Drupal\Core\Form\FormState), 'node_page_edit_...') #4 /drupal-8.7.1/core/lib/Drupal/Core/Form/FormBuilder.php(417): Drupal\Core\Form\FormBuilder->prepareForm('node_page_edit_...', Array, Object(Drupal\Core\Form\FormState)) #5 /drupal-8.7.1/core/lib/Drupal/Core/Form/FormBuilder.php(626): Drupal\Core\Form\FormBuilder->rebuildForm('node_page_edit_...', Object(Drupal\Core\Form\FormState), Array) #6 /drupal-8.7.1/core/lib/Drupal/Core/Form/FormBuilder.php(319): Drupal\Core\Form\FormBuilder->processForm('node_page_edit_...', Array, Object(Drupal\Core\Form\FormState)) #7 /drupal-8.7.1/core/lib/Drupal/Core/Controller/FormController.php(93): Drupal\Core\Form\FormBuilder->buildForm('node_page_edit_...', Object(Drupal\Core\Form\FormState)) #8 [internal function]: Drupal\Core\Controller\FormController->getContentResult(Object(Symfony\Component\HttpFoundation\Request), Object(Drupal\Core\Routing\RouteMatch)) #9 /drupal-8.7.1/core/lib/Drupal/Core/EventSubscriber/EarlyRenderingControllerWrapperSubscriber.php(123): call_user_func_array(Array, Array) #10 /drupal-8.7.1/core/lib/Drupal/Core/Render/Renderer.php(582): Drupal\Core\EventSubscriber\EarlyRenderingControllerWrapperSubscriber->Drupal\Core\EventSubscriber\{closure}() #11 /drupal-8.7.1/core/lib/Drupal/Core/EventSubscriber/EarlyRenderingControllerWrapperSubscriber.php(124): Drupal\Core\Render\Renderer->executeInRenderContext(Object(Drupal\Core\Render\RenderContext), Object(Closure)) #12 /drupal-8.7.1/core/lib/Drupal/Core/EventSubscriber/EarlyRenderingControllerWrapperSubscriber.php(97): Drupal\Core\EventSubscriber\EarlyRenderingControllerWrapperSubscriber->wrapControllerExecutionInRenderContext(Array, Array) #13 /drupal-8.7.1/vendor/symfony/http-kernel/HttpKernel.php(151): Drupal\Core\EventSubscriber\EarlyRenderingControllerWrapperSubscriber->Drupal\Core\EventSubscriber\{closure}() #14 /drupal-8.7.1/vendor/symfony/http-kernel/HttpKernel.php(68): Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object(Symfony\Component\HttpFoundation\Request), 1) #15 /drupal-8.7.1/core/lib/Drupal/Core/StackMiddleware/Session.php(57): Symfony\Component\HttpKernel\HttpKernel->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true) #16 /drupal-8.7.1/core/lib/Drupal/Core/StackMiddleware/KernelPreHandle.php(47): Drupal\Core\StackMiddleware\Session->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true) #17 /drupal-8.7.1/core/modules/page_cache/src/StackMiddleware/PageCache.php(106): Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true) #18 /drupal-8.7.1/core/modules/page_cache/src/StackMiddleware/PageCache.php(85): Drupal\page_cache\StackMiddleware\PageCache->pass(Object(Symfony\Component\HttpFoundation\Request), 1, true) #19 /drupal-8.7.1/core/lib/Drupal/Core/StackMiddleware/ReverseProxyMiddleware.php(47): Drupal\page_cache\StackMiddleware\PageCache->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true) #20 /drupal-8.7.1/core/lib/Drupal/Core/StackMiddleware/NegotiationMiddleware.php(52): Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true) #21 /drupal-8.7.1/vendor/stack/builder/src/Stack/StackedHttpKernel.php(23): Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true) #22 /drupal-8.7.1/core/lib/Drupal/Core/DrupalKernel.php(693): Stack\StackedHttpKernel->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true) #23 /drupal-8.7.1/index.php(19): Drupal\Core\DrupalKernel->handle(Object(Symfony\Component\HttpFoundation\Request)) #24 {main}.
An if ($node->book)
statement around the following pieces of BookManager->addFormElements seems to make everything work properly again:
$form['book'] = [
'#type' => 'details',
'#title' => $this->t('Book outline'),
'#weight' => 10,
'#open' => !$collapsed,
'#group' => 'advanced',
'#attributes' => [
'class' => ['book-outline-form'],
],
'#attached' => [
'library' => ['book/drupal.book'],
],
'#tree' => TRUE,
];
foreach (['nid', 'has_children', 'original_bid', 'parent_depth_limit'] as $key) {
$form['book'][$key] = [
'#type' => 'value',
'#value' => $node->book[$key],
];
}
$form['book']['pid'] = $this->addParentSelectFormElements($node->book);
Not all content is available!
It's likely this issue predates Contrib.social: some issue and comment data are missing.