You can't use direct recursion, meaning you can't call /iptrace directly from inside /iptrace, which in your case is a good thing because you presumably meant to call /dns there otherwise it would've been an infinite recursive loop.
/iptrace { /set %userip $1- | /dns %userip | halt }