more helpful message for contract failure