distinguish canceled and timed out requests