Handle "A config mapper can only contain configuration for a single language" more gracefully

Created on 21 December 2022, over 1 year ago
Updated 26 May 2023, about 1 year ago

Problem/Motivation

After adding config entities (node types) to the cart, I get the following error at /admin/tmgmt/cart:

The website encountered an unexpected error. Please try again later.

Drupal\config_translation\Exception\ConfigMapperLanguageException: A config mapper can only contain configuration for a single language. in Drupal\config_translation\ConfigNamesMapper->getLangcode() (line 404 of core/modules/config_translation/src/ConfigNamesMapper.php).

Drupal\tmgmt_config\Plugin\tmgmt\Source\ConfigSource->getSourceLangCode() (Line: 994)
Drupal\tmgmt\Entity\JobItem->getSourceLangCode() (Line: 35)
Drupal\tmgmt\Form\CartForm->buildForm()
call_user_func_array() (Line: 534)
Drupal\Core\Form\FormBuilder->retrieveForm() (Line: 281)
Drupal\Core\Form\FormBuilder->buildForm() (Line: 73)
Drupal\Core\Controller\FormController->getContentResult()
call_user_func_array() (Line: 123)
Drupal\Core\EventSubscriber\EarlyRenderingControllerWrapperSubscriber->Drupal\Core\EventSubscriber\{closure}() (Line: 580)
Drupal\Core\Render\Renderer->executeInRenderContext() (Line: 124)
Drupal\Core\EventSubscriber\EarlyRenderingControllerWrapperSubscriber->wrapControllerExecutionInRenderContext() (Line: 97)
Drupal\Core\EventSubscriber\EarlyRenderingControllerWrapperSubscriber->Drupal\Core\EventSubscriber\{closure}() (Line: 169)
Symfony\Component\HttpKernel\HttpKernel->handleRaw() (Line: 81)
Symfony\Component\HttpKernel\HttpKernel->handle() (Line: 58)
Drupal\Core\StackMiddleware\Session->handle() (Line: 48)
Drupal\Core\StackMiddleware\KernelPreHandle->handle() (Line: 106)
Drupal\page_cache\StackMiddleware\PageCache->pass() (Line: 85)
Drupal\page_cache\StackMiddleware\PageCache->handle() (Line: 50)
Drupal\ban\BanMiddleware->handle() (Line: 270)
Drupal\shield\ShieldMiddleware->bypass() (Line: 169)
Drupal\shield\ShieldMiddleware->handle() (Line: 48)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle() (Line: 51)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle() (Line: 49)
Drupal\remove_http_headers\StackMiddleware\RemoveHttpHeadersMiddleware->handle() (Line: 23)
Stack\StackedHttpKernel->handle() (Line: 707)
Drupal\Core\DrupalKernel->handle() (Line: 19)

1. I guess the reason isn't in TMGMT but in the site config, that was upgraded from Drupal 7. But it would be nice to show a formatted error message above the cart or anything like that, instead of that hard exception.
Or is there any core issue / solution I don't know about?

2. Furthermore, it would be super helpful to see which translation / config / entity causes the Exception.

3. With that Exception, there's no way to clear the cart.

Steps to reproduce

Proposed resolution

Remaining tasks

User interface changes

API changes

Data model changes

πŸ› Bug report
Status

Active

Version

1.0

Component

Core

Created by

πŸ‡©πŸ‡ͺGermany Anybody Porta Westfalica

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

Comments & Activities

Not all content is available!

It's likely this issue predates Contrib.social: some issue and comment data are missing.

Production build 0.69.0 2024