i think it would be better to timeout in the success function, so it will not do it again on failure