| Previous | Next |
| UTC_E_FILTER_INVALID_COMMAND | hrBFNotSynchronous |
UTC_E_FILTER_ILLEGAL_EVAL
Locate the rejected contract: filter comparison evaluator
UTC_E_FILTER_ILLEGAL_EVAL (0x87C51053) is a Universal Telemetry Client result from the scenario filter parser and evaluator layer. The symbolic name points to a narrow UTC contract that can be tested directly. The relevant state is filter comparison evaluator: two operands reached evaluation but their types have no legal comparison or operation. This identifies a specific UTC/DiagTrack condition, not a general service failure.
UTC filters are typed programs, not plain text searches. Parsing, command validation, name lookup, signature binding and evaluation are distinct phases. Capturing the normalized expression and inferred operand types is essential for a useful diagnosis.
Capture checklist
| UTC diagnostic field | Value |
|---|---|
| Producing layer | scenario filter parser and evaluator |
| Owning state or object | filter comparison evaluator |
| Evidence to collect | operator, left/right values and inferred types, conversions, null state and event field origins |
| Narrow comparison | convert one operand to the intended common type and replay the same event |
| Do not confuse with | UTC_E_FILTER_INVALID_FUNCTION_PARAMS is function-call binding rather than binary evaluation |
Comparison with a passing case
- Collect the high-value state: operator, left/right values and inferred types, conversions, null state and event field origins.
- Use a passing control on the same Windows build, then convert one operand to the intended common type and replay the same event.
Nearby result: UTC_E_FILTER_INVALID_FUNCTION_PARAMS — is function-call binding rather than binary evaluation.
Typed-filter note
Save the filter after variable substitution and type inference, not only the authoring XML. A visually plausible expression can still fail because the runtime command table, scope or operand types differ from the authoring tool. Test with one synthetic event whose fields and types are known exactly.
Resolution and regression test
Make type compatibility explicit in the filter and reject malformed producer data earlier.
Technical references
- Microsoft Open Specifications: Windows error-code registry — reference for scenario filter parser and evaluator while interpreting this result.
- Microsoft: Universal Telemetry Client configuration diagnosis — reference for scenario filter parser and evaluator while interpreting it.
- Microsoft: Windows Event Log query schema
- Microsoft: Querying Windows Event Log
Looking for a different code? Search another status or error code.
