Undefined index alter for advanced render causing white page

An undefined index notice for ‘alter’ in a drupal plugin / advancedRender() something is the only error in the log for a white screen of death.

Oh, i just realized that means that the error triggering the fatal error (whitescreen) will not be captured by the Drupal (syslog) but only in the Apache error log.

Here’s that error first:

[Sun Jun 10 22:30:43.727462 2018] [proxy_fcgi:error] [pid 31684:tid 139877354010368] [client 172.58.142.163:49284] AH01071: Got error ‘PHP message: PHP Fatal error: Unsupported operand types in /var/www/drupal/web/core/modules/views/src/Plugin/views/field/FieldPluginBase.php on line 1174\n’

And the immediately preceding, and so possibly more informative, notice: Jun 10 22:32:22 TeacherswithGUTS drupal: https://teacherswithguts.org|1528684342|php|172.58.142.163|https://teacherswithguts.org/admin/people/demographics||1||Notice: Undefined index: alter in Drupal\views\Plugin\views\field\FieldPluginBase->advancedRender() (line 1174 of /var/www/drupal/web/core/modules/views/src/Plugin/views/field/FieldPluginBase.php) #0 /var/www/drupal/web/core/includes/bootstrap.inc(582): _drupal_error_handler_real(8, ‘Undefined index…’, ‘/var/www/drupal…’, 1174, Array)#012#1 /var/www/drupal/web/core/modules/views/src/Plugin/views/field/FieldPluginBase.php(1174): _drupal_error_handler(8, ‘Undefined index…’, ‘/var/www/drupal…’, 1174, Array)#012#2 /var/www/drupal/web/core/modules/views/views.theme.inc(226): Drupal\views\Plugin\views\field\FieldPluginBase->advancedRender(Object(Drupal\views\ResultRow))#012#3 /var/www/drupal/web/core/lib/Drupal/Core/Theme/ThemeManager.php(287): template_preprocess_views_view_field(Array, ‘views_view_fiel…’, Array)#012#4 /var/www/drupal/web/core/lib/Drupal/Core/Render/Renderer.php(437): Drupal\Core\Theme\ThemeManager->render(Array, Array)#012#5 /var/www/drupal/web/core/lib/Drupal/Core/Render/Renderer.php(195): Drupal\Core\Render\Renderer->doRender(Array, false)#012#6 /var/www/drupal/web/core/modules/views/src/Plugin/views/field/FieldPluginBase.php(1738): Drupal\Core\Render\Renderer->render(Array)#012#7 /var/www/drupal/web/core/modules/views/src/Plugin/views/style/StylePluginBase.php(761): Drupal\views\Plugin\views\field\FieldPluginBase->theme(Object(Drupal\views\ResultRow))#012#8 [internal function]: Drupal\views\Plugin\views\style\StylePluginBase->elementPreRenderRow(Array)#012#9 /var/www/drupal/web/core/lib/Drupal/Core/Render/Renderer.php(378): call_user_func(Array, Array)#012#10 /var/www/drupal/web/core/lib/Drupal/Core/Render/Renderer.php(195): Drupal\Core\Render\Renderer->doRender(Array, false)#012#11 /var/www/drupal/web/core/modules/views/src/Plugin/views/style/StylePluginBase.php(709): Drupal\Core\Render\Renderer->render(Array)#012#12 /var/www/drupal/web/core/modules/views/src/Plugin/views/style/StylePluginBase.php(576): Drupal\views\Plugin\views\style\StylePluginBase->renderFields(Array)#012#13 /var/www/drupal/web/core/modules/views/src/Plugin/views/style/StylePluginBase.php(469): Drupal\views\Plugin\views\style\StylePluginBase->renderGrouping(Array, Array, true)#012#14 /var/www/drupal/web/core/modules/views/src/Plugin/views/display/DisplayPluginBase.php(2112): Drupal\views\Plugin\views\style\StylePluginBase->render(Array)#012#15 /var/www/drupal/web/core/modules/views/src/ViewExecutable.php(1530): Drupal\views\Plugin\views\display\DisplayPluginBase->render()#012#16 /var/www/drupal/web/core/modules/views/src/Plugin/views/display/Page.php(183): Drupal\views\ViewExecutable->render()#012#17 /var/www/drupal/web/core/modules/views/src/ViewExecutable.php(1627): Drupal\views\Plugin\views\display\Page->execute()#012#18 /var/www/drupal/web/core/modules/views/src/Element/View.php(77): Drupal\views\ViewExecutable->executeDisplay(‘page_all’, Array)#012#19 [internal function]: Drupal\views\Element\View::preRenderViewElement(Array)#012#20 /var/www/drupal/web/core/lib/Drupal/Core/Render/Renderer.php(378): call_user_func(Array, Array)#012#21 /var/www/drupal/web/core/lib/Drupal/Core/Render/Renderer.php(195): Drupal\Core\Render\Renderer->doRender(Array, false)#012#22 /var/www/drupal/web/core/lib/Drupal/Core/Render/MainContent/HtmlRenderer.php(226): Drupal\Core\Render\Renderer->render(Array, false)#012#23 /var/www/drupal/web/core/lib/Drupal/Core/Render/Renderer.php(582): Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent{closure}()#012#24 /var/www/drupal/web/core/lib/Drupal/Core/Render/MainContent/HtmlRenderer.php(227): Drupal\Core\Render\Renderer->executeInRenderContext(Object(Drupal\Core\Render\RenderContext), Object(Closure))#012#25 /var/www/drupal/web/core/lib/Drupal/Core/Render/MainContent/HtmlRenderer.php(117): Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object(Symfony\Component\HttpFoundation\Request), Object(Drupal\Core\Routing\CurrentRouteMatch))#012#26 /var/www/drupal/web/core/lib/Drupal/Core/EventSubscriber/MainContentViewSubscriber.php(90): Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object(Symfony\Component\HttpFoundation\Request), Object(Drupal\Core\Routing\CurrentRouteMatch))#012#27 [internal function]: Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object(Symfony\Component\HttpKernel\Event\GetResponseForControllerResultEvent), ‘kernel.view’, Object(Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher))#012#28 /var/www/drupal/web/core/lib/Drupal/Component/EventDispatcher/ContainerAwareEventDispatcher.php(111): call_user_func(Array, Object(Symfony\Component\HttpKernel\Event\GetResponseForControllerResultEvent), ‘kernel.view’, Object(Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher))#012#29 /var/www/drupal/vendor/symfony/http-kernel/HttpKernel.php(156): Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(‘kernel.view’, Object(Symfony\Component\HttpKernel\Event\GetResponseForControllerResultEvent))#012#30 /var/www/drupal/vendor/symfony/http-kernel/HttpKernel.php(68): Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object(Symfony\Component\HttpFoundation\Request), 1)#012#31 /var/www/drupal/web/core/lib/Drupal/Core/StackMiddleware/Session.php(57): Symfony\Component\HttpKernel\HttpKernel->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true)#012#32 /var/www/drupal/web/core/lib/Drupal/Core/StackMiddleware/KernelPreHandle.php(47): Drupal\Core\StackMiddleware\Session->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true)#012#33 /var/www/drupal/web/core/modules/page_cache/src/StackMiddleware/PageCache.php(99): Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true)#012#34 /var/www/drupal/web/core/modules/page_cache/src/StackMiddleware/PageCache.php(78): Drupal\page_cache\StackMiddleware\PageCache->pass(Object(Symfony\Component\HttpFoundation\Request), 1, true)#012#35 /var/www/drupal/web/core/lib/Drupal/Core/StackMiddleware/ReverseProxyMiddleware.php(47): Drupal\page_cache\StackMiddleware\PageCache->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true)#012#36 /var/www/drupal/web/core/lib/Drupal/Core/StackMiddleware/NegotiationMiddleware.php(50): Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true)#012#37 /var/www/drupal/vendor/stack/builder/src/Stack/StackedHttpKernel.php(23): Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true)#012#38 /var/www/drupal/web/core/lib/Drupal/Core/DrupalKernel.php(664): Stack\StackedHttpKernel->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true)#012#39 /var/www/drupal/web/index.php(19): Drupal\Core\DrupalKernel->handle(Object(Symfony\Component\HttpFoundation\Request))#012#40 {main}.

I tried several patches for errors that manifested the same, as far as the fatal error part.

And resaving the view.

Now removing the field for which (when editing) the view is giving a broken/missing handler error:

The handler for this item is broken or missing. The following details are available:

    id: roles
    table: user__roles
    field: roles
    entity_type: user
    entity_field: roles
    plugin_id: field

Enabling the appropriate module may solve this issue. Otherwise, check to see if there is a module update available.

And that … fixes the error.