Attempted to restore Cloudron 9.0.12, receiving error when loading backup configuration and hitting Restore button
-
Description
I tried to run a dry-run restore of a Cloudron instance from 9.0.12 to a fresh 9.0.12. I receive this error:
Error put object cloudron-testfile. code: undefined message: Expected closing tag 'hr' (opened in line 5, col 1) instead of closing tag 'body'.:6:1 Deserialization error: to see the raw response, inspect the hidden field {error}.$response on this object. HTTP: 403Steps to reproduce
Download backup file from old Cloudron, upload to new Cloudron on Restore page. Set access keys / secrets, and encryption password, and click on the Restore button.
Logs
2025-11-22T17:43:50.056Z box:server ========================================== 2025-11-22T17:43:50.056Z box:server Cloudron 9.0.12 2025-11-22T17:43:50.056Z box:server ========================================== 2025-11-22T17:43:50.056Z box:platform initialize: start platform 2025-11-22T17:43:50.057Z box:tasks stopAllTasks: 0 tasks are running. sending abort signal 2025-11-22T17:43:50.057Z box:shell tasks: /usr/bin/sudo --non-interactive /home/yellowtent/box/src/scripts/stoptask.sh all 2025-11-22T17:43:50.108Z box:locks releaseAll: all locks released 2025-11-22T17:43:50.111Z box:platform initialize: not activated. generating IP based redirection config 2025-11-22T17:43:50.112Z box:reverseproxy writeDefaultConfig: create new cert 2025-11-22T17:43:50.112Z box:shell reverseproxy: openssl req -x509 -newkey rsa:2048 -keyout /home/yellowtent/platformdata/nginx/cert/default.key -out /home/yellowtent/platformdata/nginx/cert/default.cert -days 800 -subj /CN=cloudron-2025-11-22T17:43:50.112Z -nodes 2025-11-22T17:43:50.245Z box:reverseproxy writeDefaultConfig: writing configs for endpoint "setup" 2025-11-22T17:43:50.246Z box:shell reverseproxy: /usr/bin/sudo --non-interactive /home/yellowtent/box/src/scripts/restartservice.sh nginx 2025-11-22T17:43:50.274Z box:notifications add: cloudronInstalled Cloudron v9.0.12 installed 2025-11-22T17:43:50.330Z box:proxyAuth start: generating new token secret 2025-11-22T17:43:51.292Z box:box Received SIGTERM. Shutting down. 2025-11-22T17:43:51.292Z box:platform uninitializing platform 2025-11-22T17:43:51.293Z box:tasks stopAllTasks: 0 tasks are running. sending abort signal 2025-11-22T17:43:51.293Z box:shell tasks: /usr/bin/sudo --non-interactive /home/yellowtent/box/src/scripts/stoptask.sh all 2025-11-22T17:43:51.319Z box:database pool closed 2025-11-22T17:43:53.320Z box:box Shutdown complete 2025-11-22T17:44:24.061Z box:server ========================================== 2025-11-22T17:44:24.062Z box:server Cloudron 9.0.12 2025-11-22T17:44:24.062Z box:server ========================================== 2025-11-22T17:44:24.062Z box:platform initialize: start platform 2025-11-22T17:44:24.063Z box:tasks stopAllTasks: 0 tasks are running. sending abort signal 2025-11-22T17:44:24.063Z box:shell tasks: /usr/bin/sudo --non-interactive /home/yellowtent/box/src/scripts/stoptask.sh all 2025-11-22T17:44:24.128Z box:locks releaseAll: all locks released 2025-11-22T17:44:24.136Z box:platform initialize: not activated. generating IP based redirection config 2025-11-22T17:44:24.139Z box:reverseproxy writeDefaultConfig: writing configs for endpoint "setup" 2025-11-22T17:44:24.140Z box:shell reverseproxy: /usr/bin/sudo --non-interactive /home/yellowtent/box/src/scripts/restartservice.sh nginx 2025-11-22T17:44:44.508Z box:network/generic getIP: querying https://ipv4.api.cloudron.io/api/v1/helper/public_ip to get ipv4 2025-11-22T17:44:44.612Z box:network/generic getIP: querying https://ipv6.api.cloudron.io/api/v1/helper/public_ip to get ipv6 2025-11-22T17:44:44.733Z box:network/generic getIP: Error getting IP. connect ENETUNREACH 2604:a880:800:10::b66:f001:443 - Local (:::0) 2025-11-22T17:45:25.575Z box:network/generic getIP: querying https://ipv6.api.cloudron.io/api/v1/helper/public_ip to get ipv6 2025-11-22T17:45:25.583Z box:network/generic getIP: Error getting IP. connect ENETUNREACH 2604:a880:800:10::b66:f001:443 - Local (:::0) 2025-11-22T17:45:25.679Z box:shell system: lsblk --paths --bytes --json --list --fs --output +rota,fsused,fsavail 2025-11-22T17:56:24.449Z box:network/generic getIP: querying https://ipv4.api.cloudron.io/api/v1/helper/public_ip to get ipv4 2025-11-22T17:56:24.526Z box:network/generic getIP: querying https://ipv6.api.cloudron.io/api/v1/helper/public_ip to get ipv6 2025-11-22T17:56:24.540Z box:network/generic getIP: Error getting IP. connect ENETUNREACH 2604:a880:800:10::b66:f001:443 - Local (:::0) 2025-11-22T17:56:26.156Z box:network/generic getIP: querying https://ipv6.api.cloudron.io/api/v1/helper/public_ip to get ipv6 2025-11-22T17:56:26.164Z box:network/generic getIP: Error getting IP. connect ENETUNREACH 2604:a880:800:10::b66:f001:443 - Local (:::0) 2025-11-22T17:56:26.263Z box:shell system: lsblk --paths --bytes --json --list --fs --output +rota,fsused,fsavail 2025-11-22T18:26:11.498Z box:server no such route: PROPFIND / 2025-11-22T18:37:57.532Z box:network/generic getIP: querying https://ipv4.api.cloudron.io/api/v1/helper/public_ip to get ipv4 2025-11-22T18:37:57.611Z box:network/generic getIP: querying https://ipv6.api.cloudron.io/api/v1/helper/public_ip to get ipv6 2025-11-22T18:37:57.641Z box:network/generic getIP: Error getting IP. connect ENETUNREACH 2604:a880:800:10::b66:f001:443 - Local (:::0) 2025-11-22T18:37:57.754Z box:shell system: lsblk --paths --bytes --json --list --fs --output +rota,fsused,fsavail 2025-11-22T18:46:47.731Z box:network/generic getIP: querying https://ipv4.api.cloudron.io/api/v1/helper/public_ip to get ipv4 2025-11-22T18:46:47.807Z box:network/generic getIP: querying https://ipv6.api.cloudron.io/api/v1/helper/public_ip to get ipv6 2025-11-22T18:46:47.839Z box:network/generic getIP: Error getting IP. connect ENETUNREACH 2604:a880:800:10::b66:f001:443 - Local (:::0) 2025-11-22T18:46:47.941Z box:shell system: lsblk --paths --bytes --json --list --fs --output +rota,fsused,fsavail 2025-11-22T18:57:34.995Z box:backups add: validating new storage configuration 2025-11-22T18:57:35.228Z box:provision restore: error. BoxError: Error put object cloudron-testfile. code: undefined message: Expected closing tag 'hr' (opened in line 5, col 1) instead of closing tag 'body'.:6:1 Deserialization error: to see the raw response, inspect the hidden field {error}.$response on this object. HTTP: 403 at Object.verifyConfig (/home/yellowtent/box/src/storage/s3.js:648:25) at process.processTicksAndRejections (node:internal/process/task_queues:105:5) at async Object.createPseudo (/home/yellowtent/box/src/backupsites.js:586:29) at async Object.restore (/home/yellowtent/box/src/provision.js:251:28) { reason: 'External Error', details: {} } 2025-11-22T18:58:09.073Z box:backups add: validating new storage configuration 2025-11-22T18:58:09.097Z box:provision restore: error. BoxError: Error put object cloudron-testfile. code: undefined message: Expected closing tag 'hr' (opened in line 5, col 1) instead of closing tag 'body'.:6:1 Deserialization error: to see the raw response, inspect the hidden field {error}.$response on this object. HTTP: 403 at Object.verifyConfig (/home/yellowtent/box/src/storage/s3.js:648:25) at process.processTicksAndRejections (node:internal/process/task_queues:105:5) at async Object.createPseudo (/home/yellowtent/box/src/backupsites.js:586:29) at async Object.restore (/home/yellowtent/box/src/provision.js:251:28) { reason: 'External Error', details: {} } 2025-11-22T18:58:26.014Z box:network/generic getIP: querying https://ipv4.api.cloudron.io/api/v1/helper/public_ip to get ipv4 2025-11-22T18:58:26.093Z box:network/generic getIP: querying https://ipv6.api.cloudron.io/api/v1/helper/public_ip to get ipv6 2025-11-22T18:58:26.125Z box:network/generic getIP: Error getting IP. connect ENETUNREACH 2604:a880:800:10::b66:f001:443 - Local (:::0) 2025-11-22T18:58:26.224Z box:shell system: lsblk --paths --bytes --json --list --fs --output +rota,fsused,fsavail 2025-11-22T18:58:33.459Z box:network/generic getIP: querying https://ipv6.api.cloudron.io/api/v1/helper/public_ip to get ipv6 2025-11-22T18:58:33.479Z box:network/generic getIP: Error getting IP. connect ENETUNREACH 2604:a880:800:10::b66:f001:443 - Local (:::0) 2025-11-22T18:58:34.672Z box:network/generic getIP: querying https://ipv6.api.cloudron.io/api/v1/helper/public_ip to get ipv6 2025-11-22T18:58:34.680Z box:network/generic getIP: Error getting IP. connect ENETUNREACH 2604:a880:800:10::b66:f001:443 - Local (:::0) 2025-11-22T18:58:34.766Z box:shell system: lsblk --paths --bytes --json --list --fs --output +rota,fsused,fsavail 2025-11-22T18:59:10.993Z box:backups add: validating new storage configuration 2025-11-22T18:59:11.030Z box:provision restore: error. BoxError: Error put object cloudron-testfile. code: undefined message: Expected closing tag 'hr' (opened in line 5, col 1) instead of closing tag 'body'.:6:1 Deserialization error: to see the raw response, inspect the hidden field {error}.$response on this object. HTTP: 403 at Object.verifyConfig (/home/yellowtent/box/src/storage/s3.js:648:25) at process.processTicksAndRejections (node:internal/process/task_queues:105:5) at async Object.createPseudo (/home/yellowtent/box/src/backupsites.js:586:29) at async Object.restore (/home/yellowtent/box/src/provision.js:251:28) { reason: 'External Error', details: {} } 2025-11-22T19:02:00.947Z box:backups add: validating new storage configuration 2025-11-22T19:02:00.968Z box:provision restore: error. BoxError: Error put object cloudron-testfile. code: undefined message: Expected closing tag 'hr' (opened in line 5, col 1) instead of closing tag 'body'.:6:1 Deserialization error: to see the raw response, inspect the hidden field {error}.$response on this object. HTTP: 403 at Object.verifyConfig (/home/yellowtent/box/src/storage/s3.js:648:25) at process.processTicksAndRejections (node:internal/process/task_queues:105:5) at async Object.createPseudo (/home/yellowtent/box/src/backupsites.js:586:29) at async Object.restore (/home/yellowtent/box/src/provision.js:251:28) { reason: 'External Error', details: {} } -
Oh I fixed it. Embarrassingly, this was an issue on my side. I forgot I had added some IP allowlist to the iDrive e2 bucket which is what happened here. Once I added the new IP address, this all worked properly. Sorry about this. Hopefully this helps someone else in the future though.

I do think the error message should be improved here though, it's a bit cryptic as it is currently.
-
J james has marked this topic as solved