also call completion on failure