#1108254 Bugs in Duplicity 0.8.17-1+b1

Package:
duplicity
Source:
duplicity
Description:
encrypted bandwidth-efficient backup
Submitter:
Mikhail Stepanov
Date:
2025-06-24 10:15:01 UTC
Severity:
normal
Tags:
#1108254#5
Date:
2025-06-24 07:57:59 UTC
From:
To:
Version: 0.8.17-1+b1

Debian version: 11


We are using duplicity for our daily backups on our clients
infrastructure. We encourage the TypeError: unsupported operand type(s)
for +: 'NoneType' and 'str' problem in duplicity when we are running the
backup. Here is the detailed log output:

##################################
Duplicity service Tue 24 Jun 2025 09:16:33 AM CEST
##################################
++++++++++++++++++++++++++++++++++
Backup of linux directories
++++++++++++++++++++++++++++++++++
# Duplicity Backup
pexpect+scp://tank-4505@scp.hidrive.strato.com:22/users/tank-4505/backups/TSeoPC12

Using archive dir: /root/.cache/duplicity/09af019105047d560455f30fda7c51d2
Using backup name: 09af019105047d560455f30fda7c51d2
GPG binary is gpg, version (2, 2, 27)
Import of duplicity.backends.adbackend Succeeded
Import of duplicity.backends.azurebackend Succeeded
Import of duplicity.backends.b2backend Succeeded
Import of duplicity.backends.cfbackend Succeeded
Import of duplicity.backends.dpbxbackend Succeeded
Import of duplicity.backends.gdocsbackend Succeeded
Import of duplicity.backends.giobackend Succeeded
Import of duplicity.backends.hsibackend Succeeded
Import of duplicity.backends.hubicbackend Succeeded
Import of duplicity.backends.imapbackend Succeeded
Import of duplicity.backends.jottacloudbackend Succeeded
Import of duplicity.backends.lftpbackend Succeeded
Import of duplicity.backends.localbackend Succeeded
Import of duplicity.backends.mediafirebackend Succeeded
Import of duplicity.backends.megabackend Succeeded
Import of duplicity.backends.megav2backend Succeeded
Import of duplicity.backends.multibackend Succeeded
Import of duplicity.backends.ncftpbackend Succeeded
Import of duplicity.backends.onedrivebackend Succeeded
Import of duplicity.backends.par2backend Succeeded
Import of duplicity.backends.pcabackend Succeeded
Import of duplicity.backends.pydrivebackend Succeeded
Import of duplicity.backends.rclonebackend Succeeded
Import of duplicity.backends.rsyncbackend Succeeded
Import of duplicity.backends.s3_boto3_backend Succeeded
Import of duplicity.backends.s3_boto_backend Succeeded
Import of duplicity.backends.ssh_paramiko_backend Succeeded
Import of duplicity.backends.ssh_pexpect_backend Succeeded
Import of duplicity.backends.swiftbackend Succeeded
Import of duplicity.backends.sxbackend Succeeded
Import of duplicity.backends.tahoebackend Succeeded
Import of duplicity.backends.webdavbackend Succeeded
Main action: inc
Acquiring lockfile
b'/root/.cache/duplicity/09af019105047d560455f30fda7c51d2/lockfile'
Using temporary directory /tmp/duplicity-nsiyjarp-tempdir
Releasing lockfile
b'/root/.cache/duplicity/09af019105047d560455f30fda7c51d2/lockfile'
Releasing lockfile
b'/root/.cache/duplicity/09af019105047d560455f30fda7c51d2/lockfile'
# Duplicity Remove old backups
pexpect+scp://tank-4505@scp.hidrive.strato.com:22/users/tank-4505/backups/TSeoPC12

# Duplicity Status Check
pexpect+scp://tank-4505@scp.hidrive.strato.com:22/users/tank-4505/backups/TSeoPC12

Running 'sftp  -oPort=22 -oServerAliveInterval=15
-oServerAliveCountMax=2 tank-4505@scp.hidrive.strato.com'
State = sftp, Before = 'tank-4505@scp.hidrive.strato.com's'
Backtrace of previous error: Traceback (innermost last):
   File "/usr/lib/python3/dist-packages/duplicity/backend.py", line 384,
in inner_retry
     return fn(self, *args)
   File "/usr/lib/python3/dist-packages/duplicity/backend.py", line 604,
in list
     return [tobytes(x) for x in self.backend._list()]
   File
"/usr/lib/python3/dist-packages/duplicity/backends/ssh_pexpect_backend.py",
line 290, in _list
     l = self.run_sftp_command(commandline, commands).split(u'\n')[1:]
   File
"/usr/lib/python3/dist-packages/duplicity/backends/ssh_pexpect_backend.py",
line 198, in run_sftp_command
     child.sendline(self.password)
   File "/usr/lib/python3/dist-packages/pexpect/pty_spawn.py", line 578,
in sendline
     return self.send(s + self.linesep)
  TypeError: unsupported operand type(s) for +: 'NoneType' and 'str'

Could you please suggest a solution for this issue. We have the debian
version 11 and the duplicity version 0.8.17-1+b1.


Best regards,

Mikhail Stepanov

#1108254#10
Date:
2025-06-24 10:04:29 UTC
From:
To:
tags 1108254 + moreinfo
thanks

On Tue, 24 Jun 2025 09:57:59 +0200, Mikhail Stepanov writes:

first issue: the error that you're reporting is actually
raised by pexpect, not duplicity (on attempting to send the login password).

second: what is the complete duplicity commandline
(redact as required) that you are running?

third: are you certain that the underlying sftp command to the
destination strato server actually works?

from what i can see in your debug output it looks as if the
the sftp connection doesn't succeed and duplicity can't even send
the password.