If the function returns false, is it an error?  If so, should transition to error instead of idle, below.