Answer
Enum values used in a $filter condition need the fully qualified enum type name, not just the bare value — write it as Namespace.Projection.EnumTypeName'Value' for a static value (e.g. IfsApp.ShipmentsHandling.ShipmentListState'Completed'), or Namespace.Projection.EnumTypeName$[Placeholder] when passing a parameter placeholder. A filter using just the bare value or placeholder without that qualified type prefix looks reasonable but isn't valid OData syntax for an enum comparison, which is why it fails as a direct navigation link even though the equivalent manual search in Advanced Search still works.