I'm not sure about setting success to false if an error occurs.  If an error does not occur, how do you set success to true?  Is it a default argument?  That just seems... strange, to me.  Setting isError to true is very "direct" because you handle the error, and set isError in the error handler.