5.5.4 Validation Warnings are Treated as Errors by Default

Hi,

After recently upgrading from 5.4.4 to 5.5.4, we noticed that, by default, validation warnings are now being treated as errors. We found a [similar post from last [Content removed] acknowledging a new settings flag introduced in June 2024 that now controls this behavior. However, this setting is currently only exposed to native entry points that execute validation. For example, running the “Validate Changelist” command inside of the View Changes window will execute UEditorValidatorSubsystem::ValidateChangelistPreSubmit() with the following settings:

`// Create temporary changelist object to do most of the heavy lifting
UDataValidationChangelist* Changelist = NewObject();
Changelist->Initialize(InChangelist);

FValidateAssetsSettings Settings;
Settings.ValidationUsecase = EDataValidationUsecase::PreSubmit;
Settings.bLoadAssetsForValidation = GetDefault()->bLoadAssetsWhenValidatingChangelists;
Settings.MessageLogPageTitle = FText::Format(LOCTEXT(“MessageLogPageTitle.ValidateChangelist”, “Changelist Validation: {0}”), FText::FromString(InChangelist->GetIdentifier()));

FValidateAssetsResults Results;
OutResult = ValidateChangelist(Changelist, Settings, Results);`

Since FValidateAssetsSettings::bCaptureWarningsDuringValidationAsErrors defaults to “true”, any warnings logged during changelist pre-submission checks will result in a failure. We’d like to know if there is an option to control this behavior outside of this subsystem, or a best practice to suppress treating specific validation warnings as errors.

Steps to Reproduce

Hi,

It doesn’t look like there is any (currently exposed) way to toggle that setting on the existing delegate we use on Presubmit, though we could probably add a setting to UDataValidationSettings to control this. For now, you could subclass UEditorValidatorSubsystem to replace it with your own delegate. You should just need to override Initialize and change the call to RegisterPreSubmitDataValidation to point to your own delegate which passes in the desired settings. If a subclass exists, we’ll automatically prevent the data validation subsystem from initializing so that your subclass can handle it (see UEditorValidatorSubsystem::ShouldCreateSubsystem).

Alternatively, if you’d prefer to just add a setting to UDataValidationSettings and use it to drive that parameter in the existing delegate, feel free to send in a pull request and I can see if the team will integrate it.

Best,

Cody

Hi, Cody

Thanks for the quick response. Overriding that delegate at the subsystem level sounds sufficient for our needs. We’ll make that change to our source build for now and evaluate from there. If we determine that we’d like to make an engine pull request, we’ll consult the official channels. Thanks again for your assistance.