I'm confused.  What does $@ have to do with the CODER having failed ?
Is this some weird side-effect of decode() ?