why not handle any error tuple, like `{error, timeout}`?