YunoHost a rencontré une erreur interne :/ GET /apps {"locale":"fr","installed":""} ... KeyError: 'label'

Bonjour à tous !

Mon serveur YunoHost

Matériel: Dell x86.
Version de YunoHost:
repo: stable
version: 3.6.5.3
yunohost-admin:
repo: stable
version: 3.6.5.1
moulinette:
repo: stable
version: 3.6.4.1
ssowat:
repo: stable
version: 3.6.4
J’ai accès à mon serveur : En SSH, par la webadmin et en direct avec un clavier/écran
Êtes-vous dans un contexte particulier ou avez-vous effectué des modificiations particulières sur votre instance ? : oui
Mise à jour vers yunohost 3.6.5.3, et restauration d’une sauvegarde nextcloud

Description du problème

Suite à la mise à jour vers yunohost 3.6.5.3, et la mise à jour de nexcloud, nextcloud était cassé (interface web ne s’affichait plus). J’ai restauré une sauvegarde de nextcloud.

Depuis, je ne peux plus afficher la liste des applications installées.

NB: vous pouvez utiliser le service paste.yunohost.org pour partager des logs ou messages d’erreurs. Vous pouvez aussi inclure directement ces messages en utilisant les “backticks” (accent grave) comme ceci :

Impossible de récupérer le flux : https://yunohost.org/security.rss. Il se peut qu’une extension empêche votre navigateur d'exécuter cette requête (ou que le site web soit hors service).

YunoHost a rencontré une erreur interne :/
Vraiment navré.
Vous devriez chercher de l’aide sur le forum ou le salon pour résoudre le problème, ou rapporter le bogue sur l’outil de suivi.
Les informations suivantes peuvent être utile à l’interlocuteur vous aidant :
Action

GET /diagnosis
 {"locale":"fr"}

Trace

Traceback (most recent call last):
  File "/usr/lib/python2.7/dist-packages/moulinette/interfaces/api.py", line 439, in process
    ret = self.actionsmap.process(arguments, timeout=30, route=_route)
  File "/usr/lib/python2.7/dist-packages/moulinette/actionsmap.py", line 523, in process
    return func(**arguments)
  File "/usr/lib/moulinette/yunohost/tools.py", line 810, in tools_diagnosis
    applications = app_list()['apps']
  File "/usr/lib/moulinette/yunohost/app.py", line 320, in app_list
    label = app_info_dict_raw['settings']['label']
KeyError: 'label'


mokay, est-ce que si en ssh tu fais :

cat /etc/yunohost/apps/nextcloud/settings.yml | grep label

ca affiche quelque chose ?

/home/admin# cat /etc/yunohost/apps/nextcloud/settings.yml | grep label
label: Nextcloud

cat /etc/yunohost/apps/*/settings.yml | grep label
label: Archivist
label: Calibre-web
label: Collabora
label: Etherpad Mypads
label: Firefox Sync Server
label: Framaforms
label: blog
label: I Hate Money
label: Kresus
label: Mastodon
label: Shaarli
label: Public
label: Nextcloud
label: Nextcloud
label: OpenSondage
label: phpMyAdmin
label: cozy
label: Roundcube
label: rss-bridge
label: Searx
label: Shell In A Box
label: Strut
label: The Lounge

Uh wokay … ça fait beaucoup o.O"

Mais en l’occurence on cherche une app qui n’aurait pas de label :s

Possiblement peut-être avec ce script:

for FILE in $(ls /etc/yunohost/apps/*/settings.yml); do grep -q "label:" $FILE || echo $FILE; done

Bonne idée, merci, mais la requête ne revoie aucun résultat :

