Import/Export subnav in Craft cms lacks required attributes
What happened?
After updating Craft to v5.8.18 or higher, Craft will throw a Twig Runtime Error – Twig\Error\RuntimeError Key "sel" for sequence/mapping with keys "label, url, subnav, linkAttributes" does not exist in "_layouts/components/global-sidebar" at line 61.
Looks like Craft have recently extended the navigation object to include id and sel, mainly for accessibility metadata purposes. These subnavigation items lack those required attributes, throwing the error.
Errors and Stack Trace (if available)
[Twig\Error\RuntimeError] Twig\Error\RuntimeError: Key "sel" for sequence/mapping with keys "label, url, subnav, linkAttributes" does not exist in "_layouts/components/global-sidebar" at line 61. in /app/vendor/craftcms/cms/src/templates/_layouts/components/global-sidebar.twig:61
Stack trace:
#0 /app/vendor/craftcms/cms/src/helpers/Template.php(154): Twig\Extension\CoreExtension::getAttribute(Object(craft\web\twig\Environment), Object(Twig\Source), Array, 'sel', Array, 'any', false, false, false, 61)
#1 /app/storage/runtime/compiled_templates/51/51f668f8007856cd547b71c91d83b113.php(332): craft\helpers\Template::attribute(Object(craft\web\twig\Environment), Object(Twig\Source), Array, 'sel', Array, 'any', false, false, false, 61)
#2 /app/vendor/twig/twig/src/Extension/CoreExtension.php(2106): __TwigTemplate_ee9683e775e7594a909a872f5665eb04->{closure}()
#3 /app/storage/runtime/compiled_templates/51/51f668f8007856cd547b71c91d83b113.php(239): Twig\Extension\CoreExtension::captureOutput(Object(Generator))
#4 /app/storage/runtime/compiled_templates/51/51f668f8007856cd547b71c91d83b113.php(124): __TwigTemplate_ee9683e775e7594a909a872f5665eb04->macro_action(Array, false, false)
#5 /app/vendor/twig/twig/src/Template.php(402): __TwigTemplate_ee9683e775e7594a909a872f5665eb04->doDisplay(Array, Array)
#6 /app/storage/runtime/compiled_templates/17/170720864b4668411e235be4923f53be.php(199): Twig\Template->yield(Array)
#7 /app/vendor/twig/twig/src/Template.php(446): __TwigTemplate_e09d8d28e22a02935d988dfd1a7f560b->block_body(Array, Array)
#8 /app/storage/runtime/compiled_templates/22/229dcd43425a45f4704f0be1960b5c85.php(102): Twig\Template->yieldBlock('body', Array, Array)
#9 /app/vendor/twig/twig/src/Template.php(402): __TwigTemplate_d80a9d30e9b717f3a5c0c6982039d95b->doDisplay(Array, Array)
#10 /app/storage/runtime/compiled_templates/f6/f6f4a54a7f0e6de1ff991b32637d7553.php(60): Twig\Template->yield(Array, Array)
#11 /app/vendor/twig/twig/src/Template.php(402): __TwigTemplate_a88022c920db4e90e7519ce005910cee->doDisplay(Array, Array)
#12 /app/storage/runtime/compiled_templates/17/170720864b4668411e235be4923f53be.php(179): Twig\Template->yield(Array, Array)
#13 /app/vendor/twig/twig/src/Template.php(402): __TwigTemplate_e09d8d28e22a02935d988dfd1a7f560b->doDisplay(Array, Array)
#14 /app/storage/runtime/compiled_templates/d6/d6a4ef4d3302fd75417ca27a782a634e.php(54): Twig\Template->yield(Array, Array)
#15 /app/vendor/twig/twig/src/Template.php(402): __TwigTemplate_6b486c7f5267b54da8e3ac70903dc454->doDisplay(Array, Array)
#16 /app/vendor/twig/twig/src/Template.php(358): Twig\Template->yield(Array, Array)
#17 /app/vendor/twig/twig/src/Template.php(373): Twig\Template->display(Array)
#18 /app/vendor/twig/twig/src/TemplateWrapper.php(51): Twig\Template->render(Array)
#19 /app/vendor/twig/twig/src/Environment.php(333): Twig\TemplateWrapper->render(Array)
#20 /app/vendor/craftcms/cms/src/web/View.php(570): Twig\Environment->render('utilities/_inde...', Array)
#21 /app/vendor/craftcms/cms/src/web/View.php(623): craft\web\View->renderTemplate('utilities/_inde...', Array)
#22 /app/vendor/craftcms/cms/src/web/TemplateResponseFormatter.php(57): craft\web\View->renderPageTemplate('utilities/_inde...', Array, 'cp')
#23 /app/vendor/yiisoft/yii2/web/Response.php(1109): craft\web\TemplateResponseFormatter->format(Object(craft\web\Response))
#24 /app/vendor/craftcms/cms/src/web/Response.php(346): yii\web\Response->prepare()
#25 /app/vendor/yiisoft/yii2/web/Response.php(340): craft\web\Response->prepare()
#26 /app/vendor/yiisoft/yii2/base/Application.php(390): yii\web\Response->send()
#27 /app/public/index.php(21): yii\base\Application->run()
#28 {main} {"memory":74540488,"exception":"[object] (Twig\\Error\\RuntimeError(code: 0): Key \"sel\" for sequence/mapping with keys \"label, url, subnav, linkAttributes\" does not exist in \"_layouts/components/global-sidebar\" at line 61. at /app/vendor/craftcms/cms/src/templates/_layouts/components/global-sidebar.twig:61)"}
How can we reproduce this?
- Upgrade Craft to v5.8.18 or higher
- Activate dev mode
Freeform Edition
Pro
Freeform Version
5.13.2
Craft Version
5.8.18
When did this issue start?
- [ ] Unsure
- [ ] Fresh install of Freeform
- [ ] After upgrading from older Freeform version
- [x] After upgrading from older Craft version
- [ ] After a change to hosting configuration
Previous Freeform Version
No response
Hi @kellow77,
Thanks for reporting this! Could you please share the full error message and stack trace so I can take a closer look?
I wasn’t able to reproduce the issue on my end while testing with Craft 5.8.18 and 5.8.19. If possible, please try upgrading to 5.8.19 to see if that resolves it.
If the issue persists, could you also include a screenshot of your Freeform → Diagnostics page? That might help pinpoint what’s going on.
Thanks so much!
@kjmartens I already tried upgrading craft to 5.8.19 and issue still persists. have added the stack trace. I have narrowed down the bit of code causing the issue. if i comment out the following code in solspace/craft-freeform/packages/plugin/src/Bundles/Navigation/NavigationBundle.php it no longer throws the error
extraOptions: ['subnav' => [ 'profiles' => ['label' => Freeform::t('Profiles'), 'url' => 'freeform/export/profiles'], 'files' => ['label' => Freeform::t('Files'), 'url' => 'freeform/export/files'], ]]
Thanks so much for the extra details, @kellow77!
I’ve applied a fix for this in the v5 branch. You’re welcome to pull that version and give it a try whenever you’d like. 🙂
@kjmartens I have applied and tested the fix and it does not resolve the issue.
[Twig\Error\RuntimeError] Twig\Error\RuntimeError: Key "sel" for sequence/mapping with keys "label, url, subnav, linkAttributes" does not exist in "_layouts/components/global-sidebar" at line 61. in /app/vendor/craftcms/cms/src/templates/_layouts/components/global-sidebar.twig:61 Stack trace: #0 /app/vendor/craftcms/cms/src/helpers/Template.php(154): Twig\Extension\CoreExtension::getAttribute(Object(craft\web\twig\Environment), Object(Twig\Source), Array, 'sel', Array, 'any', false, false, false, 61) #1 /app/storage/runtime/compiled_templates/51/51f668f8007856cd547b71c91d83b113.php(332): craft\helpers\Template::attribute(Object(craft\web\twig\Environment), Object(Twig\Source), Array, 'sel', Array, 'any', false, false, false, 61) #2 /app/vendor/twig/twig/src/Extension/CoreExtension.php(2106): __TwigTemplate_ee9683e775e7594a909a872f5665eb04->{closure}() #3 /app/storage/runtime/compiled_templates/51/51f668f8007856cd547b71c91d83b113.php(239): Twig\Extension\CoreExtension::captureOutput(Object(Generator)) #4 /app/storage/runtime/compiled_templates/51/51f668f8007856cd547b71c91d83b113.php(124): __TwigTemplate_ee9683e775e7594a909a872f5665eb04->macro_action(Array, false, false) #5 /app/vendor/twig/twig/src/Template.php(402): __TwigTemplate_ee9683e775e7594a909a872f5665eb04->doDisplay(Array, Array) #6 /app/storage/runtime/compiled_templates/17/170720864b4668411e235be4923f53be.php(199): Twig\Template->yield(Array) #7 /app/vendor/twig/twig/src/Template.php(446): __TwigTemplate_e09d8d28e22a02935d988dfd1a7f560b->block_body(Array, Array) #8 /app/storage/runtime/compiled_templates/22/229dcd43425a45f4704f0be1960b5c85.php(102): Twig\Template->yieldBlock('body', Array, Array) #9 /app/vendor/twig/twig/src/Template.php(402): __TwigTemplate_d80a9d30e9b717f3a5c0c6982039d95b->doDisplay(Array, Array) #10 /app/storage/runtime/compiled_templates/f6/f6f4a54a7f0e6de1ff991b32637d7553.php(60): Twig\Template->yield(Array, Array) #11 /app/vendor/twig/twig/src/Template.php(402): __TwigTemplate_a88022c920db4e90e7519ce005910cee->doDisplay(Array, Array) #12 /app/storage/runtime/compiled_templates/17/170720864b4668411e235be4923f53be.php(179): Twig\Template->yield(Array, Array) #13 /app/vendor/twig/twig/src/Template.php(402): __TwigTemplate_e09d8d28e22a02935d988dfd1a7f560b->doDisplay(Array, Array) #14 /app/storage/runtime/compiled_templates/b8/b85fca52c0c5ddcc9f88c5cfe55870bb.php(95): Twig\Template->yield(Array, Array) #15 /app/vendor/twig/twig/src/Template.php(402): __TwigTemplate_ee16f333634352e67e8ac970892893ae->doDisplay(Array, Array) #16 /app/storage/runtime/compiled_templates/c1/c1260216b830d4865b530ce1fd1d6f3b.php(73): Twig\Template->yield(Array, Array) #17 /app/vendor/twig/twig/src/Template.php(402): __TwigTemplate_5d094ab8e40c880faa0215737e189b53->doDisplay(Array, Array) #18 /app/vendor/twig/twig/src/Template.php(358): Twig\Template->yield(Array, Array) #19 /app/vendor/twig/twig/src/Template.php(373): Twig\Template->display(Array) #20 /app/vendor/twig/twig/src/TemplateWrapper.php(51): Twig\Template->render(Array) #21 /app/vendor/twig/twig/src/Environment.php(333): Twig\TemplateWrapper->render(Array) #22 /app/vendor/craftcms/cms/src/web/View.php(570): Twig\Environment->render('entries', Array) #23 /app/vendor/craftcms/cms/src/web/View.php(623): craft\web\View->renderTemplate('entries', Array) #24 /app/vendor/craftcms/cms/src/web/TemplateResponseFormatter.php(57): craft\web\View->renderPageTemplate('entries', Array, 'cp') #25 /app/vendor/yiisoft/yii2/web/Response.php(1109): craft\web\TemplateResponseFormatter->format(Object(craft\web\Response)) #26 /app/vendor/craftcms/cms/src/web/Response.php(346): yii\web\Response->prepare() #27 /app/vendor/yiisoft/yii2/web/Response.php(340): craft\web\Response->prepare() #28 /app/vendor/yiisoft/yii2/base/Application.php(390): yii\web\Response->send() #29 /app/public/index.php(21): yii\base\Application->run() #30 {main} {"memory":78381648,"exception":"[object] (Twig\\Error\\RuntimeError(code: 0): Key \"sel\" for sequence/mapping with keys \"label, url, subnav, linkAttributes\" does not exist in \"_layouts/components/global-sidebar\" at line 61. at /app/vendor/craftcms/cms/src/templates/_layouts/components/global-sidebar.twig:61)"}
We just released Freeform 5.13.4 officially. Can you try it anyway and see if it fixes it? 🙂
@kjmartens No, 5.13.4 does not resolve the issue.
Sorry about this @kellow77,
We still are having trouble reproducing the issue, but we'll have another look at it. If you can think of anything else that might be unique or edge case to your install/setup, please let me know. 🙂
@kellow77
I'm struggling to replicate this.
Can you try clearing the cache and see if that clears the error:
Can you update to Freeform 5.13.7+ and see if the issue is resolved now? 🙂
@kjmartens Tested freeform version 5.13.7 with latest version of craft v5.8.20 and issue is now resolved.
Thank you for confirming, @kellow77