what does it return if it fails?