Magento2: Exception when trying to add new integration from backend

Created on 27 Dec 2016  路  4Comments  路  Source: magento/magento2

Preconditions


  1. Using shared cpanel hosting with namecheap
  2. Magento 2.1.3, PHP7 and mariadb 10.1

Steps to reproduce

  1. Login to backend
  2. Go to system->integrations
  3. Click "add new integration".

Expected result

  1. There should be a form to add new integration.

Actual result

  1. It throws an exception, details below:

Exception #0 (Exception): Notice: Undefined index: title in /home/username/public_html/magento/vendor/magento/module-integration/Helper/Data.php on line 24

0 /home/username/public_html/magento/vendor/magento/module-integration/Helper/Data.php(24): Magento\Framework\App\ErrorHandler->handler(8, 'Undefined index...', '/home/username/...', 24, Array)

1 /home/username/public_html/magento/vendor/magento/module-integration/Block/Adminhtml/Integration/Edit/Tab/Webapi.php(180): Magento\Integration\Helper\Data->mapResources(Array)

2 /home/username/public_html/magento/vendor/magento/module-integration/view/adminhtml/templates/resourcetree.phtml(40): Magento\Integration\Block\Adminhtml\Integration\Edit\Tab\Webapi->getTree()

3 /home/username/public_html/magento/vendor/magento/framework/View/TemplateEngine/Php.php(59): include('/home/username/...')

4 /home/username/public_html/magento/vendor/magento/framework/View/Element/Template.php(255): Magento\Framework\View\TemplateEngine\Php->render(Object(Magento\Integration\Block\Adminhtml\Integration\Edit\Tab\Webapi), '/home/username/...', Array)

5 /home/username/public_html/magento/vendor/magento/framework/View/Element/Template.php(279): Magento\Framework\View\Element\Template->fetchView('/home/username/...')

6 /home/username/public_html/magento/vendor/magento/module-backend/Block/Template.php(104): Magento\Framework\View\Element\Template->_toHtml()

7 /home/username/public_html/magento/vendor/magento/framework/View/Element/AbstractBlock.php(659): Magento\Backend\Block\Template->_toHtml()

8 /home/username/public_html/magento/vendor/magento/module-backend/Block/Widget/Tabs.php(387): Magento\Framework\View\Element\AbstractBlock->toHtml()

9 /home/username/public_html/magento/vendor/magento/module-backend/view/adminhtml/templates/widget/tabs.phtml(57): Magento\Backend\Block\Widget\Tabs->getTabContent(Object(Magento\Integration\Block\Adminhtml\Integration\Edit\Tab\Webapi))

10 /home/username/public_html/magento/vendor/magento/framework/View/TemplateEngine/Php.php(59): include('/home/username/...')

11 /home/username/public_html/magento/vendor/magento/framework/View/Element/Template.php(255): Magento\Framework\View\TemplateEngine\Php->render(Object(Magento\Integration\Block\Adminhtml\Integration\Edit\Tabs), '/home/username/...', Array)

12 /home/username/public_html/magento/vendor/magento/framework/View/Element/Template.php(279): Magento\Framework\View\Element\Template->fetchView('/home/username/...')

13 /home/username/public_html/magento/vendor/magento/module-backend/Block/Template.php(104): Magento\Framework\View\Element\Template->_toHtml()

14 /home/username/public_html/magento/vendor/magento/framework/View/Element/AbstractBlock.php(659): Magento\Backend\Block\Template->_toHtml()

15 /home/username/public_html/magento/vendor/magento/framework/View/Layout.php(542): Magento\Framework\View\Element\AbstractBlock->toHtml()

16 /home/username/public_html/magento/vendor/magento/framework/View/Layout.php(518): Magento\Framework\View\Layout->_renderBlock('integration_edi...')

17 /home/username/public_html/magento/vendor/magento/framework/View/Layout.php(472): Magento\Framework\View\Layout->renderNonCachedElement('integration_edi...')

18 /home/username/public_html/magento/vendor/magento/framework/View/Layout.php(569): Magento\Framework\View\Layout->renderElement('integration_edi...')

19 /home/username/public_html/magento/vendor/magento/framework/View/Layout.php(520): Magento\Framework\View\Layout->_renderContainer('left')

20 /home/username/public_html/magento/vendor/magento/framework/View/Layout.php(472): Magento\Framework\View\Layout->renderNonCachedElement('left')

21 /home/username/public_html/magento/vendor/magento/framework/View/Layout.php(569): Magento\Framework\View\Layout->renderElement('left')

22 /home/username/public_html/magento/vendor/magento/framework/View/Layout.php(520): Magento\Framework\View\Layout->_renderContainer('side.col')

23 /home/username/public_html/magento/vendor/magento/framework/View/Layout.php(472): Magento\Framework\View\Layout->renderNonCachedElement('side.col')

24 /home/username/public_html/magento/vendor/magento/framework/View/Layout.php(569): Magento\Framework\View\Layout->renderElement('side.col')

