backup register image failed: command error: connection closed because of a broken pipe

Opal

New Member
Mar 1, 2025
3
2
3
Hello. I setup PBS in a debian 12 VM using incus on a dedicated server and I am accessing it using nginx proxy. When I try to run the backup from my local PVE, I get the following error:

Markdown (GitHub flavored):
()
INFO: starting new backup job: vzdump 100 --all 0 --mode snapshot --storage PBS-remote --notes-template '{{guestname}}' --fleecing 0 --node giant
INFO: Starting Backup of VM 100 (qemu)
INFO: Backup started at 2025-03-01 15:29:37
INFO: status = running
INFO: VM Name: master-01
INFO: include disk 'scsi0' 'local-lvm:vm-100-disk-0' 40G
INFO: backup mode: snapshot
INFO: ionice priority: 7
INFO: creating Proxmox Backup Server archive 'vm/100/2025-03-01T09:59:37Z'
INFO: issuing guest-agent 'fs-freeze' command
INFO: issuing guest-agent 'fs-thaw' command
ERROR: VM 100 qmp command 'backup' failed - backup register image failed: command error: connection closed because of a broken pipe
INFO: aborting backup job
INFO: resuming VM again
ERROR: Backup of VM 100 failed - VM 100 qmp command 'backup' failed - backup register image failed: command error: connection closed because of a broken pipe
INFO: Failed at 2025-03-01 15:29:38
INFO: Backup job finished with errors
TASK ERROR: job errors

On the PBS side, I get the following error:
Markdown (GitHub flavored):
2025-03-01T07:20:39+00:00: backup failed: no upgrade available
2025-03-01T07:20:39+00:00: removing failed backup
2025-03-01T07:20:39+00:00: removing backup snapshot "/pve/vm/100/2025-03-01T07:20:39Z"
2025-03-01T07:20:39+00:00: TASK ERROR: no upgrade available


Here's my nginx config:

NGINX:
upstream proxmox {
    server "pbs.example.xyz";
}

server {
    server_name pbs.example.xyz;

    set $pbs 10.252.105.25;
    include /etc/nginx/security_headers.conf;
    client_max_body_size 50M;

    location / {
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header X-Forwarded-Protocol $scheme;
        proxy_set_header X-Forwarded-Host $http_host;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_pass https://$pbs:8007;
        proxy_buffering off;
    }

    access_log  /var/log/nginx/pbs_access.log;
    error_log  /var/log/nginx/pbs_err.log;

    listen 443 ssl http2; # managed by Certbot
    ssl_certificate /etc/letsencrypt/live/pbs.example.xyz/fullchain.pem; # managed by Certbot
    ssl_certificate_key /etc/letsencrypt/live/pbs.example.xyz/privkey.pem; # managed by Certbot
    include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot

}

server {
    if ($host = pbs.example.xyz) {
        return 301 https://$host$request_uri;
    } # managed by Certbot


    listen 80;
    server_name pbs.example.xyz;
    return 404; # managed by Certbot


}

And the security_headers.conf:

NGINX:
add_header X-Content-Type-Options "nosniff";
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" always;
add_header X-Frame-Options "SAMEORIGIN";
add_header X-XSS-Protection "1; mode=block";
add_header Referrer-Policy "no-referrer-when-downgrade";
add_header Permissions-Policy "geolocation=(self), midi=(self), sync-xhr=(self), microphone=(self), camera=(self), magnetometer=(self), gyroscope=(self), fullscreen=(self), payment=(self)";
 
Last edited: