when using code like this:
q.whereNotIn( 'id', target.getId() )
it might fail if target.getId is numeric.
So if you pass in a single number instead of a list of numbers. It can be interpreted as a number instead of a string.
The whereIn function is using NormalizeToArray(arguments.values ), so if you pass something to this function the arguments.values should be explicitly cast to a string.
If it is interpreted as a number it will fail. Java strings have a split function, but Number.split() is not a function. That's the error I got in qb7. Not tested in older versions.