[SOLVED] my backup is failing

when updating to latest MIAB v71a

curl -s https://mailinabox.email/setup.sh | sudo bash

I get the error

FAILED: apt-get -y -o Dpkg::Options::=--force-confdef -o Dpkg::Options::=--force-confnew install duplicity python3-pip virtualenv certbot rsync
-----------------------------------------
Reading package lists...
Building dependency tree...
Reading state information...
Package duplicity is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source

E: Package 'duplicity' has no installation candidate
-----------------------------------------


I tried re-adding the duplicity PPA

$ sudo rm -rf /etc/apt/sources.list.d/duplicity-team-ubuntu-duplicity-release-git-jammy.list
$ sudo add-apt-repository ppa:duplicity-team/duplicity-release-git
$ sudo apt update

Same error as above.
So I tried installing the Snap as suggested in another thread about duplicity install failing

$ sudo snap install duplicity --classic
$ sudo ln -s /snap/bin/duplicity /usr/bin/duplicity

But I keep getting error overnight

Starting deprecation of python 3.8 support. Support for python 3.8. will finally removed with the release of 3.14.  For details see https://devguide.python.org/versions/
Traceback (most recent call last):
  File "/snap/duplicity/524/bin/duplicity", line 5, in <module>
    from duplicity.__main__ import dup_run
  File "/snap/duplicity/524/lib/python3.8/site-packages/duplicity/__main__.py", line 35, in <module>
    from duplicity.dup_main import main
  File "/snap/duplicity/524/lib/python3.8/site-packages/duplicity/dup_main.py", line 43, in <module>
    from duplicity import backend_pool
  File "/snap/duplicity/524/lib/python3.8/site-packages/duplicity/backend_pool.py", line 46, in <module>
    from duplicity import (
  File "/snap/duplicity/524/lib/python3.8/site-packages/duplicity/backend.py", line 44, in <module>
    from duplicity import dup_temp
  File "/snap/duplicity/524/lib/python3.8/site-packages/duplicity/dup_temp.py", line 32, in <module>
    from duplicity import path
  File "/snap/duplicity/524/lib/python3.8/site-packages/duplicity/path.py", line 42, in <module>
    from duplicity import librsync
  File "/snap/duplicity/524/lib/python3.8/site-packages/duplicity/librsync.py", line 32, in <module>
    from . import _librsync
ImportError: cannot import name '_librsync' from 'duplicity' (/snap/duplicity/524/lib/python3.8/site-packages/duplicity/__init__.py)
Traceback (most recent call last):
  File "/root/mailinabox/management/backup.py", line 655, in <module>
    perform_backup(full_backup)
  File "/root/mailinabox/management/backup.py", line 322, in perform_backup
    shell('check_call', [
  File "/root/mailinabox/management/utils.py", line 127, in shell
    ret = getattr(subprocess, method)(cmd_args, **kwargs)
  File "/usr/lib/python3.10/subprocess.py", line 369, in check_call
    raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command '['/usr/bin/duplicity', 'incr', '--verbosity', 'warning', '--no-print-statistics', '--archive-dir', '/home/user-data/backup/cache', '--exclude', '/home/user-data/backup', '--exclude', '/home/user-data/owncloud-backup', '--volsize', '250', '--gpg-options', "'--cipher-algo=AES256'", '--allow-source-mismatch', '--s3-endpoint-url', 'https://ap-south-1.linodeobjects.com', '/home/user-data', 's3://new-mail/backups']' returned non-zero exit status 1.

As you can see from these logs, my main system python is 3.10 but the snap seems to be on 3.8, I can imagine this is not great.

I am running out of ideas. I am on Ubuntu 22.04.5 LTS. Until recently, overnight backups were working.

This is solved

Last month I followed these steps [SOLVED] The latest release of duplicity is missing the duplicity binary

As part of it I created the preferences file

/etc/apt/preferences.d/duplicity

which prevented duplicity from updating via PPA.

So all I had to do was

$ sudo rm /etc/apt/preferences.d/duplicity

And now MIAB update script completed successfully without errors.