Problem/Motivation
It sounds strange but title says it all. When I am trying to add VBO (views bulk operations) to my view I get an error:
Error: Call to a member function ensureTable() on null in Drupal\views\Plugin\views\HandlerBase->ensureMyTable() (line 537 of /var/www/clients/client1/web7/web/core/modules/views/src/Plugin/views/HandlerBase.php)
#0 /var/www/clients/client1/web7/web/core/modules/views/src/Plugin/views/relationship/RelationshipPluginBase.php(136): Drupal\views\Plugin\views\HandlerBase->ensureMyTable()
#1 /var/www/clients/client1/web7/web/core/modules/views/src/ViewExecutable.php(1373): Drupal\views\Plugin\views\relationship\RelationshipPluginBase->query(false)
#2 /var/www/clients/client1/web7/web/core/modules/views/src/ViewExecutable.php(1248): Drupal\views\ViewExecutable->_build('relationship')
#3 /var/www/clients/client1/web7/web/modules/views_fieldsets/views_fieldsets.module(68): Drupal\views\ViewExecutable->build('page_1')
#4 /var/www/clients/client1/web7/web/core/lib/Drupal/Core/Extension/ModuleHandler.php(539): views_fieldsets_views_ui_display_tab_alter(Array, Object(Drupal\views_ui\ViewUI), 'page_1')
#5 /var/www/clients/client1/web7/web/core/modules/views_ui/src/ViewEditForm.php(365): Drupal\Core\Extension\ModuleHandler->alter('views_ui_displa...', Array, Object(Drupal\views_ui\ViewUI), 'page_1')
#6 /var/www/clients/client1/web7/web/core/modules/views_ui/src/ViewEditForm.php(688): Drupal\views_ui\ViewEditForm->getDisplayTab(Object(Drupal\views_ui\ViewUI))
#7 /var/www/clients/client1/web7/web/core/modules/views_ui/src/Form/Ajax/ViewsFormBase.php(169): Drupal\views_ui\ViewEditForm->rebuildCurrentTab(Object(Drupal\views_ui\ViewUI), Object(Drupal\Core\Ajax\AjaxResponse), 'page_1')
#8 /var/www/clients/client1/web7/web/core/modules/views_ui/src/Form/Ajax/ConfigHandler.php(39): Drupal\views_ui\Form\Ajax\ViewsFormBase->getForm(Object(Drupal\views_ui\ViewUI), 'page_1', 'ajax')
#9 [internal function]: Drupal\views_ui\Form\Ajax\ConfigHandler->getForm(Object(Drupal\views_ui\ViewUI), 'page_1', 'ajax', 'field', 'views_bulk_oper...')
#10 /var/www/clients/client1/web7/web/core/lib/Drupal/Core/EventSubscriber/EarlyRenderingControllerWrapperSubscriber.php(123): call_user_func_array(Array, Array)
#11 /var/www/clients/client1/web7/web/core/lib/Drupal/Core/Render/Renderer.php(573): Drupal\Core\EventSubscriber\EarlyRenderingControllerWrapperSubscriber->Drupal\Core\EventSubscriber\{closure}()
#12 /var/www/clients/client1/web7/web/core/lib/Drupal/Core/EventSubscriber/EarlyRenderingControllerWrapperSubscriber.php(124): Drupal\Core\Render\Renderer->executeInRenderContext(Object(Drupal\Core\Render\RenderContext), Object(Closure))
#13 /var/www/clients/client1/web7/web/core/lib/Drupal/Core/EventSubscriber/EarlyRenderingControllerWrapperSubscriber.php(97): Drupal\Core\EventSubscriber\EarlyRenderingControllerWrapperSubscriber->wrapControllerExecutionInRenderContext(Array, Array)
#14 /var/www/clients/client1/web7/web/vendor/symfony/http-kernel/HttpKernel.php(151): Drupal\Core\EventSubscriber\EarlyRenderingControllerWrapperSubscriber->Drupal\Core\EventSubscriber\{closure}()
#15 /var/www/clients/client1/web7/web/vendor/symfony/http-kernel/HttpKernel.php(68): Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object(Symfony\Component\HttpFoundation\Request), 1)
#16 /var/www/clients/client1/web7/web/core/lib/Drupal/Core/StackMiddleware/Session.php(57): Symfony\Component\HttpKernel\HttpKernel->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true)
#17 /var/www/clients/client1/web7/web/core/lib/Drupal/Core/StackMiddleware/KernelPreHandle.php(47): Drupal\Core\StackMiddleware\Session->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true)
#18 /var/www/clients/client1/web7/web/core/modules/page_cache/src/StackMiddleware/PageCache.php(106): Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true)
#19 /var/www/clients/client1/web7/web/core/modules/page_cache/src/StackMiddleware/PageCache.php(85): Drupal\page_cache\StackMiddleware\PageCache->pass(Object(Symfony\Component\HttpFoundation\Request), 1, true)
#20 /var/www/clients/client1/web7/web/core/lib/Drupal/Core/StackMiddleware/ReverseProxyMiddleware.php(47): Drupal\page_cache\StackMiddleware\PageCache->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true)
#21 /var/www/clients/client1/web7/web/core/lib/Drupal/Core/StackMiddleware/NegotiationMiddleware.php(52): Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true)
#22 /var/www/clients/client1/web7/web/vendor/stack/builder/src/Stack/StackedHttpKernel.php(23): Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true)
#23 /var/www/clients/client1/web7/web/core/lib/Drupal/Core/DrupalKernel.php(708): Stack\StackedHttpKernel->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true)
#24 /var/www/clients/client1/web7/web/index.php(19): Drupal\Core\DrupalKernel->handle(Object(Symfony\Component\HttpFoundation\Request))
After uninstalling Views Fieldsets everything works normally, so it has to be that module.
After digging deeper into ensureMyTable() function I noticed it is closely related to similar issues with cache and get null etc. I guess solving other issues would solve this issue as well.