-
Notifications
You must be signed in to change notification settings - Fork 2.8k
Description
Which Umbraco version are you using?
15.4.3 and 16.1.0 (confirmed affected versions)
Bug summary
When content is published ONLY in non-default languages (e.g., only in "de-DE" but not in "en-GB" if en-GB is the default language), Umbraco fails to properly save property values to the database. The content appears published in the back office and shows correct values there, but:
- The published property values in the database are NULL or contain stale data
- IPublishedContent.Value() returns empty/null values on the front-end
- Future content updates don't get reflected until the content is published in the default language
This only seems to affect invariant properties that are shared across cultures.
Specifics
This bug occurs specifically when:
- Content is created and published only in non-default languages
- OR existing content is updated and published only in non-default languages
- The default language is not included in the publish operation
The issue does NOT occur when:
- Content is published in the default language (even if also published in other languages)
- Content that was previously published in the default language is updated
Workaround: Publishing the content in the default language and then immediately unpublishing it resolves the issue and allows future updates to work correctly.
Database inspection shows that the cmsContentNu table (published content cache) contains NULL values for the affected properties when content is only published in non-default languages.
Steps to reproduce
- Create a new content item with properties shared across cultures
- Add content values in a non-default language (e.g., de-DE)
- Publish the content ONLY in the non-default language (do not publish in default language)
- Check the front-end - property values will be empty/null
- Check the database cmsContentNu table - published values will be NULL
- Verify that IPublishedContent.Value() returns null for the properties
Alternative reproduction:
- Take existing content that is published in multiple languages
- Make changes to the content
- Publish ONLY in a non-default language
- Observe that the changes are not reflected on the front-end
Expected result / actual result
Expected:
- Property values should be correctly saved to the database when content is published in any language
- IPublishedContent.Value() should return the correct values for published content
- Front-end should display the published content values regardless of which languages the content is published in
Actual:
- Property values are not saved to the database (cmsContentNu table shows NULL values)
- IPublishedContent.Value() returns null/empty values
- Front-end displays empty content even though the back office shows the content as published with values
- The only way to fix affected content is to publish it in the default language and then unpublish from the default language