All string property values overwritten with DateTime.Now on publish (Umbraco 17.3.0, migrated from v13)

All string property values overwritten with current DateTime on publish (Umbraco 17.3.0, migrated from v13)

Hi,

After migrating from Umbraco 13 to 17.3.0 (via the sequential LTS upgrade path), I’m hitting a critical bug where publishing any content node causes all string based property values to be overwritten with the current datetime string (e.g. “4/13/2026 11:30:06 AM”).

This affects every document type, not just specific ones.

Affected property editors: TextBox, TextArea, RichText, Tags (That i know off)

The behavior:

  • Editing content and clicking Save sends the correct payload to the server (verified via browser DevTools)
  • Publishing also succeeds - the published snapshot contains the correct data
  • However, immediately after publish, a GET on the document returns datetime strings in all string-based fields
  • The datetime matches the publish timestamp exactly
  • Rollback to the published version shows the correct content, confirming the published data is intact but the draft/edited values are corrupted
  • Publishing a second time then pushes the corrupted draft values live, destroying the content

The datetime format is US-culture DateTime.Now.ToString() (“M/d/yyyy h:mm:ss tt”), which points to server-side C# code writing this. But i cant pinpoint anything

What I’ve investigated:

  • No custom INotificationHandler in my solution (searched all .cs files)
  • Packages installed: Articulate 6.0.0-beta (local build from gavinfaux fork, v17/dev branch), Skybrud Redirects
  • Reviewed Articulate’s ContentSavingHandler and ContentSavedHandler source - both are properly filtered by Articulate content type aliases, so they shouldn’t affect other document types
  • The save payload (PUT to /umbraco/management/api/v1/document/{id}) contains correct values
  • The publish payload is just {“publishSchedules”:[{“culture”:null}]}
  • The GET response after publish has all string fields replaced with the datetime

Environment:

  • Umbraco 17.3.0 on .NET 10
  • SQL Server (Azure)
  • Azure Blob Storage for media
  • Migrated from Umbraco 13 via sequential LTS upgrade path
  • Running locally via IIS Express during debugging

Has anyone encountered this? Any ideas what could be iterating over all properties and writing DateTime.Now to string fields during publish?

Temp fix:

  • Currently im compensation by using “rollback”, to rollback to the actual published version, since it only affects new saves. So when rolling back the currect content shows up

Thanks in advance.

I never heard of this and if this were the case, I think the issue tracker would be on fire :smiley:

I asked Claude to check the source code of Umbraco 17.3.x and it couldn’t find any apparent bug:

the symptom shape (all string properties, all doc types, only on publish, draft corrupted but published snapshot intact, value equals the publish timestamp) is exactly what you’d see from foreach (var p in content.Properties) p.SetValue(DateTime.Now) running in a ContentSavingNotification handler during the publish path — i.e. a custom or third-party handler (the reporter is running Articulate). Recommended diagnosis on the forum: repro on a clean 17.3.5 install with Articulate and ~/bin plugins removed, and breakpoint IProperty.SetValue / the saving + publishing notification handlers.

Hi @Jake

Is this something you can check locally when debugging? If you created a content saving and saved notification, do you see the values set to date/time when stepping through the code?

You can also query which handlers are currently active and remove any handlers one b one to rule them out?

Justin