Il peut y avoir plusieurs raisons coté duniter-v2 pour lesquelles cela arrive:
- La souscription RPC ne garantit pas de retourner la notification, il se peut que tout se passe très bien mais que le serveur RPC ne retourne aucune notification, c’est toutefois censé être très rare, ça arrive généralement quand le serveur RPC est surchargé de requêtes, il va alors skip des notifications pour prioriser le traitement d’autres requêtes.
- La réponse vient quand l’extrinsic est introduit dans 1 bloc, ce qui nécessite que ce dernier arrive dans la pool d’un nœud qui va forger un bloc. Plus il y a d’authorités, plus ça peut être long. Je ne sais pas combien de blocs il faut attendre en moyenne selon le nombre d’authorités, on va le voir par l’expérience, ce serait chouette que quelqu’un fasse des stat là-dessus
- L’extrinsic expire avant de pouvoir être inclus dans un bloc (ne peut arriver que si la blockchain est surchargée)
- L’extrinsic deviens invalide avant de pouvoir être inclus dans un bloc (par exemple si un autre extrinsic du même issuer avec le même nonce passe entre-temps).
- Si l’exécution de l’extrinsic panic ou par en boucle infinie.
- Peut-être d’autres cas possibles auxquels je ne pense pas
À priori, seule la raison “panic ou boucle infinie” constitue un bug, pour savoir si on est dans ce cas il faut rééxécuter l’extrinsic localement contre le même state, ce qui est possible avec des outils de testing comme try-runtime, mais ça demande du développement coté node/host pour pouvoir l’utiliser (c’est dans ma roadmap).
EDIT: @poka note aussi que même si le serveur RPC t’envoie bien la notif, il est possible que ta lib RPC où ton wallet Ğecko ne relaye pas la notif dans certains cas pour “whatever reason”, ça peut être notamment des problèmes de gestion de l’asynchrone