return error message better than redirecting