I think the error is that the query is expecting a list of integers but is receiving a string
I found the CSVARRAY trick for multivalue parameters to be very slow so I use query scripting instead
Go to query scripting and select Groovy as the language. Paste the below and change the parameter1 to whatever your parameter is called. I also usually give the parameter a default value.
Code:
def computeQuery (query, queryName, dataRow)
{
query = query.replaceAll("FILTER id", dataRow.get("parameter1").toString())
return query
}
Then in your query modify it so that it is something like this
id IN (FILTER id)
It should now work for you
The only downside to this approach that it will only accept a limited number of values. What that limit is depends on how many characters your query is and how many digits your id values are. It is limited by the max URL length set by your browser/server as the query is passed over the URL