umbraco / Umbraco-CMS

Umbraco is a free and open source .NET content management system helping you deliver delightful digital experiences.
https://umbraco.com
MIT License
4.41k stars 2.66k forks source link

v14-rc1 - Setting the Image Upload Folder on a Rich Text Editor causes content save to fail. #16083

Closed KevinJump closed 4 months ago

KevinJump commented 5 months ago

Which Umbraco version are you using? (Please write the exact version, example: 10.1.0)

v14-rc1

Bug summary

Settings a Image upload folder on a Rich text editor datatype, and then attempting to save content using that Rich text editor fails.

Specifics

When you save the UI hangs (spinning buttons) and the following error is in the logs.

 An unhandled exception has occurred while executing the request.
System.InvalidOperationException: The configuration for data type -87 : Umbraco.RichText is invalid (see inner exception). Please fix the configuration and ensure it is valid. The site may fail to start and / or load data types and run.
 ---> System.InvalidOperationException: Failed to parse configuration "System.Collections.Generic.Dictionary`2[System.String,System.Object]" as "RichTextConfiguration" (see inner exception).
 ---> System.FormatException: String "069ef55e-6a88-4deb-9d2c-60df36b6eece" is not a valid udi.
   at Umbraco.Cms.Core.UdiParser.ParseInternal(String s, Boolean tryParse, Boolean knownTypes, Udi& udi)
   at Umbraco.Cms.Core.UdiParser.Parse(String s)
   at Umbraco.Cms.Infrastructure.Serialization.JsonUdiConverter.Read(Utf8JsonReader& reader, Type typeToConvert, JsonSerializerOptions options)
   at System.Text.Json.Serialization.JsonConverter`1.ReadAsObject(Utf8JsonReader& reader, Type typeToConvert, JsonSerializerOptions options)
   at System.Text.Json.Serialization.Converters.CastingConverter`1.Read(Utf8JsonReader& reader, Type typeToConvert, JsonSerializerOptions options)
   at System.Text.Json.Serialization.JsonConverter`1.TryRead(Utf8JsonReader& reader, Type typeToConvert, JsonSerializerOptions options, ReadStack& state, T& value, Boolean& isPopulatedValue)
....

It looks like this is because the Image Upload load folder property stores the GUID of the media folder - but the validation of the page is expecting it to be a UDI ?

Steps to reproduce

Expected result / actual result

Should save.

github-actions[bot] commented 5 months ago

Hi there @KevinJump!

Firstly, a big thank you for raising this issue. Every piece of feedback we receive helps us to make Umbraco better.

We really appreciate your patience while we wait for our team to have a look at this but we wanted to let you know that we see this and share with you the plan for what comes next.

We wish we could work with everyone directly and assess your issue immediately but we're in the fortunate position of having lots of contributions to work with and only a few humans who are able to do it. We are making progress though and in the meantime, we will keep you in the loop and let you know when we have any questions.

Thanks, from your friendly Umbraco GitHub bot :robot: :slightly_smiling_face:

elit0451 commented 5 months ago

Hi there @KevinJump 👋

Thanks for reaching out! I can indeed reproduce this, we will have a look 🙂

kjac commented 4 months ago

Fixed in https://github.com/umbraco/Umbraco-CMS/pull/16138