Fix or workaround XB image alt bug that prevents saving SDDS components

Created on 8 March 2025, 25 days ago

Problem/Motivation

From heyyo...

If you try to save SDDS components with images, there are errors with alt text:

OutOfRangeException: No data provided to evaluate expression โ„น๏ธŽโœentity:media:imageโfield_media_imageโžโŸalt in Drupal\experience_builder\PropExpressions\StructuredData\Evaluator::doEvaluate() (line 44 of /var/www/html/web/modules/contrib/experience_builder/src/PropExpressions/StructuredData/Evaluator.php).
#0 /var/www/html/web/modules/contrib/experience_builder/src/PropExpressions/StructuredData/Evaluator.php(16): Drupal\experience_builder\PropExpressions\StructuredData\Evaluator::doEvaluate()
#1 /var/www/html/web/modules/contrib/experience_builder/src/PropExpressions/StructuredData/Evaluator.php(73): Drupal\experience_builder\PropExpressions\StructuredData\Evaluator::evaluate()
#2 /var/www/html/web/modules/contrib/experience_builder/src/PropExpressions/StructuredData/Evaluator.php(16): Drupal\experience_builder\PropExpressions\StructuredData\Evaluator::doEvaluate()
#3 /var/www/html/web/modules/contrib/experience_builder/src/PropExpressions/StructuredData/Evaluator.php(69): Drupal\experience_builder\PropExpressions\StructuredData\Evaluator::evaluate()
#4 [internal function]: Drupal\experience_builder\PropExpressions\StructuredData\Evaluator::Drupal\experience_builder\PropExpressions\StructuredData\{closure}()
#5 /var/www/html/web/modules/contrib/experience_builder/src/PropExpressions/StructuredData/Evaluator.php(68): array_map()
#6 /var/www/html/web/modules/contrib/experience_builder/src/PropExpressions/StructuredData/Evaluator.php(16): Drupal\experience_builder\PropExpressions\StructuredData\Evaluator::doEvaluate()
#7 /var/www/html/web/modules/contrib/experience_builder/src/PropSource/StaticPropSource.php(230): Drupal\experience_builder\PropExpressions\StructuredData\Evaluator::evaluate()
#8 /var/www/html/web/modules/contrib/experience_builder/src/Plugin/ExperienceBuilder/ComponentSource/GeneratedFieldExplicitInputUxComponentSourceBase.php(279): Drupal\experience_builder\PropSource\StaticPropSource->evaluate()
#9 [internal function]: Drupal\experience_builder\Plugin\ExperienceBuilder\ComponentSource\GeneratedFieldExplicitInputUxComponentSourceBase->Drupal\experience_builder\Plugin\ExperienceBuilder\ComponentSource\{closure}()
#10 /var/www/html/web/modules/contrib/experience_builder/src/Plugin/ExperienceBuilder/ComponentSource/GeneratedFieldExplicitInputUxComponentSourceBase.php(276): array_map()
#11 /var/www/html/web/modules/contrib/experience_builder/src/Controller/ClientServerConversionTrait.php(129): Drupal\experience_builder\Plugin\ExperienceBuilder\ComponentSource\GeneratedFieldExplicitInputUxComponentSourceBase->validateComponentInput()
#12 /var/www/html/web/modules/contrib/experience_builder/src/Controller/ClientServerConversionTrait.php(172): Drupal\experience_builder\ClientDataToEntityConverter::clientModelToInput()
#13 /var/www/html/web/modules/contrib/experience_builder/src/ClientDataToEntityConverter.php(49): Drupal\experience_builder\ClientDataToEntityConverter::convertClientToServer()
#14 /var/www/html/web/modules/contrib/experience_builder/src/Controller/ApiAutoSaveController.php(193): Drupal\experience_builder\ClientDataToEntityConverter->convert()
#15 [internal function]: Drupal\experience_builder\Controller\ApiAutoSaveController->post()
#16 /var/www/html/web/core/lib/Drupal/Core/EventSubscriber/EarlyRenderingControllerWrapperSubscriber.php(123): call_user_func_array()
#17 /var/www/html/web/core/lib/Drupal/Core/Render/Renderer.php(593): Drupal\Core\EventSubscriber\EarlyRenderingControllerWrapperSubscriber->Drupal\Core\EventSubscriber\{closure}()
#18 /var/www/html/web/core/lib/Drupal/Core/EventSubscriber/EarlyRenderingControllerWrapperSubscriber.php(121): Drupal\Core\Render\Renderer->executeInRenderContext()
#19 /var/www/html/web/core/lib/Drupal/Core/EventSubscriber/EarlyRenderingControllerWrapperSubscriber.php(97): Drupal\Core\EventSubscriber\EarlyRenderingControllerWrapperSubscriber->wrapControllerExecutionInRenderContext()
#20 /var/www/html/vendor/symfony/http-kernel/HttpKernel.php(183): Drupal\Core\EventSubscriber\EarlyRenderingControllerWrapperSubscriber->Drupal\Core\EventSubscriber\{closure}()
#21 /var/www/html/vendor/symfony/http-kernel/HttpKernel.php(76): Symfony\Component\HttpKernel\HttpKernel->handleRaw()
#22 /var/www/html/web/core/lib/Drupal/Core/StackMiddleware/Session.php(53): Symfony\Component\HttpKernel\HttpKernel->handle()
#23 /var/www/html/web/core/lib/Drupal/Core/StackMiddleware/KernelPreHandle.php(48): Drupal\Core\StackMiddleware\Session->handle()
#24 /var/www/html/web/core/lib/Drupal/Core/StackMiddleware/ContentLength.php(28): Drupal\Core\StackMiddleware\KernelPreHandle->handle()
#25 /var/www/html/web/core/modules/big_pipe/src/StackMiddleware/ContentLength.php(32): Drupal\Core\StackMiddleware\ContentLength->handle()
#26 /var/www/html/web/core/modules/page_cache/src/StackMiddleware/PageCache.php(116): Drupal\big_pipe\StackMiddleware\ContentLength->handle()
#27 /var/www/html/web/core/modules/page_cache/src/StackMiddleware/PageCache.php(90): Drupal\page_cache\StackMiddleware\PageCache->pass()
#28 /var/www/html/web/core/lib/Drupal/Core/StackMiddleware/ReverseProxyMiddleware.php(48): Drupal\page_cache\StackMiddleware\PageCache->handle()
#29 /var/www/html/web/core/lib/Drupal/Core/StackMiddleware/NegotiationMiddleware.php(51): Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle()
#30 /var/www/html/web/core/lib/Drupal/Core/StackMiddleware/AjaxPageState.php(36): Drupal\Core\StackMiddleware\NegotiationMiddleware->handle()
#31 /var/www/html/web/core/lib/Drupal/Core/StackMiddleware/StackedHttpKernel.php(51): Drupal\Core\StackMiddleware\AjaxPageState->handle()
#32 /var/www/html/web/core/lib/Drupal/Core/DrupalKernel.php(709): Drupal\Core\StackMiddleware\StackedHttpKernel->handle()
#33 /var/www/html/web/index.php(19): Drupal\Core\DrupalKernel->handle()
#34 {main}

Steps to reproduce

  • Configure Drupal+XB+SDDS
  • Drag a component with an image on it
  • Try to save the page

Proposed resolution

TBD

Remaining tasks

  • Debug and figure out if it needs to be fixed in SDDS or XB
  • If the former, fix it
  • If the latter, can we workaround it until it's fixed in XB?

User interface changes

Can save page with component with image

API changes

Data model changes

๐Ÿ› Bug report
Status

Active

Version

1.0

Component

Code

Created by

๐Ÿ‡บ๐Ÿ‡ธUnited States Kristen Pol Santa Cruz, CA, USA

Live updates comments and jobs are added and updated live.
Sign in to follow issues

Comments & Activities

Production build 0.71.5 2024