better to throw an exception if aborted by timeout