fix(filter): throw error if not used with an array

Throw error if filter is not used with an array.

Closes #9992

BREAKING CHANGE: Previously, the filter was not applied if used with a non array.
Now, it throws an error.
you can write a custom filter which just returns the input object, you can use lowercase, etc etc --- doesn't matter a lot