What type of hardware are you using: VPS bought online
What YunoHost version are you running: YunoHost 12.0.16 (stable)
How are you able to access your server: The webadmin
SSH
Are you in a special context or did you perform specific tweaking on your YunoHost instance ?: Hostinger VPS running Debian 12
Describe your issue
Something’s gone horribly awry with my YunoHost deployment. Any help with this would be greatly appreciated!
This is a Debian VPS at Hostinger, and I’m using a combination of the web UI and SSH to access it. I am using this deployment primarily to host a single-user GoToSocial instance and (prior to these errors) Phanpy, as well as a sandbox to test Ghost and LibreERP. I have also previously used WriteFreely on this VPS, but I have since deleted it. Each of the four apps has its own subdomain. My main goal is to ideally resolve what’s going on with Phanpy and APT/DPKG, or at the very least preserve the GtS account.
This is a two-part issue. First, the smaller of the two issues: Phanpy has gone AWOL. It’s visible in some places, but not others.
Phany is listed as an app on the front page of the YunoHost web UI.
But go into Administration > Applications, and it’s not listed as an installed app.
When I go to the URL it was installed at, and it’s just a blank screen. It had previously worked fine at this address.
And yet. When I SSH in, and see what’s in the /etc/yunohost/apps folder, Phanpy’s files are still clearly installed on the server.
Likewise, the Phanpy files (or at least some of them) are visible at /var/www
root@sadauskas:~# cd /var/www
root@sadauskas:/var/www# ls
ghost gotosocial html libreerp phanpy
root@sadauskas:/var/www# cd phanpy
root@sadauskas:/var/www/phanpy# ls
404.html compose logo-192.png logo-maskable-512.png og-image.png sw.js.map
apple-touch-icon.png favicon.ico logo-512.png manifest.webmanifest robots.txt version.json
assets index.html logo-badge-72.png og-image-2.jpg sw.js
Now, here’s where this Phanpy situation is a big issue…
When I go into System Update, while YunoHost is querying the server, it lists “Failed to read info for phanpy : ‘arguments’”.
When I go to do a system update, it produces an error that reads:
"Error: “400”
Action: “PUT” /yunohost/api/upgrade/system
Error message:
You cannot do this right now because dpkg/APT (the system package managers) seems to be in a broken state… You can try to solve this issue by connecting through SSH and running sudo apt install --fix-broken
and/or sudo dpkg --configure -a
and/or sudo dpkg --audit
."
There’s a similar error message when I try to update an app.
And likewise, if I try to install an app: “You cannot do this right now because dpkg/APT (the system package managers) seems to be in a broken state… You can try to solve this issue by connecting through SSH and running sudo apt install --fix-broken
and/or sudo dpkg --configure -a
and/or sudo dpkg --audit
.”
(I’ve tried a fresh install of Phanpy through the UI, and I’ve tried to install a new app, SearXNG. Same thing in both cases.)
So I’ll go over to SSH to try those suggested commands from the command line.
So over to the command line. First, a sudo apt update.
Debian fetches the updates as it should. It says:
“Reading package lists… Done
Building dependency tree… Done
Reading state information… Done
1 package can be upgraded. Run ‘apt list --upgradable’ to see it.”
Apt list --upgradable mentions: monarx-agent/bookworm 4.2.72-master amd64 [upgradable from: 4.2.62-master]
Okay, so with that done, let’s try the three commands YunoHost recommended:
sudo apt install --fix-broken produces the following output:
“Reading package lists… Done
Building dependency tree… Done
Reading state information… Done
0 upgraded, 0 newly installed, 0 to remove and 1 not upgraded.
1 not fully installed or removed.
After this operation, 0 B of additional disk space will be used.
Setting up yunohost (12.0.16) …
Regenerating configuration, this might take a while…
Traceback (most recent call last):
File “/usr/bin/yunohost”, line 108, in
main()
File “/usr/bin/yunohost”, line 97, in main
yunohost.cli(
File “/usr/lib/python3/dist-packages/yunohost/init.py”, line 41, in cli
ret = moulinette.cli(
^^^^^^^^^^^^^^^
File “/usr/lib/python3/dist-packages/moulinette/init.py”, line 140, in cli
).run(args, output_as=output_as, timeout=timeout)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/usr/lib/python3/dist-packages/moulinette/interfaces/cli.py”, line 521, in run
ret = self.actionsmap.process(args, timeout=timeout)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/usr/lib/python3/dist-packages/moulinette/actionsmap.py”, line 579, in process
return func(**arguments)
^^^^^^^^^^^^^^^^^
File “/usr/lib/python3/dist-packages/yunohost/app.py”, line 1755, in app_ssowatconf
local_manifest = _get_manifest_of_app(setting_path)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/usr/lib/python3/dist-packages/yunohost/app.py”, line 2269, in _get_manifest_of_app
manifest = _convert_v1_manifest_to_v2(manifest)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/usr/lib/python3/dist-packages/yunohost/app.py”, line 2397, in _convert_v1_manifest_to_v2
install_questions = manifest[“arguments”][“install”]
~~~~~~~~^^^^^^^^^^^^^
KeyError: ‘arguments’
dpkg: error processing package yunohost (–configure):
installed yunohost package post-installation script subprocess returned error exit status 1
Errors were encountered while processing:
yunohost
E: Sub-process /usr/bin/dpkg returned an error code (1)”
Typing sudo dpkg --configure -a gives us the following:
Setting up yunohost (12.0.16) …
Regenerating configuration, this might take a while…
Traceback (most recent call last):
File “/usr/bin/yunohost”, line 108, in
main()
File “/usr/bin/yunohost”, line 97, in main
yunohost.cli(
File “/usr/lib/python3/dist-packages/yunohost/init.py”, line 41, in cli
ret = moulinette.cli(
^^^^^^^^^^^^^^^
File “/usr/lib/python3/dist-packages/moulinette/init.py”, line 140, in cli
).run(args, output_as=output_as, timeout=timeout)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/usr/lib/python3/dist-packages/moulinette/interfaces/cli.py”, line 521, in run
ret = self.actionsmap.process(args, timeout=timeout)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/usr/lib/python3/dist-packages/moulinette/actionsmap.py”, line 579, in process
return func(**arguments)
^^^^^^^^^^^^^^^^^
File “/usr/lib/python3/dist-packages/yunohost/app.py”, line 1755, in app_ssowatconf
local_manifest = _get_manifest_of_app(setting_path)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/usr/lib/python3/dist-packages/yunohost/app.py”, line 2269, in _get_manifest_of_app
manifest = _convert_v1_manifest_to_v2(manifest)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/usr/lib/python3/dist-packages/yunohost/app.py”, line 2397, in _convert_v1_manifest_to_v2
install_questions = manifest[“arguments”][“install”]
~~~~~~~~^^^^^^^^^^^^^
KeyError: ‘arguments’
dpkg: error processing package yunohost (–configure):
installed yunohost package post-installation script subprocess returned error exit status 1
Errors were encountered while processing:
yunohost"
And let’s try sudo dpkg --audit:
“The following packages are only half configured, probably due to problems
configuring them the first time. The configuration should be retried using
dpkg --configure or the configure menu option in dselect:
yunohost manageable and configured self-hosting server”
I’ve also performed a self-diagnosis.
It says everything looks OK for base system, internet connectivity, ports exposure, web, services check, system resources, system configurations, and applications.
But.
The line "Failed to read info for phanpy : ‘arguments’ appears repeatedly in red.
Okay.
So.
Any idea what’s going on here?
What should I try next to fix this?
Share relevant logs or error messages
args:
apps:
- ghost
name: ghost-pre-upgrade2
system: null
ended_at: 2025-05-15 11:02:59.958851
error: null
interface: api
operation: backup_create
parent: null
related_to: -
- app
- ghost
started_at: 2025-05-15 11:01:35.874093
success: true
yunohost_version: 12.0.16
============
2025-05-15 11:01:35,887: INFO - Collecting files to be backed up for ghost…
2025-05-15 11:01:35,902: DEBUG - Executing command ‘[‘sh’, ‘-c’, ‘/bin/bash -x “/var/cache/yunohost/app_tmp_work_dirs/app_mg_u41_b/scripts/backup” 7>&1’]’
2025-05-15 11:01:35,905: DEBUG - + source ../settings/scripts/_common.sh
2025-05-15 11:01:35,905: DEBUG - ++ nodejs_version=20
2025-05-15 11:01:35,905: DEBUG - + source /usr/share/yunohost/helpers
2025-05-15 11:01:35,906: DEBUG - ++++ dirname – /usr/share/yunohost/helpers
2025-05-15 11:01:35,907: DEBUG - +++ cd – /usr/share/yunohost
2025-05-15 11:01:35,908: DEBUG - +++ pwd
2025-05-15 11:01:35,908: DEBUG - ++ SCRIPT_DIR=/usr/share/yunohost
2025-05-15 11:01:35,908: DEBUG - ++ YNH_HELPERS_VERSION=2
2025-05-15 11:01:35,910: DEBUG - ++ readonly ‘XTRACE_ENABLE=set -o xtrace’
2025-05-15 11:01:35,910: DEBUG - ++ XTRACE_ENABLE=‘set -o xtrace’
2025-05-15 11:01:35,941: DEBUG - + ynh_print_info ‘–message=Declaring files to be backed up…’
2025-05-15 11:01:35,952: DEBUG - + ynh_backup --src_path=/var/www/ghost
2025-05-15 11:01:35,953: INFO - Declaring files to be backed up…
2025-05-15 11:01:35,985: DEBUG - + dest_path=
2025-05-15 11:01:35,985: DEBUG - + is_big=0
2025-05-15 11:01:35,985: DEBUG - + not_mandatory=0
2025-05-15 11:01:35,985: DEBUG - + BACKUP_CORE_ONLY=1
2025-05-15 11:01:35,985: DEBUG - + test -n ghost
2025-05-15 11:01:35,985: DEBUG - ++ ynh_app_setting_get --app=ghost --key=do_not_backup_data
2025-05-15 11:01:36,058: DEBUG - + do_not_backup_data=
2025-05-15 11:01:36,058: DEBUG - + ‘[’ ‘!’ -e /var/www/ghost ‘]’
2025-05-15 11:01:36,059: DEBUG - ++ realpath /var/www/ghost
2025-05-15 11:01:36,061: DEBUG - + src_path=/var/www/ghost
2025-05-15 11:01:36,061: DEBUG - + [[ -z ‘’ ]]
2025-05-15 11:01:36,061: DEBUG - + dest_path=var/www/ghost
2025-05-15 11:01:36,061: DEBUG - + [[ -e var/www/ghost ]]
2025-05-15 11:01:36,061: DEBUG - + local rel_dir=/apps/ghost/backup
2025-05-15 11:01:36,061: DEBUG - + rel_dir=/apps/ghost/backup/
2025-05-15 11:01:36,061: DEBUG - + dest_path=/apps/ghost/backup/var/www/ghost
2025-05-15 11:01:36,061: DEBUG - + dest_path=apps/ghost/backup/var/www/ghost
2025-05-15 11:01:36,062: DEBUG - ++ echo /var/www/ghost
2025-05-15 11:01:36,062: DEBUG - ++ sed --regexp-extended ‘s/"/""/g’
2025-05-15 11:01:36,064: DEBUG - + local src=/var/www/ghost
2025-05-15 11:01:36,065: DEBUG - ++ echo apps/ghost/backup/var/www/ghost
2025-05-15 11:01:36,065: DEBUG - ++ sed --regexp-extended ‘s/"/""/g’
2025-05-15 11:01:36,067: DEBUG - + local dest=apps/ghost/backup/var/www/ghost
2025-05-15 11:01:36,068: DEBUG - ++ dirname /home/yunohost.backup/tmp/ghost-pre-upgrade2/apps/ghost/backup/var/www/ghost
2025-05-15 11:01:36,069: DEBUG - + mkdir --parents /home/yunohost.backup/tmp/ghost-pre-upgrade2/apps/ghost/backup/var/www
2025-05-15 11:01:36,072: DEBUG - + ynh_backup --src_path=/etc/nginx/conf.d/blog.maindomain.tld.d/ghost.conf
2025-05-15 11:01:36,108: DEBUG - + dest_path=
2025-05-15 11:01:36,108: DEBUG - + is_big=0
2025-05-15 11:01:36,108: DEBUG - + not_mandatory=0
2025-05-15 11:01:36,109: DEBUG - + BACKUP_CORE_ONLY=1
2025-05-15 11:01:36,109: DEBUG - + test -n ghost
2025-05-15 11:01:36,109: DEBUG - ++ ynh_app_setting_get --app=ghost --key=do_not_backup_data
2025-05-15 11:01:36,180: DEBUG - + do_not_backup_data=
2025-05-15 11:01:36,180: DEBUG - + ‘[’ ‘!’ -e /etc/nginx/conf.d/blog.maindomain.tld.d/ghost.conf ‘]’
2025-05-15 11:01:36,180: DEBUG - ++ realpath /etc/nginx/conf.d/blog.maindomain.tld.d/ghost.conf
2025-05-15 11:01:36,182: DEBUG - + src_path=/etc/nginx/conf.d/blog.maindomain.tld.d/ghost.conf
2025-05-15 11:01:36,182: DEBUG - + [[ -z ‘’ ]]
2025-05-15 11:01:36,182: DEBUG - + dest_path=etc/nginx/conf.d/blog.maindomain.tld.d/ghost.conf
2025-05-15 11:01:36,182: DEBUG - + [[ -e etc/nginx/conf.d/blog.maindomain.tld.d/ghost.conf ]]
2025-05-15 11:01:36,183: DEBUG - + local rel_dir=/apps/ghost/backup
2025-05-15 11:01:36,183: DEBUG - + rel_dir=/apps/ghost/backup/
2025-05-15 11:01:36,183: DEBUG - + dest_path=/apps/ghost/backup/etc/nginx/conf.d/blog.maindomain.tld.d/ghost.conf
2025-05-15 11:01:36,183: DEBUG - + dest_path=apps/ghost/backup/etc/nginx/conf.d/blog.maindomain.tld.d/ghost.conf
2025-05-15 11:01:36,183: DEBUG - ++ echo /etc/nginx/conf.d/blog.maindomain.tld.d/ghost.conf
2025-05-15 11:01:36,183: DEBUG - ++ sed --regexp-extended ‘s/"/""/g’
2025-05-15 11:01:36,185: DEBUG - + local src=/etc/nginx/conf.d/blog.maindomain.tld.d/ghost.conf
2025-05-15 11:01:36,186: DEBUG - ++ echo apps/ghost/backup/etc/nginx/conf.d/blog.maindomain.tld.d/ghost.conf
2025-05-15 11:01:36,186: DEBUG - ++ sed --regexp-extended ‘s/"/""/g’
2025-05-15 11:01:36,188: DEBUG - + local dest=apps/ghost/backup/etc/nginx/conf.d/blog.maindomain.tld.d/ghost.conf
2025-05-15 11:01:36,189: DEBUG - ++ dirname /home/yunohost.backup/tmp/ghost-pre-upgrade2/apps/ghost/backup/etc/nginx/conf.d/blog.maindomain.tld.d/ghost.conf
2025-05-15 11:01:36,190: DEBUG - + mkdir --parents /home/yunohost.backup/tmp/ghost-pre-upgrade2/apps/ghost/backup/etc/nginx/conf.d/blog.maindomain.tld.d
2025-05-15 11:01:36,193: DEBUG - + ynh_backup --src_path=/etc/logrotate.d/ghost
2025-05-15 11:01:36,226: DEBUG - + dest_path=
2025-05-15 11:01:36,226: DEBUG - + is_big=0
2025-05-15 11:01:36,226: DEBUG - + not_mandatory=0
2025-05-15 11:01:36,226: DEBUG - + BACKUP_CORE_ONLY=1
2025-05-15 11:01:36,226: DEBUG - + test -n ghost
2025-05-15 11:01:36,227: DEBUG - ++ ynh_app_setting_get --app=ghost --key=do_not_backup_data
2025-05-15 11:01:36,292: DEBUG - + do_not_backup_data=
2025-05-15 11:01:36,292: DEBUG - + ‘[’ ‘!’ -e /etc/logrotate.d/ghost ‘]’
2025-05-15 11:01:36,293: DEBUG - ++ realpath /etc/logrotate.d/ghost
2025-05-15 11:01:36,294: DEBUG - + src_path=/etc/logrotate.d/ghost
2025-05-15 11:01:36,294: DEBUG - + [[ -z ‘’ ]]
2025-05-15 11:01:36,294: DEBUG - + dest_path=etc/logrotate.d/ghost
2025-05-15 11:01:36,294: DEBUG - + [[ -e etc/logrotate.d/ghost ]]
2025-05-15 11:01:36,294: DEBUG - + local rel_dir=/apps/ghost/backup
2025-05-15 11:01:36,294: DEBUG - + rel_dir=/apps/ghost/backup/
2025-05-15 11:01:36,294: DEBUG - + dest_path=/apps/ghost/backup/etc/logrotate.d/ghost
2025-05-15 11:01:36,294: DEBUG - + dest_path=apps/ghost/backup/etc/logrotate.d/ghost
2025-05-15 11:01:36,295: DEBUG - ++ echo /etc/logrotate.d/ghost
2025-05-15 11:01:36,295: DEBUG - ++ sed --regexp-extended ‘s/"/""/g’
2025-05-15 11:01:36,297: DEBUG - + local src=/etc/logrotate.d/ghost
2025-05-15 11:01:36,297: DEBUG - ++ echo apps/ghost/backup/etc/logrotate.d/ghost
2025-05-15 11:01:36,298: DEBUG - ++ sed --regexp-extended ‘s/"/""/g’
2025-05-15 11:01:36,299: DEBUG - + local dest=apps/ghost/backup/etc/logrotate.d/ghost
2025-05-15 11:01:36,300: DEBUG - ++ dirname /home/yunohost.backup/tmp/ghost-pre-upgrade2/apps/ghost/backup/etc/logrotate.d/ghost
2025-05-15 11:01:36,301: DEBUG - + mkdir --parents /home/yunohost.backup/tmp/ghost-pre-upgrade2/apps/ghost/backup/etc/logrotate.d
2025-05-15 11:01:36,303: DEBUG - + ynh_backup --src_path=/etc/systemd/system/ghost.service
2025-05-15 11:01:36,343: DEBUG - + dest_path=
2025-05-15 11:01:36,344: DEBUG - + is_big=0
2025-05-15 11:01:36,344: DEBUG - + not_mandatory=0
2025-05-15 11:01:36,344: DEBUG - + BACKUP_CORE_ONLY=1
2025-05-15 11:01:36,344: DEBUG - + test -n ghost
2025-05-15 11:01:36,344: DEBUG - ++ ynh_app_setting_get --app=ghost --key=do_not_backup_data
2025-05-15 11:01:36,416: DEBUG - + do_not_backup_data=
2025-05-15 11:01:36,416: DEBUG - + ‘[’ ‘!’ -e /etc/systemd/system/ghost.service ‘]’
2025-05-15 11:01:36,416: DEBUG - ++ realpath /etc/systemd/system/ghost.service
2025-05-15 11:01:36,418: DEBUG - + src_path=/etc/systemd/system/ghost.service
2025-05-15 11:01:36,418: DEBUG - + [[ -z ‘’ ]]
2025-05-15 11:01:36,418: DEBUG - + dest_path=etc/systemd/system/ghost.service
2025-05-15 11:01:36,418: DEBUG - + [[ -e etc/systemd/system/ghost.service ]]
2025-05-15 11:01:36,418: DEBUG - + local rel_dir=/apps/ghost/backup
2025-05-15 11:01:36,418: DEBUG - + rel_dir=/apps/ghost/backup/
2025-05-15 11:01:36,418: DEBUG - + dest_path=/apps/ghost/backup/etc/systemd/system/ghost.service
2025-05-15 11:01:36,418: DEBUG - + dest_path=apps/ghost/backup/etc/systemd/system/ghost.service
2025-05-15 11:01:36,419: DEBUG - ++ echo /etc/systemd/system/ghost.service
2025-05-15 11:01:36,419: DEBUG - ++ sed --regexp-extended ‘s/"/""/g’
2025-05-15 11:01:36,421: DEBUG - + local src=/etc/systemd/system/ghost.service
2025-05-15 11:01:36,422: DEBUG - ++ echo apps/ghost/backup/etc/systemd/system/ghost.service
2025-05-15 11:01:36,422: DEBUG - ++ sed --regexp-extended ‘s/"/""/g’
2025-05-15 11:01:36,424: DEBUG - + local dest=apps/ghost/backup/etc/systemd/system/ghost.service
2025-05-15 11:01:36,425: DEBUG - ++ dirname /home/yunohost.backup/tmp/ghost-pre-upgrade2/apps/ghost/backup/etc/systemd/system/ghost.service
2025-05-15 11:01:36,426: DEBUG - + mkdir --parents /home/yunohost.backup/tmp/ghost-pre-upgrade2/apps/ghost/backup/etc/systemd/system
2025-05-15 11:01:36,428: DEBUG - + ynh_print_info ‘–message=Backing up the MySQL database…’
2025-05-15 11:01:36,441: DEBUG - + ynh_mysql_dump_db --database=ghost
2025-05-15 11:01:36,441: INFO - Backing up the MySQL database…
2025-05-15 11:01:36,455: DEBUG - + mysqldump --single-transaction --skip-dump-date --routines ghost
2025-05-15 11:01:36,712: DEBUG - + ynh_print_info ‘–message=Backup script completed for ghost. (YunoHost will then actually copy those files to the archive).’
2025-05-15 11:01:36,725: DEBUG - + ynh_exit_properly
2025-05-15 11:01:36,725: DEBUG - + [[ backup =~ ^install$|^upgrade$|^restore$ ]]
2025-05-15 11:01:36,725: INFO - Backup script completed for ghost. (YunoHost will then actually copy those files to the archive).
2025-05-15 11:01:36,829: DEBUG - Backup permission for ghost
2025-05-15 11:01:37,509: INFO - Creating a backup archive from the collected files…
2025-05-15 11:01:37,512: INFO - The archive will contain about 944.6MB of data.
2025-05-15 11:01:37,515: DEBUG - Creating the backup TAR archive…
2025-05-15 11:02:59,939: DEBUG - TAR backup archive created
2025-05-15 11:02:59,939: SUCCESS - Backup created: ghost-pre-upgrade2