|Do you know where your variables are?
Wow! I don't know what's more amazing ... a question about a decade old post, the fact that the monastery is still here after ten years, or that I'm still here to answer it.
are no longer sufficient to keep non-error messages off of STDERR. GPG interpets anything on STDERR as an error and will not return the output
So ... the real solution is to use a newer module (maybe GnuPG -- but I haven't really looked into it). But ... if you're feeling hacky, you can always modify GPG to use the --quiet option and that should prevent information on STDERR from blocking the decrypt.