Niagara Data Interface GetFeedback() error text not showing consistently

Hi! I’ve noticed that the details of the errors returned from UNiagaraDataInterface::GetFeedback are only presented in the UI of the Particle System editor after the particle system editor is closed and reopened. If I create an issue that generates feedback, I can only see a generic message “The displayed object has errors. Check the object properties or the message log for details.” in the “Object has errors” section. I would expect to also see my message from GetFeedback in the “Errors And Warnings” section below. The custom message explains to the user how to fix the issue and not having it is confusing. When I close the editor and double click on the particle system asset to bring the editor back the custom error appears as expected.

Steps to Reproduce
In a class inheriting from UNiagaraDataInterface return an error message in OutError param of GetFeedback method based on some condition. The returned error is not shown until the asset editor is closed and reopened.

Hi Maciej,

Sorry about the delay. I am looking into this now and should get back to you soon.

Best regards,

Vitor

Hi Maciej,

Thank you for the report. I was able to repro the behavior you described even on built-in Data Interfaces, such as the Static Mesh. When the linked static mesh does not have “Allow CPU Access” enabled, the Data Interface should display an error. However, ticking and unticking the “Allow CPU Access” option does not update the “Errors and Warnings” section of the Data Interface either way (the error also does not disappear when the problem is fixed in the Static Mesh Editor).

After investigating the engine source code and testing in different versions, I noticed that this is actually a regression: it used to work as expected up to UE 5.5 and started misbehaving in UE 5.6. I tracked down the problem to CL 40093049, which removed the call DataInterfaceObject->RefreshErrors() from function UNiagaraStackObject::RefreshChildrenInternal() on file [Engine\Plugins\FX\Niagara\Source\NiagaraEditor\Private\ViewModels\Stack\NiagaraStackObject.cpp]. Adding that call right after the line “if (DataInterfaceObject != nullptr)” appears to solve the issue, but it might bring back some other problem that the CL attempted to address.

I have filed an internal bug report about this issue. Here’s the bug tracker link: UE-313704. You should be able to access and track progress on it once the engine devs mark it as public.

Please let me know if there is anything else I can do to assist.

Best regards,

Vitor

Hi, Vitor!

Thank you for checking this and tracking it down - that’s very interesting background. It looks like I can’t see the details in the bug tracker yet but it’s great to know this is going to be fixed.

Thanks again,

Maciej