« 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.

Dans la même rubrique

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.

À lire ensuite