This "expression evaluation not supported" message makes me sick since IB4. In big stored procedures or complex queries it's almost impossible to know immediately what went wrong, since no more information is available.
This message has number 286 in the JRD facility and appears 46 times in the JRD directory (8 in cmp.cpp, 8 in evl.cpp and 30 times in SysFunction.cpp).
Also, the same text has number 167 in the SQLERR facility, although I can't find where it's used.
Either the same message should be given parameters (and old clients will ignore them) or new messages should be appended as subcodes. Currently, guessing here the offending code is really hard game.