Prosody fails to update/reinstall (and Metronome won't install instead)

What app is this about, and its version: Prosody 0.12.4~ynh121
What YunoHost version are you running: 12.1.40.1 (stable)
What type of hardware are you using: Raspberry Pi 3, 4+

Describe your issue

Prosody upgrade was failing with error 500 to the PUT command.
Uninstalled and tried to reinstall. That failed (logs below).
Tried to install Metronome instead but same error in logs.

Share relevant logs or error messages

args:
app: prosody
force: false
ignore_yunohost_version: false
label: Prosody
no_remove_on_failure: false
ended_at: 2026-07-26 12:38:01.345486
error: An error occured inside the script snippet
interface: api
operation: app_install
parent: null
related_to:

    • app
    • prosody
      started_at: 2026-07-26 12:37:49.512947
      started_by: ******
      success: false
      yunohost_version: 12.1.40.1

============

2026-07-26 13:37:50,554: INFO - Installing prosody…
2026-07-26 13:37:50,564: INFO - Provisioning system_user…
2026-07-26 13:37:50,844: INFO - Provisioning install_dir…
2026-07-26 13:37:50,854: INFO - Provisioning data_dir…
2026-07-26 13:37:50,860: INFO - Provisioning ports…
2026-07-26 13:37:51,098: DEBUG - Formating result in ‘export’ mode
2026-07-26 13:37:51,132: DEBUG - Formating result in ‘export’ mode
2026-07-26 13:37:51,164: DEBUG - Formating result in ‘export’ mode
2026-07-26 13:37:51,197: DEBUG - Formating result in ‘export’ mode
2026-07-26 13:37:51,230: DEBUG - Formating result in ‘export’ mode
2026-07-26 13:37:51,265: DEBUG - Formating result in ‘export’ mode
2026-07-26 13:37:51,297: DEBUG - Formating result in ‘export’ mode
2026-07-26 13:37:51,330: DEBUG - Formating result in ‘export’ mode
2026-07-26 13:37:51,373: DEBUG - Formating result in ‘export’ mode
2026-07-26 13:37:51,418: DEBUG - Formating result in ‘export’ mode
2026-07-26 13:37:51,450: DEBUG - Formating result in ‘export’ mode
2026-07-26 13:37:51,481: DEBUG - Formating result in ‘export’ mode
2026-07-26 13:37:51,515: DEBUG - Formating result in ‘export’ mode
2026-07-26 13:37:51,547: DEBUG - Formating result in ‘export’ mode
2026-07-26 13:37:51,579: DEBUG - Formating result in ‘export’ mode
2026-07-26 13:37:51,610: DEBUG - Formating result in ‘export’ mode
2026-07-26 13:37:51,643: DEBUG - Formating result in ‘export’ mode
2026-07-26 13:37:51,688: DEBUG - Formating result in ‘export’ mode
2026-07-26 13:37:51,742: DEBUG - Formating result in ‘export’ mode
2026-07-26 13:37:51,749: DEBUG - Executing command ‘[‘sh’, ‘-c’, ‘/bin/bash -x “./40-nftables” pre '' '' /var/cache/yunohost/regenconf/pending/nftables 7>&1’]’
2026-07-26 13:37:51,778: DEBUG - + set -e
2026-07-26 13:37:51,780: DEBUG - + source /usr/share/yunohost/helpers
2026-07-26 13:37:51,781: DEBUG - ++++ dirname – /usr/share/yunohost/helpers
2026-07-26 13:37:51,782: DEBUG - +++ cd – /usr/share/yunohost
2026-07-26 13:37:51,783: DEBUG - +++ pwd
2026-07-26 13:37:51,784: DEBUG - ++ SCRIPT_DIR=/usr/share/yunohost
2026-07-26 13:37:51,785: DEBUG - ++ YNH_HELPERS_VERSION=2
2026-07-26 13:37:51,789: DEBUG - ++ readonly ‘XTRACE_ENABLE=set -o xtrace’
2026-07-26 13:37:51,791: DEBUG - ++ XTRACE_ENABLE=‘set -o xtrace’
2026-07-26 13:37:51,835: DEBUG - + PY_LIST_PORTS_OF=’
2026-07-26 13:37:51,837: DEBUG - import os
2026-07-26 13:37:51,838: DEBUG - import yaml
2026-07-26 13:37:51,839: DEBUG - file = os.environ[‘'‘FILE’'’]
2026-07-26 13:37:51,840: DEBUG - proto = os.environ[‘'‘PROTO’'’]
2026-07-26 13:37:51,842: DEBUG - data = yaml.safe_load(open(file, ‘'‘r’'’))
2026-07-26 13:37:51,843: DEBUG - ports = [str(port) for port, info in data.get(proto, {}).items() if info[‘'‘open’'’]]
2026-07-26 13:37:51,844: DEBUG - # Sane fallback in case for reason we cant find any TCP port opened which probably indicates there’'‘s an issue with the file, we don’'‘t want the server to just drop all the traffic
2026-07-26 13:37:51,845: DEBUG - if not ports and proto == ‘'‘TCP’'’:
2026-07-26 13:37:51,846: DEBUG - ports = [22, 80, 443]
2026-07-26 13:37:51,848: DEBUG - print(’'’ ‘'’.join(ports))
2026-07-26 13:37:51,849: DEBUG - ’
2026-07-26 13:37:51,850: DEBUG - ++ echo ’ /var/cache/yunohost/regenconf/pending/nftables’
2026-07-26 13:37:51,851: DEBUG - ++ xargs
2026-07-26 13:37:51,852: DEBUG - + do_pre_regen /var/cache/yunohost/regenconf/pending/nftables
2026-07-26 13:37:51,853: DEBUG - + pending_dir=/var/cache/yunohost/regenconf/pending/nftables
2026-07-26 13:37:51,854: DEBUG - + firewall_file=/etc/yunohost/firewall.yml
2026-07-26 13:37:51,855: DEBUG - ++ FILE=/etc/yunohost/firewall.yml
2026-07-26 13:37:51,857: DEBUG - ++ PROTO=tcp
2026-07-26 13:37:51,857: DEBUG - ++ python3 -c ’
2026-07-26 13:37:51,858: DEBUG - import os
2026-07-26 13:37:51,860: DEBUG - import yaml
2026-07-26 13:37:51,861: DEBUG - file = os.environ[‘'‘FILE’'’]
2026-07-26 13:37:51,861: DEBUG - proto = os.environ[‘'‘PROTO’'’]
2026-07-26 13:37:51,862: DEBUG - data = yaml.safe_load(open(file, ‘'‘r’'’))
2026-07-26 13:37:51,863: DEBUG - ports = [str(port) for port, info in data.get(proto, {}).items() if info[‘'‘open’'’]]
2026-07-26 13:37:51,864: DEBUG - # Sane fallback in case for reason we cant find any TCP port opened which probably indicates there’'‘s an issue with the file, we don’'‘t want the server to just drop all the traffic
2026-07-26 13:37:51,865: DEBUG - if not ports and proto == ‘'‘TCP’'’:
2026-07-26 13:37:51,866: DEBUG - ports = [22, 80, 443]
2026-07-26 13:37:51,867: DEBUG - print(’'’ ‘'’.join(ports))
2026-07-26 13:37:51,868: DEBUG - ’
2026-07-26 13:37:51,974: DEBUG - + tcp_ports=‘22 25 53 80 135 443 587 993 4444 5222 5223 5269’
2026-07-26 13:37:51,976: DEBUG - ++ FILE=/etc/yunohost/firewall.yml
2026-07-26 13:37:51,977: DEBUG - ++ PROTO=udp
2026-07-26 13:37:51,978: DEBUG - ++ python3 -c ’
2026-07-26 13:37:51,979: DEBUG - import os
2026-07-26 13:37:51,981: DEBUG - import yaml
2026-07-26 13:37:51,982: DEBUG - file = os.environ[‘'‘FILE’'’]
2026-07-26 13:37:51,983: DEBUG - proto = os.environ[‘'‘PROTO’'’]
2026-07-26 13:37:51,984: DEBUG - data = yaml.safe_load(open(file, ‘'‘r’'’))
2026-07-26 13:37:51,985: DEBUG - ports = [str(port) for port, info in data.get(proto, {}).items() if info[‘'‘open’'’]]
2026-07-26 13:37:51,986: DEBUG - # Sane fallback in case for reason we cant find any TCP port opened which probably indicates there’'‘s an issue with the file, we don’'‘t want the server to just drop all the traffic
2026-07-26 13:37:51,987: DEBUG - if not ports and proto == ‘'‘TCP’'’:
2026-07-26 13:37:51,988: DEBUG - ports = [22, 80, 443]
2026-07-26 13:37:51,989: DEBUG - print(’'’ ‘'’.join(ports))
2026-07-26 13:37:51,990: DEBUG - ’
2026-07-26 13:37:52,129: DEBUG - + udp_ports=‘53 4444 5353’
2026-07-26 13:37:52,131: DEBUG - + export tcp_ports udp_ports
2026-07-26 13:37:52,132: DEBUG - + cd /usr/share/yunohost/conf/nftables
2026-07-26 13:37:52,134: DEBUG - + mkdir -p /var/cache/yunohost/regenconf/pending/nftables/etc/nftables.d
2026-07-26 13:37:52,135: DEBUG - + cp nftables.conf /var/cache/yunohost/regenconf/pending/nftables/etc/nftables.conf
2026-07-26 13:37:52,139: DEBUG - + ynh_render_template nftables.d/yunohost-firewall.tpl.conf /var/cache/yunohost/regenconf/pending/nftables/etc/nftables.d/yunohost-firewall.conf
2026-07-26 13:37:52,140: DEBUG - + local template_path=nftables.d/yunohost-firewall.tpl.conf
2026-07-26 13:37:52,142: DEBUG - + local output_path=/var/cache/yunohost/regenconf/pending/nftables/etc/nftables.d/yunohost-firewall.conf
2026-07-26 13:37:52,144: DEBUG - ++ dirname /var/cache/yunohost/regenconf/pending/nftables/etc/nftables.d/yunohost-firewall.conf
2026-07-26 13:37:52,145: DEBUG - + mkdir -p /var/cache/yunohost/regenconf/pending/nftables/etc/nftables.d
2026-07-26 13:37:52,147: DEBUG - + python3 -c ‘import os, sys, jinja2; sys.stdout.write(
2026-07-26 13:37:52,149: DEBUG - jinja2.Template(sys.stdin.read()
2026-07-26 13:37:52,150: DEBUG - ).render(os.environ));’
2026-07-26 13:37:52,455: DEBUG - Checking pending configuration which would have been applied for category ‘nftables’…
2026-07-26 13:37:52,486: DEBUG - processing pending conf ‘/var/cache/yunohost/regenconf/pending/nftables/etc/nftables.conf’ to system conf ‘/etc/nftables.conf’
2026-07-26 13:37:52,487: DEBUG - > system conf is already up-to-date
2026-07-26 13:37:52,487: DEBUG - processing pending conf ‘/var/cache/yunohost/regenconf/pending/nftables/etc/nftables.d/yunohost-firewall.conf’ to system conf ‘/etc/nftables.d/yunohost-firewall.conf’
2026-07-26 13:37:52,488: DEBUG - Configuration file ‘/etc/nftables.d/yunohost-firewall.conf’ backed up to ‘/var/cache/yunohost/regenconf/backup/etc/nftables.d/yunohost-firewall.conf-20260726.123752’
2026-07-26 13:37:52,489: DEBUG - Configuration file ‘/etc/nftables.d/yunohost-firewall.conf’ updated
2026-07-26 13:37:52,490: SUCCESS - Configuration updated for ‘nftables’
2026-07-26 13:37:52,491: DEBUG - updating conf hashes for ‘nftables’ with: {‘/etc/nftables.conf’: ‘c07e67701b1cd52ebd1216b573186d2f’, ‘/etc/nftables.d/yunohost-firewall.conf’: ‘c073c5090d7f32455090bfc409ae55d1’}
2026-07-26 13:37:52,545: DEBUG - Executing command ‘[‘sh’, ‘-c’, ‘/bin/bash -x “./40-nftables” post '' '' /etc/nftables.d/yunohost-firewall.conf 7>&1’]’
2026-07-26 13:37:52,571: DEBUG - + set -e
2026-07-26 13:37:52,572: DEBUG - + source /usr/share/yunohost/helpers
2026-07-26 13:37:52,573: DEBUG - ++++ dirname – /usr/share/yunohost/helpers
2026-07-26 13:37:52,574: DEBUG - +++ cd – /usr/share/yunohost
2026-07-26 13:37:52,576: DEBUG - +++ pwd
2026-07-26 13:37:52,577: DEBUG - ++ SCRIPT_DIR=/usr/share/yunohost
2026-07-26 13:37:52,578: DEBUG - ++ YNH_HELPERS_VERSION=2
2026-07-26 13:37:52,582: DEBUG - ++ readonly ‘XTRACE_ENABLE=set -o xtrace’
2026-07-26 13:37:52,583: DEBUG - ++ XTRACE_ENABLE=‘set -o xtrace’
2026-07-26 13:37:52,628: DEBUG - + PY_LIST_PORTS_OF=’
2026-07-26 13:37:52,630: DEBUG - import os
2026-07-26 13:37:52,632: DEBUG - import yaml
2026-07-26 13:37:52,633: DEBUG - file = os.environ[‘'‘FILE’'’]
2026-07-26 13:37:52,634: DEBUG - proto = os.environ[‘'‘PROTO’'’]
2026-07-26 13:37:52,635: DEBUG - data = yaml.safe_load(open(file, ‘'‘r’'’))
2026-07-26 13:37:52,636: DEBUG - ports = [str(port) for port, info in data.get(proto, {}).items() if info[‘'‘open’'’]]
2026-07-26 13:37:52,637: DEBUG - # Sane fallback in case for reason we cant find any TCP port opened which probably indicates there’'‘s an issue with the file, we don’'‘t want the server to just drop all the traffic
2026-07-26 13:37:52,638: DEBUG - if not ports and proto == ‘'‘TCP’'’:
2026-07-26 13:37:52,639: DEBUG - ports = [22, 80, 443]
2026-07-26 13:37:52,641: DEBUG - print(’'’ ‘'’.join(ports))
2026-07-26 13:37:52,642: DEBUG - ’
2026-07-26 13:37:52,643: DEBUG - ++ echo ’ /etc/nftables.d/yunohost-firewall.conf’
2026-07-26 13:37:52,644: DEBUG - ++ xargs
2026-07-26 13:37:52,645: DEBUG - + do_post_regen /etc/nftables.d/yunohost-firewall.conf
2026-07-26 13:37:52,647: DEBUG - + regen_conf_files=/etc/nftables.d/yunohost-firewall.conf
2026-07-26 13:37:52,648: DEBUG - + ls -l /etc/nftables.d/yunohost-firewall.conf
2026-07-26 13:37:52,649: DEBUG - + chown root:root /etc/nftables.d/yunohost-firewall.conf
2026-07-26 13:37:52,652: DEBUG - + chmod 644 /etc/nftables.d/yunohost-firewall.conf
2026-07-26 13:37:52,655: DEBUG - + [[ -z /etc/nftables.d/yunohost-firewall.conf ]]
2026-07-26 13:37:52,656: DEBUG - + systemctl restart nftables
2026-07-26 13:37:54,169: DEBUG - Full log of this operation: ‘Regenerate system configurations ‘nftables’
2026-07-26 13:37:54,199: INFO - Provisioning permissions…
2026-07-26 13:37:54,210: DEBUG - Permission ‘prosody.main’ updated
2026-07-26 13:37:54,229: DEBUG - Permission ‘prosody.main’ created
2026-07-26 13:37:54,249: DEBUG - Permission ‘prosody.main’ updated
2026-07-26 13:37:54,255: DEBUG - Permission ‘prosody.main’ updated
2026-07-26 13:37:54,353: DEBUG - Creating LDAP perm prosody.main
2026-07-26 13:37:54,365: DEBUG - Permissions were resynchronized to LDAP
2026-07-26 13:37:54,420: DEBUG - Formating result in ‘export’ mode
2026-07-26 13:37:54,423: DEBUG - SSO and portal configurations regenerated
2026-07-26 13:37:54,423: INFO - Provisioning apt…
2026-07-26 13:37:54,439: DEBUG - Executing command ‘[‘sh’, ‘-c’, ‘/bin/bash -x “./provision_or_update_apt” 7>&1’]’
2026-07-26 13:37:54,472: DEBUG - + source /usr/share/yunohost/helpers
2026-07-26 13:37:54,474: DEBUG - ++++ dirname – /usr/share/yunohost/helpers
2026-07-26 13:37:54,475: DEBUG - +++ cd – /usr/share/yunohost
2026-07-26 13:37:54,477: DEBUG - +++ pwd
2026-07-26 13:37:54,478: DEBUG - ++ SCRIPT_DIR=/usr/share/yunohost
2026-07-26 13:37:54,480: DEBUG - ++ YNH_HELPERS_VERSION=2.1
2026-07-26 13:37:54,484: DEBUG - ++ readonly ‘XTRACE_ENABLE=set -o xtrace’
2026-07-26 13:37:54,485: DEBUG - ++ XTRACE_ENABLE=‘set -o xtrace’
2026-07-26 13:37:54,516: DEBUG - + ynh_abort_if_errors
2026-07-26 13:37:54,522: DEBUG - + trap ynh_exit_properly EXIT
2026-07-26 13:37:54,524: DEBUG - + ynh_apt_install_dependencies liblua5.4-dev lua-busted lua5.4 lua5.4-event lua5.4-readline lua5.4-expat lua5.4-socket openssl txt2man lua5.4-sec lua5.4-unbound lua-ldap luarocks
2026-07-26 13:37:54,526: DEBUG - ++ sed ‘s/([^<=>])\ ([^(])/\1, \2/g’
2026-07-26 13:37:54,527: DEBUG - ++ sed ‘s/|/ | /’
2026-07-26 13:37:54,532: DEBUG - + local ‘dependencies=liblua5.4-dev, lua-busted, lua5.4, lua5.4-event, lua5.4-readline, lua5.4-expat, lua5.4-socket, openssl, txt2man, lua5.4-sec, lua5.4-unbound, lua-ldap, luarocks’
2026-07-26 13:37:54,535: DEBUG - ++ ynh_read_manifest version
2026-07-26 13:37:54,536: DEBUG - ++ cat /var/cache/yunohost/app_tmp_work_dirs/app_906_esp4/manifest.toml
2026-07-26 13:37:54,538: DEBUG - ++ toml_to_json
2026-07-26 13:37:54,542: DEBUG - ++ python3 -c ‘import toml, json, sys; print(json.dumps(toml.load(sys.stdin)))’
2026-07-26 13:37:54,543: DEBUG - ++ jq .version --raw-output
2026-07-26 13:37:54,710: DEBUG - + local version=0.12.4~ynh121
2026-07-26 13:37:54,712: DEBUG - + local app_ynh_deps=prosody-ynh-deps
2026-07-26 13:37:54,713: DEBUG - + grep ‘[<=>]’
2026-07-26 13:37:54,719: DEBUG - ++ grep -oP ‘(?<=php)[0-9.]+(?=-|>|)’
2026-07-26 13:37:54,720: DEBUG - ++ sort -u
2026-07-26 13:37:54,723: DEBUG - + local specific_php_version=
2026-07-26 13:37:54,725: DEBUG - + grep --quiet php
2026-07-26 13:37:54,728: DEBUG - ++ _ynh_apt_package_is_installed postgresql-15
2026-07-26 13:37:54,732: DEBUG - ++ local package=postgresql-15
2026-07-26 13:37:54,734: DEBUG - ++ dpkg-query --show ‘–showformat=${db:Status-Status}’ postgresql-15
2026-07-26 13:37:54,736: DEBUG - ++ grep --quiet ‘^installed$’
2026-07-26 13:37:54,768: DEBUG - ++ echo yes
2026-07-26 13:37:54,770: DEBUG - + local psql_installed=yes
2026-07-26 13:37:54,771: DEBUG - + [[ true == \t\r\u\e ]]
2026-07-26 13:37:54,772: DEBUG - + YNH_APT_INSTALL_DEPENDENCIES_REPLACE=false
2026-07-26 13:37:54,773: DEBUG - ++ mktemp --directory
2026-07-26 13:37:54,775: DEBUG - + local TMPDIR=/tmp/tmp.Qd5SFXu7KM
2026-07-26 13:37:54,776: DEBUG - + mkdir -p /tmp/tmp.Qd5SFXu7KM/prosody-ynh-deps/DEBIAN
2026-07-26 13:37:54,777: DEBUG - + chmod -R 755 /tmp/tmp.Qd5SFXu7KM/prosody-ynh-deps
2026-07-26 13:37:54,780: DEBUG - + cat
2026-07-26 13:37:54,785: DEBUG - + _ynh_apt update --error-on=any
2026-07-26 13:37:54,786: DEBUG - + [[ update --error-on=any == \u\p\d\a\t\e ]]
2026-07-26 13:37:54,788: DEBUG - + _ynh_wait_dpkg_free
2026-07-26 13:37:54,972: DEBUG - + return 0
2026-07-26 13:37:54,980: DEBUG - + apt-get --assume-yes --quiet -o=Acquire::Retries=3 -o=Dpkg::Use-Pty=0 update --error-on=any
2026-07-26 13:37:55,289: DEBUG - Hit:1 Index of /debian bookworm InRelease
2026-07-26 13:37:55,294: DEBUG - Hit:2 Index of /debian bookworm InRelease
2026-07-26 13:37:55,311: DEBUG - Hit:4 Index of /debian-security bookworm-security InRelease
2026-07-26 13:37:55,326: DEBUG - Hit:5 Index of /debian bookworm-updates InRelease
2026-07-26 13:37:55,363: DEBUG - Hit:6 Index of /php/ bookworm InRelease
2026-07-26 13:37:55,427: DEBUG - Get:7 https://dl.yarnpkg.com/debian stable InRelease
2026-07-26 13:37:55,487: DEBUG - Hit:3 Index of /debian/ bookworm InRelease
2026-07-26 13:37:56,363: DEBUG - Hit:8 Index of linux/debian/ bookworm InRelease
2026-07-26 13:37:56,435: DEBUG - Get:9 https://pkgs.tailscale.com/stable/debian bookworm InRelease
2026-07-26 13:37:56,526: DEBUG - Hit:10 MongoDB Repositories buster/mongodb-org/4.4 InRelease
2026-07-26 13:37:56,630: DEBUG - Err:7 https://dl.yarnpkg.com/debian stable InRelease
2026-07-26 13:37:56,631: DEBUG - The following signatures couldn’t be verified because the public key is not available: NO_PUBKEY 62D54FD4003F6525
2026-07-26 13:37:57,306: DEBUG - Fetched 23.1 kB in 2s (10.8 kB/s)
2026-07-26 13:38:00,317: DEBUG - Reading package lists…
2026-07-26 13:38:00,378: WARNING - W: An error occurred during the signature verification. The repository is not updated and the previous index files will be used. GPG error: https://dl.yarnpkg.com/debian stable InRelease: The following signatures couldn’t be verified because the public key is not available: NO_PUBKEY 62D54FD4003F6525
2026-07-26 13:38:00,380: WARNING - E: Failed to fetch https://dl.yarnpkg.com/debian/dists/stable/InRelease The following signatures couldn’t be verified because the public key is not available: NO_PUBKEY 62D54FD4003F6525
2026-07-26 13:38:00,383: DEBUG - + ynh_exit_properly
2026-07-26 13:38:00,384: WARNING - E: Some index files failed to download. They have been ignored, or old ones used instead.
2026-07-26 13:38:00,386: DEBUG - + local exit_code=100
2026-07-26 13:38:00,387: DEBUG - + [[ provision_or_update_apt =~ ^install$|^upgrade$|^restore$ ]]
2026-07-26 13:38:00,388: DEBUG - + ‘[’ 100 -eq 0 ‘]’
2026-07-26 13:38:01,344: ERROR - provision_or_update failed for apt : An error occured inside the script snippet

Hi @TomS
See here

Thanks. That worked.