prevent calling callback twice when error thrown

We don't want the callback invocation to be in the try block. Otherwise,
if the callback throws an error, bplist will unintentionally catch it
and then call the callback again.