Configuration forms incorrectly warn about language overrides (e.g. at /admin/config/people/accounts)

Created on 18 July 2025, about 2 months ago

Problem/Motivation

Currently, \Drupal\Core\Form\ConfigFormBase::checkConfigOverrides() uses Config::hasOverrides() to determine if any configuration values are overridden.

This method treats language overrides (provided by language.config_factory_override) in the same way as settings.php overrides and module overrides.

As a result, configuration forms display misleading warnings even when the only “override” is a translation.

For example:
When visiting /admin/config/people/accounts, if the anonymous user name is translated (e.g., "anonymous" => "匿名" in language/ja/user.settings.yml), the form shows:

"These values are overridden. Changes on this form will be saved, but overrides will take precedence."

This is confusing because:

Language overrides are not environment-specific.

Saving the form does not overwrite language overrides in storage.

Site administrators expect translations to behave differently from true configuration overrides.

Steps to reproduce

Enable a non-English language (e.g., Japanese).

Translate the anonymous user name to "匿名".

Visit /admin/config/people/accounts.

Observe the warning:

"These values are overridden. Changes on this form will be saved, but overrides will take precedence."

This warning appears even though the only override is a translation.

- config/sync/language/ja/user.settings.yml

anonymous: 匿名
🐛 Bug report
Status

Active

Version

11.2 🔥

Component

base system

Created by

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

Comments & Activities

Production build 0.71.5 2024