fixed a long-running bug which I never got round to earlier! This ensures that any async message failures generate a fluent exception