« script interrompu après 2000 ms (boucle infinie ?) » dans le scripting de Senzoukria
Chaque script de Senzoukria tourne dans un worker en bac à sable, avec un budget de 2 secondes par exécution. Un script qui le dépasse est interrompu avec « script interrompu après 2000 ms (boucle infinie ?) » ; un bac à sable qui n'a jamais démarré rapporte un message différent.
Senzoukria · Dépannage · Mis à jour en septembre 2026
En bref
- Délai dépassé
- « script interrompu après {ms} ms (boucle infinie ?) »
- Budget
- 2 000 ms par exécution
- Bac à sable non servi
- « bac à sable indisponible : le protocole {scheme} n'a rien servi en {ms} ms (application lancée hors de Tauri ?) »
- Effet
- Le graphique continue de tourner ; l'exécution du script renvoie une erreur
Ce que vous voyez
La console de script et le bandeau du pipeline montrent l'exécution comme échouée avec « script interrompu après 2000 ms (boucle infinie ?) ». Si le bac à sable n'a pas répondu du tout, l'erreur est « bac à sable indisponible : le protocole {scheme} n'a rien servi en {ms} ms (application lancée hors de Tauri ?) ».
Pourquoi cela arrive
Les scripts tournent dans un worker en bac à sable, sans réseau, sans accès aux fichiers et sans API broker. Une exécution qui ne répond pas dans son budget est interrompue, pour qu'un script cassé ne puisse pas figer le graphique. La cause la plus fréquente est une boucle qui ne se termine jamais, ou une boucle sur toutes les barres imbriquée dans une autre boucle sur toutes les barres. Les deux échecs sont tenus séparés à dessein : pendant deux mois et demi, un bac à sable qui ne démarrait pas avait été lu comme un script lent. Le démarrage du moteur Python est chronométré séparément et n'entre pas dans le budget de 2 secondes.
Comment corriger
- Cherchez les boucles while dont la condition de sortie peut rester fausse, et un compteur qui n'est jamais mis à jour.
- Remplacez les boucles imbriquées sur toutes les barres par un seul passage qui transporte des valeurs courantes.
- Testez sur une plage de graphique plus courte pour voir si le temps croît avec le nombre de barres.
- Utilisez l'assistant de script : il peut exécuter le script, lire l'erreur réelle et proposer un correctif.
- Pour le message de bac à sable, redémarrez l'application ; il indique que le protocole du bac à sable n'a rien servi.
Ce que ce n'est pas
- Pas un plantage de l'application : un script cassé ne tue jamais le graphique.
- Pas une erreur de syntaxe : celles-là désignent une ligne (« Échec ligne {line} »).
Quand contacter le support
Toujours bloqué après ces contrôles ? Passez par Menu → Signaler un problème, ou postez sur le Discord de Senzoukria. Joignez un script minimal qui reproduit l'interruption et indiquez sur quel graphique et quelle unité de temps il tourne.
Pages liées
Dans la même rubrique
- Source d'actualités saturée
- Chargement du Replay refusé (rp_code 13)
- Nom de système absent de la passerelle
- Bridge NinjaTrader mal configuré
- Compte connecté avec Google
- Replay : aucun tick pour ce jour
- Nombre maximal de machines
- Replay : aucun identifiant broker enregistré
Cette page dans d’autres langues
Questions fréquentes
- Le budget de 2 secondes est-il par barre ou par exécution ?
- Par exécution. La chaîne d'outils C++ annonce la même limite : 2 s par exécution, avec les 256 barres les plus récentes par appel.
- Les scripts Python ont-ils le même budget ?
- Leur exécution suit les mêmes règles de bac à sable ; seul le démarrage du moteur Python est chronométré en dehors du budget de 2 secondes.