for FILE in $(ls /etc/yunohost/apps/*/settings.yml); do grep -q "label:" $FILE || echo $FILE; done
# 

Mouarf …

bon comme je vois que tu es un peu à l’aise avec la ligne de commande, est-ce que tu saurais ouvrir le fichier (par exemple avec nano) et aller à la ligne 320 du fichier /usr/lib/moulinette/yunohost/app.py et rajouter un print(app_info_dict_raw) avant la ligne qui pose soucis ?

Comme ceci :

print(app_info_dict_raw)
label = app_info_dict_raw['settings']['label']

(attention avant le label = il y a des espaces et il faut que le print soit indenté au même niveau)

Puis ensuite tu peux faire yunohost app list pour voir si ça marche (peut-être rajouter un --raw après)

merci beaucoup, grâce à votre aide, j’ai l’impression d’avancer ! en effet, je vois deux lignes pour nextcloud, dont une qui ne contiend pas de champ “label”.

J’ai donc fait

yunohost app remove nextcloud                                                                                
Info : Suppression de l'application nextcloud …                                                                                       
Info : [....................] > Loading installation settings...
Info : [++++++++++..........] > Removing dependencies...
Info : [##########++........] > Removing the MySQL database...
Info : [############+.......] > Removing app main directory...
Info : [#############+......] > Removing nginx web server configuration...
Info : [##############+.....] > Removing php-fpm configuration...
Info : /etc/php/7.0/fpm/conf.d/20-nextcloud.ini wasn't deleted because it doesn't exist.
Info : [###############.....] > Removing logrotate configuration...
Info : [###############++++.] > Removing fail2ban configuration...
Info : [###################.] > Removing the dedicated system user...
Succès ! nextcloud a été supprimé
 

mais il me reste encore une ligne

{'status': {u'installed_at': 1548444623, u'upgraded_at': 1562850940, u'remote': {u'url': u'https://github.com/YunoHost-apps/nextcloud_
ynh', u'type': u'git', u'branch': u'master', u'revision': u'9d33e5aeb1b57386754845642b10d2b21e152b26'}}, 'change_url': True, 'reposito
ry': None, 'settings': {}, 'installed': True, 'upgradable': 'url_required', 'version': u'15.0.5~ynh3', 'manifest': {u'maintainer': {u'
name': u'YunoHost Contributors', u'email': u'apps@yunohost.org'}, u'description': {u'fr': u"Consultez et partagez vos fichiers, agenda
s, carnets d'adresses, emails et bien plus depuis les appareils de votre choix, sous vos conditions", u'en': u'Access & share your fil
es, calendars, contacts, mail & more from any device, on your terms'}, u'license': u'AGPL-3.0', u'url': u'https://nextcloud.com', u'ar
guments': {u'install': [{u'ask': {u'fr': u'Choisissez un domaine pour Nextcloud', u'en': u'Choose a domain for Nextcloud'}, u'type': u
'domain', u'name': u'domain', u'example': u'domain.org'}, {u'ask': {u'fr': u'Choisissez un chemin pour Nextcloud', u'en': u'Choose a p
ath for Nextcloud'}, u'default': u'/nextcloud', u'type': u'path', u'name': u'path', u'example': u'/nextcloud'}, {u'ask': {u'fr': u"Cho
isissez l'administrateur de Nextcloud (doit \xeatre un utilisateur YunoHost existant)", u'en': u'Choose the Nextcloud administrator (m
ust be an existing YunoHost user)'}, u'type': u'user', u'name': u'admin', u'example': u'homer'}, {u'ask': {u'fr': u'Acc\xe9der au doss
ier personnel des utilisateurs depuis Nextcloud ?', u'en': u'Access the users home folder from Nextcloud?'}, u'default': False, u'type
': u'boolean', u'name': u'user_home'}]}, u'multi_instance': True, u'version': u'15.0.5~ynh3', u'packaging_format': 1, u'services': [u'
nginx', u'php7.0-fpm', u'mysql'], u'requirements': {u'yunohost': u'>= 3.2.0'}, u'id': u'nextcloud', u'name': u'Nextcloud'}}           
Succès ! La configuration de SSOwat a été générée
root@XXX:/home/admin# yunohost app remove nextcloud                                                                                
Erreur : nextcloud n’est pas installé

j’imagine qu’il faut que je supprime cette autre installation de nextcloud, mais je ne sais pas comment faire.

Merci beaucoup. J’ai trouvé d’où vient le problème grâce à vous. J’avais copié mon installation de nextcloud dans un dossier /etc/yunohost/apps/nextcloud.old, et c’est donc ça qui bloquait tout. J’ai fait :

mv  /etc/yunohost/apps/nextcloud.old /admin/home

et tout est résolu :smiley: Merci beaucoup Aleks, sans vous, je n’aurais pas trouvé d’ou ça venait !

1 Like

This topic was automatically closed 15 days after the last reply. New replies are no longer allowed.