My project has a data asset with FFloatInterval’s and FRuntimeFloatCurve’s as editable properties. When I change a value on the float interval, I will hit an ensure:
[2025.11.04-01.40.35:600][ 39]LogOutputDevice: Error: Ensure condition failed: Handle->SetValue(NewValue, Flags) == FPropertyAccess::Success [File:D:\build\++UE5\Sync\Engine\Source\Editor\DetailCustomizations\Private\IntervalStructCustomization.cpp] [Line: 287]
This is mostly just an annoyance. But it really is annoying! A repro from a clean, pre-built install of 5.6.1 is attached.
Hi Peter,
Thank you for the report and repro project. I was able to repro this issue on my end here on UE 5.6. After some investigation, I got to the root cause of the problem: the SCurveEditor widget used by FRuntimeFloatCurve requests a full refresh of the Details Panel when there is a change to any property of its owning asset (your DataAsset or an Actor, for example). During this refresh, the Property Editor Row used by FFloatInterval gets destroyed and recreated. However, upon destruction, the editable text field being edited loses focus, triggering an extra commit of its value. This extra commit attempts to set the value to a now-destroyed property, causing the ensure to fire.
Unfortunately, I can’t think of a workaround for this, except maybe keeping the FRuntimeFloatCurve in a separate category and keeping it collapsed while not in use.
The good news, though, is that this issue seems to have already been fixed on october 10th. So, if you are building the engine from source, you can integrate the fix from CL 46990575 on Perforce or commit e29f907 on GitHub.
Let me know if that helps!
Best regards,
Vitor
Excellent! Thanks so much.