regardless of all of the above checking, this needs to have a try-except even if only for a race condition where state that was tested above has changed.