@timeout(4) @retry(tries=6, delay=2) def retry_after_each_timeout(): # time.sleep(5) raise Exception This code will raise a timeout exception after 4 seconds, not after 6 tries. Uncomment the sleep code make it behaviour right.