Recommended way to ignore known warnings in Horde

Hi folks,

What is the current recommended method of ignoring/whitelisting/downgrading known warnings in UE5 so that they don’t generate Horde issues?

The IgnorePatterns.txt method doesn’t seems to work with UE5’s structured logging, and Horde’s Build Health documentation does not offer any suggestions as far as ignoring issues, just for better categorizing them with fingerprints.

Thanks!

Hello Ben, yes IgnorePatterns.txt is intended for filtering out logging for which there is no control, such as from SDK’s and other tooling. Unfortunately, that also includes these UE5 warnings in this case :slight_smile:

Can you please share the warnings you are receiving? I don’t have a good way to provide at the moment for keeping these from generating issues, as this is kind of by design. Though, I understand you don’t want to see them in your build health workflow.

Thanks, Josh.

Just to clarify, I meant the UE5 method (versus the UE4 method) of ignoring warnings we know about, rather than the warnings being known to come from UE5 in particular.

That said, the warnings in particular that I’m trying to ignore right at this point in time are:

MDL SDK missing warning from the MDLImporter engine plugin:

LogMDLImporter: Warning: MDL SDK was not available when plugin was build - MDL plugin won't be functional!Compiler warning C4996, which is usage of deprecated symbols and is a multi-line warning, and I’m seeing two variants of it; simple ones like this which are pretty much all the same

[96/3324] Compile [x64] PCH.UnrealEd.cpp C:\agent\game\Sync\Engine\Source\Runtime\Engine\Classes\Materials\MaterialExpression.h(366): warning C4996: 'UMaterialExpression::GetInputsView': Use FExpressionInputIterator instead or GetInput() directly. Please update your code to the new API before upgrading to the next release, otherwise your project will no longer compile.and more complex ones like this that have things to say about the MSVC toolchain version we have in AutoSDK

C:\agent\game\Sync\Engine\Plugins\Animation\RigLogic\Source\RigLogicLib\Public\terse\types\DynArray.h(73): warning C4996: 'stdext::checked_array_iterator<float *>': warning STL4043: stdext::checked_array_iterator, stdext::unchecked_array_iterator, and related factory functions are non-Standard extensions and will be removed in the future. std::span (since C++20) and gsl::span can be used instead. You can define _SILENCE_STDEXT_ARR_ITERS_DEPRECATION_WARNING or _SILENCE_ALL_MS_EXT_DEPRECATION_WARNINGS to suppress this warning. C:\agent\AutoSDK\Sync\HostWin64\Win64\VS2022\14.38.33130\INCLUDE\iterator(1470): note: see declaration of 'stdext::checked_array_iterator' C:\agent\game\Sync\Engine\Plugins\Animation\RigLogic\Source\RigLogicLib\Public\terse\types\DynArray.h(73): note: the template instantiation context (the oldest one first) is C:\agent\game\Sync\Engine\Plugins\Animation\RigLogic\Source\RigLogicLib\Private\dna\DNA.h(593): note: see reference to function template instantiation 'terse::DynArray<float,pma::PolyAllocator<float,64,pma::AlignedMemoryResource>>::DynArray<const float*>(TIterator,TIterator,const pma::PolyAllocator<float,64,pma::AlignedMemoryResource> &)' being compiled with [ TIterator=const float * ] C:\agent\game\Sync\Engine\Plugins\Animation\RigLogic\Source\RigLogicLib\Private\dna\DNA.h(593): note: see the first reference to 'terse::DynArray<float,pma::PolyAllocator<float,64,pma::AlignedMemoryResource>>::DynArray' in 'dna::RawVector3Vector::RawVector3Vector'Initially I tried to IgnorePatterns.txt method following Branden’s reply in [this [Content removed] which I was how our previous UE4.26 project building on Horde whitelisted warnings/errors, but I’ve not had any success in our newer UE5 projects even though the job executor on Horde logs that my Engine/Build/Horde/IgnorePatterns.txt is being read.

Since posting this question I attempted implementing an EventMatcher following the author’s example in [this [Content removed] and have had success downgrading the log level to information for single line warnings like the MDL SDK one mentioned earlier, but haven’t had success with the multi-line warnings (likely) because they’re structured log events as the thread concludes.

The IgnorePatterns.txt file is significantly more convenient than adding the event matcher and would be my preference, so if you say it’s the way to go maybe I’m doing something wrong?

Any suggestions would be appreciated.

Thanks for the confirmation, Josh.

I’ll definitely have a look into the CompileEventMatcher, and will let you know how I get on.

Thanks Ben, this context helps, and I confirmed IgnorePattern.txt is not used for UE5, sorry about this confusion. We need to better surface this as even I wondered whether it was still being used for logs we don’t control.

I am going to be OOO this next week, though I will dive into this when return, agree that we need a simpler way to suppress these than needing to generate a custom event matcher.

In the meantime, if you look in Engine\Source\Programs\UnrealBuildTool\Matchers\CompileEventMatcher.cs, can see an example of the matcher used for compile events, which are multiline, and may help with some ideas, since you have started down that path with some success.

Hi Ben, just a quick update that we’re currently in feature lock and getting 5.6 out the door. I have filed UE-273855 to add IgnorePatterns support back into UE5