25 /home/username/public_html/magento/vendor/magento/framework/View/Layout.php(520): Magento\Framework\View\Layout->_renderContainer('page.main.conta...')

26 /home/username/public_html/magento/vendor/magento/framework/View/Layout.php(472): Magento\Framework\View\Layout->renderNonCachedElement('page.main.conta...')

27 /home/username/public_html/magento/vendor/magento/framework/View/Layout.php(569): Magento\Framework\View\Layout->renderElement('page.main.conta...')

28 /home/username/public_html/magento/vendor/magento/framework/View/Layout.php(520): Magento\Framework\View\Layout->_renderContainer('page.content')

29 /home/username/public_html/magento/vendor/magento/framework/View/Layout.php(472): Magento\Framework\View\Layout->renderNonCachedElement('page.content')

30 /home/username/public_html/magento/vendor/magento/framework/View/Layout.php(569): Magento\Framework\View\Layout->renderElement('page.content')

31 /home/username/public_html/magento/vendor/magento/framework/View/Layout.php(520): Magento\Framework\View\Layout->_renderContainer('page.wrapper')

32 /home/username/public_html/magento/vendor/magento/framework/View/Layout.php(472): Magento\Framework\View\Layout->renderNonCachedElement('page.wrapper')

33 /home/username/public_html/magento/vendor/magento/framework/View/Layout.php(569): Magento\Framework\View\Layout->renderElement('page.wrapper')

34 /home/username/public_html/magento/vendor/magento/framework/View/Layout.php(520): Magento\Framework\View\Layout->_renderContainer('backend.page')

35 /home/username/public_html/magento/vendor/magento/framework/View/Layout.php(472): Magento\Framework\View\Layout->renderNonCachedElement('backend.page')

36 /home/username/public_html/magento/vendor/magento/framework/View/Layout.php(569): Magento\Framework\View\Layout->renderElement('backend.page')

37 /home/username/public_html/magento/vendor/magento/framework/View/Layout.php(520): Magento\Framework\View\Layout->_renderContainer('root')

38 /home/username/public_html/magento/vendor/magento/framework/View/Layout.php(472): Magento\Framework\View\Layout->renderNonCachedElement('root')

39 /home/username/public_html/magento/vendor/magento/framework/View/Layout.php(938): Magento\Framework\View\Layout->renderElement('root')

40 /home/username/public_html/magento/var/generation/Magento/Framework/View/Layout/Interceptor.php(37): Magento\Framework\View\Layout->getOutput()

41 /home/username/public_html/magento/vendor/magento/framework/View/Result/Page.php(243): Magento\Framework\View\Layout\Interceptor->getOutput()

42 /home/username/public_html/magento/vendor/magento/framework/View/Result/Layout.php(164): Magento\Framework\View\Result\Page->render(Object(Magento\Framework\App\Response\Http\Interceptor))

43 /home/username/public_html/magento/var/generation/Magento/Backend/Model/View/Result/Page/Interceptor.php(24): Magento\Framework\View\Result\Layout->renderResult(Object(Magento\Framework\App\Response\Http\Interceptor))

44 /home/username/public_html/magento/vendor/magento/framework/App/View.php(221): Magento\Backend\Model\View\Result\Page\Interceptor->renderResult(Object(Magento\Framework\App\Response\Http\Interceptor))

45 /home/username/public_html/magento/vendor/magento/module-integration/Controller/Adminhtml/Integration/NewAction.php(29): Magento\Framework\App\View->renderLayout()

46 /home/username/public_html/magento/vendor/magento/framework/App/Action/Action.php(102): Magento\Integration\Controller\Adminhtml\Integration\NewAction->execute()

47 /home/username/public_html/magento/vendor/magento/module-backend/App/AbstractAction.php(226): Magento\Framework\App\Action\Action->dispatch(Object(Magento\Framework\App\Request\Http))

48 /home/username/public_html/magento/vendor/magento/framework/Interception/Interceptor.php(74): Magento\Backend\App\AbstractAction->dispatch(Object(Magento\Framework\App\Request\Http))

49 /home/username/public_html/magento/vendor/magento/framework/Interception/Chain/Chain.php(70): Magento\Integration\Controller\Adminhtml\Integration\NewAction\Interceptor->___callParent('dispatch', Array)

50 /home/username/public_html/magento/vendor/magento/framework/Interception/Chain/Chain.php(63): Magento\Framework\Interception\Chain\Chain->invokeNext('Magento\Integra...', 'dispatch', Object(Magento\Integration\Controller\Adminhtml\Integration\NewAction\Interceptor), Array, 'adminAuthentica...')

51 /home/username/public_html/magento/vendor/magento/module-backend/App/Action/Plugin/Authentication.php(143): Magento\Framework\Interception\Chain\Chain->Magento\Framework\Interception\Chain{closure}(Object(Magento\Framework\App\Request\Http))

