Skip to content

[BUG] V16.3.1 ContentPublishedNotification returns stale IPublishedContent data — cache not refreshed even after waiting or forcing distributed cache refresh #20539

@andrejd22

Description

@andrejd22

Which Umbraco version are you using?

16.3.1

Bug summary

When handling the ContentPublishedNotification event in Umbraco, attempting to retrieve the corresponding IPublishedContent instance always returns previous (stale) content data.

This issue appears to go beyond the known limitation that published content cache refreshes asynchronously — in this case, even if you wait for an extended period (5, 10, 20, 30 seconds, etc.) within the same process scope, the retrieved IPublishedContent still reflects old data, not the latest changes.

TinyTake.by.MangoApps-17-10-2025-11-26-48.mp4

Attempting to manually refresh the cache using the distributed cache mechanisms inside the ContentPublishedNotification handler also has no effect — the stale content persists until after the current operation completes and a new scope or request is started.

distributedCache.RefreshContentCache(
	notification.PublishedEntities.Select(node =>
		new TreeChange<IContent>(node, TreeChangeTypes.RefreshNode)
	)
);

This behavior did not occur till Umbraco 16.2.0 — in those versions, retrieving IPublishedContent inside ContentPublishedNotification correctly returned the latest published content. The issue appears to have been introduced in latest version.

Specifics

During application startup, the following error was also observed, which may or may not be related to the cache refresh issue:
Image

Steps to reproduce

  1. Create a notification handler for ContentPublishedNotification.
  2. Inside the handler, retrieve the just-published item using IPublishedContent.
  3. Inspect the field values — they reflect the previous version of the content, not the one just published.
  4. Optionally, try:
    • Waiting several seconds before reading IPublishedContent.
    • Manually calling distributed cache refresh methods.
    • Observing that the data does not update until after the current notification scope completes.

Expected result / actual result

After content is published, retrieving the corresponding IPublishedContent inside ContentPublishedNotification should reflect the latest published data — or at least provide a reliable way to force a refresh.

This issue is very urgent and blocking. We have several custom handlers that perform integrations with third-party systems based on ContentPublishedNotification. Because IPublishedContent now always returns old data, these integrations receive incorrect information — causing failures, outdated content propagation, and inconsistent external data.

As a result, we are stuck on Umbraco 16.2.0, because latest version introduces this regression.

However, staying on 16.2.0 is also not a viable option — those latest version includes very important performance fixes related to custom Block View rendering, which we urgently need in production to resolve performance bottlenecks.

Right now, we are blocked between two critical issues:

16.2.0 → Works correctly for IPublishedContent, but has severe performance problems with Block View rendering.

16.3.0+ → Fixes performance, but breaks cache consistency in ContentPublishedNotification.

We urgently need guidance or a patch to move forward.


This item has been added to our backlog AB#61025

Metadata

Metadata

Assignees

No one assigned

    Labels

    state/sprint-candidateWe're trying to get this in a sprint at HQ in the next few weekstype/bug

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions