nat
(Natalie T)
10. Februar 2026 um 14:53
5
Wir haben hier eine Lösung:
main ← fancy-title-write
merged 02:22PM - 10 Feb 26 UTC
Related: https://meta.discourse.org/t/yet-another-title-localization-issue/39546… 9
### bug context
tldr; `Topic#fancy_title` saves a fancy_title to db when the fancy_title is null.
This bug requires a certain incantation to trigger.
- Topic 395465 exists with `title = "Notification level button always says \"tracking\""` and
`fancy_title = NULL` in the DB
- A `TopicLocalization` exists for this topic in `zh_CN`
- `content_localization_enabled` is on
When a crawler hits `GET /t/.../395465?tl=zh_CN`, localization replacement happens on the topic, which writes the title attribute, so the state is now
- `title` = Chinese (modified)
- `fancy_title` = NULL (untouched, still what was loaded from DB)
When serializing via `TopicViewSerializer` which uses `LocalizedFancyTopicTitleMixin`, we call `topic.fancy_title`. The `topic#fancy_title` generates the fancy_title from the title value, then writes the chinese fancy title to db 😢
https://github.com/discourse/discourse/blob/e935ed63b28a30ee7ae6a7783ae05fe33edf3367/app/models/topic.rb#L532-L545
### fix
This PR fixes the issue by ensuring the fancy_title is always written along with the title, preventing the need for invoking `topic#fancy_title`.
Diese Lösung sollte das Problem, das wir gesehen haben, technisch beheben. Die größere Frage, die ich noch nicht geklärt habe, ist, warum der fancy_title des betroffenen Themas in der Datenbank null sein könnte, da dies das Szenario ist, das das Speichern der Lokalisierung auslösen würde.
Ich werde dies hier weiterhin beobachten. Ich lasse es bis zum Wochenende offen.
2 „Gefällt mir“