Ok il problema era che gestivi del codice asincrono come se fosse sincrono e quindi non funzionava.
In questo modo riesci a bypassare il problema, probabilmente in base a come è il resto del codice si potrebbe fare meglio, ma così dovrebbe funzionare.