The licensee described it really well so I'll just copy what he said:

When EQS debugging is enabled via USE_EQS_DEBUGGER, queries run in 'SingleResult' mode will not clear discarded items from the result structure. This prevents end users from using the convenient GetAllAs* API to grab whatever is in the result.

The end user is required to store what mode the query was run in so that they can know if they need to explicitly grab the zero-index item to avoid discarded data. This paradigm is shown in UEnvQueryInstanceBlueprintWrapper. The results struct does not provide a way to check for discarded items and it does not contain the run mode to know which API is safe to use. Only one run-mode returns discarded data. It seems the more symmetrical and clean solution would be to have an explicit API to retrieve debug data (i.e discarded items) so that user code can always have a safe API to call.

Have Comments or More Details?

There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-91172 in the post.

Login to Vote

Won't Fix
ComponentUE - AI - EQS
CreatedMar 26, 2020
ResolvedJul 19, 2022
UpdatedJul 19, 2022