supported_send_options and supported_recv_options now cache their list only after all options were tested. They used to cache an empty list first and fill it in, so when valid_command() raises halfway, the option would still be missing from the cached list for the rest of the run.