nat
(Natalie T)
10 Febbraio 2026, 2:53pm
5
Abbiamo una correzione qui:
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`.
Questa soluzione dovrebbe tecnicamente risolvere il problema che abbiamo riscontrato. La domanda più grande che non ho risolto è perché il fancy_title dell’argomento coinvolto potrebbe essere nullo nel database, poiché è lo scenario che attiverebbe il salvataggio della localizzazione.
Continuerò a monitorare qui. Lo terrò aperto fino al fine settimana.
2 Mi Piace