Значит, в самой функции, как обычно, изначально не было проблем, а была в том, что (как его там звали?) решил селектнуть несколько раз задачу, зависящую от сетевых данных. Ну тупой.
Проблема не конкретно в селекте, а в том, что от кенсела может зависеть состояние твоих структур, вот только ньюфагам нифига не очевидно, что функция может кенсельнуться в любом await.