52 /home/username/public_html/magento/vendor/magento/framework/Interception/Chain/Chain.php(67): Magento\Backend\App\Action\Plugin\Authentication->aroundDispatch(Object(Magento\Integration\Controller\Adminhtml\Integration\NewAction\Interceptor), Object(Closure), Object(Magento\Framework\App\Request\Http))

53 /home/username/public_html/magento/vendor/magento/framework/Interception/Interceptor.php(138): Magento\Framework\Interception\Chain\Chain->invokeNext('Magento\Integra...', 'dispatch', Object(Magento\Integration\Controller\Adminhtml\Integration\NewAction\Interceptor), Array, 'adminMassaction...')

54 /home/username/public_html/magento/vendor/magento/module-backend/App/Action/Plugin/MassactionKey.php(33): Magento\Integration\Controller\Adminhtml\Integration\NewAction\Interceptor->Magento\Framework\Interception{closure}(Object(Magento\Framework\App\Request\Http))

55 /home/username/public_html/magento/vendor/magento/framework/Interception/Interceptor.php(142): Magento\Backend\App\Action\Plugin\MassactionKey->aroundDispatch(Object(Magento\Integration\Controller\Adminhtml\Integration\NewAction\Interceptor), Object(Closure), Object(Magento\Framework\App\Request\Http))

56 /home/username/public_html/magento/var/generation/Magento/Integration/Controller/Adminhtml/Integration/NewAction/Interceptor.php(26): Magento\Integration\Controller\Adminhtml\Integration\NewAction\Interceptor->___callPlugins('dispatch', Array, Array)

57 /home/username/public_html/magento/vendor/magento/framework/App/FrontController.php(55): Magento\Integration\Controller\Adminhtml\Integration\NewAction\Interceptor->dispatch(Object(Magento\Framework\App\Request\Http))

58 /home/username/public_html/magento/vendor/magento/framework/Interception/Interceptor.php(74): Magento\Framework\App\FrontController->dispatch(Object(Magento\Framework\App\Request\Http))

59 /home/username/public_html/magento/vendor/magento/framework/Interception/Chain/Chain.php(70): Magento\Framework\App\FrontController\Interceptor->___callParent('dispatch', Array)

60 /home/username/public_html/magento/vendor/magento/framework/Interception/Interceptor.php(138): Magento\Framework\Interception\Chain\Chain->invokeNext('Magento\Framewo...', 'dispatch', Object(Magento\Framework\App\FrontController\Interceptor), Array, 'install')

61 /home/username/public_html/magento/vendor/magento/framework/Module/Plugin/DbStatusValidator.php(69): Magento\Framework\App\FrontController\Interceptor->Magento\Framework\Interception{closure}(Object(Magento\Framework\App\Request\Http))

62 /home/username/public_html/magento/vendor/magento/framework/Interception/Interceptor.php(142): Magento\Framework\Module\Plugin\DbStatusValidator->aroundDispatch(Object(Magento\Framework\App\FrontController\Interceptor), Object(Closure), Object(Magento\Framework\App\Request\Http))

63 /home/username/public_html/magento/var/generation/Magento/Framework/App/FrontController/Interceptor.php(26): Magento\Framework\App\FrontController\Interceptor->___callPlugins('dispatch', Array, Array)

64 /home/username/public_html/magento/vendor/magento/framework/App/Http.php(135): Magento\Framework\App\FrontController\Interceptor->dispatch(Object(Magento\Framework\App\Request\Http))

65 /home/username/public_html/magento/vendor/magento/framework/App/Bootstrap.php(258): Magento\Framework\App\Http->launch()

66 /home/username/public_html/magento/index.php(39): Magento\Framework\App\Bootstrap->run(Object(Magento\Framework\App\Http))

67 {main}

Cannot Reproduce Clear Description Format is valid bug report

Most helpful comment

The issue is that one of your modules doesn't have a title defined in the acl.xml file. The easiest way to fix this is to update in src/vendor/magento/module-integration/Helper/Data.php to have:
$item['data'] = isset($resource['title']) ? $resource['title'] : '';

This will enable the UI to load but for one or many of the modules will have a blank space next to the folder. You then need to let the module developer know to fix the issue, but as a short term fix just add a title attribute to the acl.xml for the module yourself.

All 4 comments

Anybody?

The issue is that one of your modules doesn't have a title defined in the acl.xml file. The easiest way to fix this is to update in src/vendor/magento/module-integration/Helper/Data.php to have:
$item['data'] = isset($resource['title']) ? $resource['title'] : '';

This will enable the UI to load but for one or many of the modules will have a blank space next to the folder. You then need to let the module developer know to fix the issue, but as a short term fix just add a title attribute to the acl.xml for the module yourself.

Still have this error on 2.1.2, how to fix? @sheldmandu

@sbw92, thank you for your report.
We were not able to reproduce this issue by following the steps you provided. If you'd like to update it, please reopen the issue.
We tested the issue on 2.3.0-dev, 2.2.0, 2.1.9

Was this page helpful?
0 / 5 - 0 ratings