craft-freeform icon indicating copy to clipboard operation
craft-freeform copied to clipboard

Import/Export subnav in Craft cms lacks required attributes

Open kellow77 opened this issue 1 month ago • 6 comments

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?

  1. Upgrade Craft to v5.8.18 or higher
  2. 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

kellow77 avatar Nov 04 '25 11:11 kellow77

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 avatar Nov 06 '25 16:11 kjmartens

@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'], ]]

Image

kellow77 avatar Nov 06 '25 16:11 kellow77

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 avatar Nov 06 '25 20:11 kjmartens

@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)"}

kellow77 avatar Nov 11 '25 10:11 kellow77

We just released Freeform 5.13.4 officially. Can you try it anyway and see if it fixes it? 🙂

kjmartens avatar Nov 11 '25 18:11 kjmartens

@kjmartens No, 5.13.4 does not resolve the issue.

kellow77 avatar Nov 12 '25 11:11 kellow77

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. 🙂

kjmartens avatar Nov 28 '25 21:11 kjmartens

@kellow77

I'm struggling to replicate this.

Can you try clearing the cache and see if that clears the error:

Image

seandelaney avatar Dec 02 '25 17:12 seandelaney

Can you update to Freeform 5.13.7+ and see if the issue is resolved now? 🙂

kjmartens avatar Dec 02 '25 22:12 kjmartens

@kjmartens Tested freeform version 5.13.7 with latest version of craft v5.8.20 and issue is now resolved.

kellow77 avatar Dec 03 '25 12:12 kellow77

Thank you for confirming, @kellow77

kjmartens avatar Dec 04 '25 16:12 kjmartens