Merci @pfaffman, oui, cela provenait du plugin angusmcleod/discourse-events. Je l’avais deux fois dans le tableau hooks.after_code.exec.cmd, mais il semble qu’il y ait un autre problème avec lui.
Je vais y jouer un peu plus quand j’aurai l’occasion, et signaler un bug sur le dépôt GitHub pour ce plugin. Heureusement, nous sommes passés au plugin Events officiel il y a quelque temps, donc c’est juste pour nos événements passés.