Erreur : impossible de notifier l'administrateur lors de la restauration d'une sauvegarde pendant une migration vers une nouvelle installation

Suite à la discussion de Déplacer votre instance Discourse vers un autre serveur :

Après avoir installé Discourse sur un nouveau serveur, enregistré un nouvel administrateur (avec le même nom d’utilisateur que l’ancien administrateur) et restauré les sauvegardes, tout se passe bien jusqu’à la fin, puis j’obtiens cette erreur :

[2020-01-24 07:06:47] Notification de la fin de la restauration à 'padpors'... [2020-01-24 07:06:47] Une erreur s'est produite lors de la notification à l'utilisateur.

En conséquence, la sauvegarde ne peut pas être restaurée.

1 « J'aime »

J’ai récupéré une autre sauvegarde du site et j’ai tenté de la restaurer via le terminal en suivant ce tutoriel : Restore a backup from the command line. Mais à la fin de la restauration, j’ai obtenu la même erreur dans le terminal :

Notification de la fin de la restauration au système...
Une erreur s'est produite lors de la notification à l'utilisateur.
Terminé !
[ÉCHEC]
Restauration terminée.

Puisque les sauvegardes étaient correctes, je suppose qu’il s’agit d’un bug.

6 « J'aime »

@gerhard as-tu une idée de ce qui pourrait causer ce problème ?

7 « J'aime »

De nombreuses modifications ont été apportées récemment au code de sauvegarde/restauration. Êtes-vous à jour ?

2 « J'aime »

Je vois cette erreur tout le temps aussi.
MAIS… cette erreur survient après la restauration, et celle-ci se termine avec SUCCÈS. Donc c’est une erreur, mais elle ne cause certainement pas l’échec des restaurations.

Reprendre Sidekiq...
Marquer la restauration comme terminée...
Notifier 'DHSupport' de la fin de la restauration...
Quelque chose s'est mal passé lors de la notification à l'utilisateur.
Terminé !
[SUCCÈS]

Êtes-vous sûr qu’il n’y a pas d’erreur plus haut ?

6 « J'aime »

J’ai creusé un peu plus.

#<NoMethodError: undefined method `join' for nil:NilClass>
Backtrace :
     lib/discourse.rb:45:in `pretty_logs'
     /var/www/discourse/lib/backup_restore/restorer.rb:134:in `notify_user'

Il semble que @logs ne soit pas initialisé ?

7 « J'aime »

Oui, il s’agit d’une installation très récente et mise à jour sur les deux instances.

Aucune autre erreur plus haut, mais je vérifierai à nouveau pour être sûr.

1 « J'aime »

Vous aviez raison, voici l’erreur précédente :

ERROR:  could not create unique index "index_tags_on_lower_name"
DETAIL:  Key (lower(name::text))=(زبا�) is duplicated.
EXCEPTION: psql failed: DETAIL:  Key (lower(name::text))=(زبا�) is duplicated.

Ce qui, je suppose, a déjà été signalé ici : Can't restore due to corrupt indexes (with some clues on how to deal with corrupt indexes) et ici There are some duplicated tags due to database corruption and I can't merge .

8 « J'aime »
9 « J'aime »