Borgmatic exits with error 105 #1256

Open
opened 2026-01-29 21:35:26 +00:00 by StandingPadAnimations · 12 comments

What I'm trying to do and why

I've recently started getting the following error when running borgmatic for backup

Synology Backup: Error running actions for repository
Synology Backup: Command 'borg create --patterns-from /run/user/1000/borgmatic/tmpnnonmsmt --remote-path /usr/local/bin/borg --log-json --list --filter AMEx- --stats --debug --show-rc ssh://borg-backup@IP_OF_NAS/volume1/BorgBackup/repo::{hostname}-{now:%Y-%m-%dT%H:%M:%S.%f}' returned non-zero exit status 105.
/home/mahid/.config/borgmatic/config.yaml: Error running configuration
/home/mahid/.config/borgmatic/config.yaml: An error occurred

borgmatic check --repair returns nothing, nor does it resolve the issue.

Steps to reproduce

It just started happening recently when I run borgmatic --verbosity 1 --list --stats.

Actual behavior

--verbosity 2 output:

/home/mahid/.config/borgmatic/config.yaml: BORG_RSH=*** BORG_DEBUG_PASSPHRASE=*** BORG_DISPLAY_PASSPHRASE=*** BORG_RELOCATED_REPO_ACCESS_IS_OK=*** BORG_UNKNOWN_UNENCRYPTED_REPO_ACCESS_IS_OK=*** BORG_USE_CHUNKS_ARCHIVE=*** BORG_EXIT_CODES=*** borg --version --log-json --debug --show-rc
/home/mahid/.config/borgmatic/config.yaml: Borg 1.4.3
Synology Backup: Running actions for repository
Synology Backup: Creating archive
Synology Backup: Using runtime directory /run/user/1000/borgmatic
Synology Backup: Calling bootstrap hook function remove_data_source_dumps
Synology Backup: Looking for bootstrap manifest files to remove in /run/user/1000/borgmatic/bootstrap
Synology Backup: Calling btrfs hook function remove_data_source_dumps
Synology Backup: Calling lvm hook function remove_data_source_dumps
Synology Backup: Calling mariadb hook function remove_data_source_dumps
Synology Backup: Removing MariaDB data source dumps
Synology Backup: Calling mongodb hook function remove_data_source_dumps
Synology Backup: Removing MongoDB data source dumps
Synology Backup: Calling mysql hook function remove_data_source_dumps
Synology Backup: Removing MySQL data source dumps
Synology Backup: Calling postgresql hook function remove_data_source_dumps
Synology Backup: Removing PostgreSQL data source dumps
Synology Backup: Calling sqlite hook function remove_data_source_dumps
Synology Backup: Removing SQLite data source dumps
Synology Backup: Calling zfs hook function remove_data_source_dumps
Synology Backup: Calling bootstrap hook function dump_data_sources
Synology Backup: Writing patterns to /run/user/1000/borgmatic/tmpnnonmsmt:
*REDACED FILES*
Synology Backup: Checking file paths Borg plans to include
Synology Backup: BORG_RSH=*** BORG_DEBUG_PASSPHRASE=*** BORG_DISPLAY_PASSPHRASE=*** BORG_RELOCATED_REPO_ACCESS_IS_OK=*** BORG_UNKNOWN_UNENCRYPTED_REPO_ACCESS_IS_OK=*** BORG_USE_CHUNKS_ARCHIVE=*** BORG_EXIT_CODES=*** borg create --patterns-from /run/user/1000/borgmatic/tmpnnonmsmt --remote-path /usr/local/bin/borg --list ssh://borg-backup@NAS_IP/volume1/BorgBackup/repo::{hostname}-{now:%Y-%m-%dT%H:%M:%S.%f} --dry-run --list
Synology Backup: BORG_RSH=*** BORG_DEBUG_PASSPHRASE=*** BORG_DISPLAY_PASSPHRASE=*** BORG_RELOCATED_REPO_ACCESS_IS_OK=*** BORG_UNKNOWN_UNENCRYPTED_REPO_ACCESS_IS_OK=*** BORG_USE_CHUNKS_ARCHIVE=*** BORG_EXIT_CODES=*** borg create --patterns-from /run/user/1000/borgmatic/tmpnnonmsmt --remote-path /usr/local/bin/borg --log-json --list --filter AMEx- --stats --debug --show-rc ssh://borg-backup@NAS_IP/volume1/BorgBackup/repo::{hostname}-{now:%Y-%m-%dT%H:%M:%S.%f}
using builtin fallback logging configuration
33 self tests completed in 0.04 seconds
SSH command line: ['ssh', '-i', '~/.ssh/id_rsa_borgbackup', 'borg-backup@NAS_IP', '/usr/local/bin/borg', 'serve', '--debug']
Remote: ** WARNING: connection is not using a post-quantum key exchange algorithm.
Remote: ** This session may be vulnerable to "store now, decrypt later" attacks.
Remote: ** The server may need to be upgraded. See https://openssh.com/pq.html
Remote: using builtin fallback logging configuration
Remote: 33 self tests completed in 1.63 seconds
Remote: using builtin fallback logging configuration
Remote: Initialized logging system for JSON-based protocol
Remote: Resolving repository path b'/volume1/BorgBackup/repo'
Remote: Resolved repository path to '/volume1/BorgBackup/repo'
Remote: Verified integrity of /volume1/BorgBackup/repo/index.2393
TAM-verified manifest
security: read previous location 'ssh://borg-backup@NAS_IP/volume1/BorgBackup/repo'
security: read manifest timestamp '2026-01-29T21:19:18.417163'
security: determined newest manifest timestamp as 2026-01-29T21:19:18.417163
security: repository checks ok, allowing access
Creating archive at "ssh://borg-backup@NAS_IP/volume1/BorgBackup/repo::arch-2026-01-29T15:22:54.527688"
Verified integrity of /home/mahid/.cache/borg/9496641fa15a12a255b6fda4be14003480a5d621f9b755eed88d541fe4db5653/chunks
Reading files cache ...
Verified integrity of /home/mahid/.cache/borg/9496641fa15a12a255b6fda4be14003480a5d621f9b755eed88d541fe4db5653/files
security: read previous location 'ssh://borg-backup@NAS_IP/volume1/BorgBackup/repo'
security: read manifest timestamp '2026-01-29T21:19:18.417163'
security: determined newest manifest timestamp as 2026-01-29T21:19:18.417163
security: repository checks ok, allowing access
Processing files ...
M /run/user/1000/borgmatic/bootstrap/manifest.json
M /home/mahid/.config/borg/security/9496641fa15a12a255b6fda4be14003480a5d621f9b755eed88d541fe4db5653/location
M /home/mahid/.config/borg/security/9496641fa15a12a255b6fda4be14003480a5d621f9b755eed88d541fe4db5653/key-type
M /home/mahid/.config/borg/security/9496641fa15a12a255b6fda4be14003480a5d621f9b755eed88d541fe4db5653/manifest-timestamp
M /home/mahid/.config/fish/fish_variables
Remote: Cleaned up 0 uncommitted segment files (== everything after segment 2393).
M /home/mahid/.config/Nextcloud/logs/20260129_1405_nextcloud.log.0
Remote: Verified integrity of /volume1/BorgBackup/repo/hints.2393
Remote: Storage quota: 195.79 GB out of 512.00 GB used.
*REDACTED FILES*
Remote: check_free_space: required bytes 1035709058, free bytes 1622365216768
Remote: Storage quota: 195.87 GB out of 512.00 GB used.
security: saving state for 9496641fa15a12a255b6fda4be14003480a5d621f9b755eed88d541fe4db5653 to /home/mahid/.config/borg/security/9496641fa15a12a255b6fda4be14003480a5d621f9b755eed88d541fe4db5653
security: current location   ssh://borg-backup@NAS_IP/volume1/BorgBackup/repo
security: key type           3
security: manifest timestamp 2026-01-29T21:24:31.493337
Remote: Verified integrity of /volume1/BorgBackup/repo/index.2397
Archive authentication DISABLED.
TAM-verified archive
Archive authentication DISABLED.
TAM-verified archive
Archive authentication DISABLED.
TAM-verified archive
Archive authentication DISABLED.
TAM-verified archive
Archive authentication DISABLED.
TAM-verified archive
Archive authentication DISABLED.
TAM-verified archive
Archive authentication DISABLED.
TAM-verified archive
Archive authentication DISABLED.
TAM-verified archive
Archive authentication DISABLED.
TAM-verified archive
Archive authentication DISABLED.
TAM-verified archive
Archive authentication DISABLED.
TAM-verified archive
Archive authentication DISABLED.
TAM-verified archive
Archive authentication DISABLED.
TAM-verified archive
Archive authentication DISABLED.
TAM-verified archive
Archive authentication DISABLED.
TAM-verified archive
Archive authentication DISABLED.
TAM-verified archive
Archive authentication DISABLED.
TAM-verified archive
Archive authentication DISABLED.
TAM-verified archive
Archive authentication DISABLED.
TAM-verified archive
Archive authentication DISABLED.
TAM-verified archive
Archive authentication DISABLED.
TAM-verified archive
Archive authentication DISABLED.
TAM-verified archive
Archive authentication DISABLED.
TAM-verified archive
------------------------------------------------------------------------------
Repository: ssh://borg-backup@NAS_IP/volume1/BorgBackup/repo
Archive name: arch-2026-01-29T15:22:54.527688
Archive fingerprint: 99ebd20eda9dc219c178d12b6d3fe33f7cf73764c9122fca7244400bbdcfb1c9
Time (start): Thu, 2026-01-29 15:23:02
Time (end):   Thu, 2026-01-29 15:24:31
Duration: 1 minutes 29.02 seconds
Number of files: 1153981
Utilization of max. archive size: 0%
------------------------------------------------------------------------------
                       Original size      Compressed size    Deduplicated size
This archive:              213.19 GB            148.96 GB             86.76 MB
All archives:                4.69 TB              3.27 TB            193.63 GB

                       Unique chunks         Total chunks
Chunk index:                 1146354             26515618
------------------------------------------------------------------------------
RemoteRepository: 88.37 MB bytes sent, 1.75 MB bytes received, 193 messages sent
rcs: [105]
terminating with warning status, rc 105
Treating exit code 105 as an error, as per borgmatic defaults
Synology Backup: Calling bootstrap hook function remove_data_source_dumps
Synology Backup: Looking for bootstrap manifest files to remove in /run/user/1000/borgmatic/bootstrap
Synology Backup: Removing bootstrap manifest at /run/user/1000/borgmatic/bootstrap/manifest.json
Synology Backup: Calling btrfs hook function remove_data_source_dumps
Synology Backup: Calling lvm hook function remove_data_source_dumps
Synology Backup: Calling mariadb hook function remove_data_source_dumps
Synology Backup: Removing MariaDB data source dumps
Synology Backup: Calling mongodb hook function remove_data_source_dumps
Synology Backup: Removing MongoDB data source dumps
Synology Backup: Calling mysql hook function remove_data_source_dumps
Synology Backup: Removing MySQL data source dumps
Synology Backup: Calling postgresql hook function remove_data_source_dumps
Synology Backup: Removing PostgreSQL data source dumps
Synology Backup: Calling sqlite hook function remove_data_source_dumps
Synology Backup: Removing SQLite data source dumps
Synology Backup: Calling zfs hook function remove_data_source_dumps
Synology Backup: Error running actions for repository
Synology Backup: Command 'borg create --patterns-from /run/user/1000/borgmatic/tmpnnonmsmt --remote-path /usr/local/bin/borg --log-json --list --filter AMEx- --stats --debug --show-rc ssh://borg-backup@NAS_IP/volume1/BorgBackup/repo::{hostname}-{now:%Y-%m-%dT%H:%M:%S.%f}' returned non-zero exit status 105.
/home/mahid/.config/borgmatic/config.yaml: Error running configuration
/home/mahid/.config/borgmatic/config.yaml: An error occurred

summary:
/home/mahid/.config/borgmatic/config.yaml: Loading configuration file
An error occurred
Error running actions for repository
...
TAM-verified archive
Archive authentication DISABLED.
TAM-verified archive
Archive authentication DISABLED.
TAM-verified archive
------------------------------------------------------------------------------
Repository: ssh://borg-backup@NAS_IP/volume1/BorgBackup/repo
Archive name: arch-2026-01-29T15:22:54.527688
Archive fingerprint: 99ebd20eda9dc219c178d12b6d3fe33f7cf73764c9122fca7244400bbdcfb1c9
Time (start): Thu, 2026-01-29 15:23:02
Time (end):   Thu, 2026-01-29 15:24:31
Duration: 1 minutes 29.02 seconds
Number of files: 1153981
Utilization of max. archive size: 0%
------------------------------------------------------------------------------
                       Original size      Compressed size    Deduplicated size
This archive:              213.19 GB            148.96 GB             86.76 MB
All archives:                4.69 TB              3.27 TB            193.63 GB

                       Unique chunks         Total chunks
Chunk index:                 1146354             26515618
------------------------------------------------------------------------------
RemoteRepository: 88.37 MB bytes sent, 1.75 MB bytes received, 193 messages sent
rcs: [105]
terminating with warning status, rc 105
Command 'borg create --patterns-from /run/user/1000/borgmatic/tmpnnonmsmt --remote-path /usr/local/bin/borg --log-json --list --filter AMEx- --stats --debug --show-rc ssh://borg-backup@NAS_IP/volume1/BorgBackup/repo::{hostname}-{now:%Y-%m-%dT%H:%M:%S.%f}' returned non-zero exit status 105.
Error running configuration

Need some help? https://torsion.org/borgmatic/#issues

Expected behavior

For borgmatic not to exit with an error

Other notes / implementation ideas

According to borgmatic list, the backup archives do seem to be created, though I cannot attest to their contents being there.

borgmatic version

2.1.0

borgmatic installation method

Arch packae

Borg version

borg 1.4.3

Python version

Python 3.14.2

Database version (if applicable)

N/A

Operating system and version

Arch Linux rolling

### What I'm trying to do and why I've recently started getting the following error when running `borgmatic` for backup ``` Synology Backup: Error running actions for repository Synology Backup: Command 'borg create --patterns-from /run/user/1000/borgmatic/tmpnnonmsmt --remote-path /usr/local/bin/borg --log-json --list --filter AMEx- --stats --debug --show-rc ssh://borg-backup@IP_OF_NAS/volume1/BorgBackup/repo::{hostname}-{now:%Y-%m-%dT%H:%M:%S.%f}' returned non-zero exit status 105. /home/mahid/.config/borgmatic/config.yaml: Error running configuration /home/mahid/.config/borgmatic/config.yaml: An error occurred ``` `borgmatic check --repair` returns nothing, nor does it resolve the issue. ### Steps to reproduce It just started happening recently when I run `borgmatic --verbosity 1 --list --stats`. ### Actual behavior `--verbosity 2` output: ``` /home/mahid/.config/borgmatic/config.yaml: BORG_RSH=*** BORG_DEBUG_PASSPHRASE=*** BORG_DISPLAY_PASSPHRASE=*** BORG_RELOCATED_REPO_ACCESS_IS_OK=*** BORG_UNKNOWN_UNENCRYPTED_REPO_ACCESS_IS_OK=*** BORG_USE_CHUNKS_ARCHIVE=*** BORG_EXIT_CODES=*** borg --version --log-json --debug --show-rc /home/mahid/.config/borgmatic/config.yaml: Borg 1.4.3 Synology Backup: Running actions for repository Synology Backup: Creating archive Synology Backup: Using runtime directory /run/user/1000/borgmatic Synology Backup: Calling bootstrap hook function remove_data_source_dumps Synology Backup: Looking for bootstrap manifest files to remove in /run/user/1000/borgmatic/bootstrap Synology Backup: Calling btrfs hook function remove_data_source_dumps Synology Backup: Calling lvm hook function remove_data_source_dumps Synology Backup: Calling mariadb hook function remove_data_source_dumps Synology Backup: Removing MariaDB data source dumps Synology Backup: Calling mongodb hook function remove_data_source_dumps Synology Backup: Removing MongoDB data source dumps Synology Backup: Calling mysql hook function remove_data_source_dumps Synology Backup: Removing MySQL data source dumps Synology Backup: Calling postgresql hook function remove_data_source_dumps Synology Backup: Removing PostgreSQL data source dumps Synology Backup: Calling sqlite hook function remove_data_source_dumps Synology Backup: Removing SQLite data source dumps Synology Backup: Calling zfs hook function remove_data_source_dumps Synology Backup: Calling bootstrap hook function dump_data_sources Synology Backup: Writing patterns to /run/user/1000/borgmatic/tmpnnonmsmt: *REDACED FILES* Synology Backup: Checking file paths Borg plans to include Synology Backup: BORG_RSH=*** BORG_DEBUG_PASSPHRASE=*** BORG_DISPLAY_PASSPHRASE=*** BORG_RELOCATED_REPO_ACCESS_IS_OK=*** BORG_UNKNOWN_UNENCRYPTED_REPO_ACCESS_IS_OK=*** BORG_USE_CHUNKS_ARCHIVE=*** BORG_EXIT_CODES=*** borg create --patterns-from /run/user/1000/borgmatic/tmpnnonmsmt --remote-path /usr/local/bin/borg --list ssh://borg-backup@NAS_IP/volume1/BorgBackup/repo::{hostname}-{now:%Y-%m-%dT%H:%M:%S.%f} --dry-run --list Synology Backup: BORG_RSH=*** BORG_DEBUG_PASSPHRASE=*** BORG_DISPLAY_PASSPHRASE=*** BORG_RELOCATED_REPO_ACCESS_IS_OK=*** BORG_UNKNOWN_UNENCRYPTED_REPO_ACCESS_IS_OK=*** BORG_USE_CHUNKS_ARCHIVE=*** BORG_EXIT_CODES=*** borg create --patterns-from /run/user/1000/borgmatic/tmpnnonmsmt --remote-path /usr/local/bin/borg --log-json --list --filter AMEx- --stats --debug --show-rc ssh://borg-backup@NAS_IP/volume1/BorgBackup/repo::{hostname}-{now:%Y-%m-%dT%H:%M:%S.%f} using builtin fallback logging configuration 33 self tests completed in 0.04 seconds SSH command line: ['ssh', '-i', '~/.ssh/id_rsa_borgbackup', 'borg-backup@NAS_IP', '/usr/local/bin/borg', 'serve', '--debug'] Remote: ** WARNING: connection is not using a post-quantum key exchange algorithm. Remote: ** This session may be vulnerable to "store now, decrypt later" attacks. Remote: ** The server may need to be upgraded. See https://openssh.com/pq.html Remote: using builtin fallback logging configuration Remote: 33 self tests completed in 1.63 seconds Remote: using builtin fallback logging configuration Remote: Initialized logging system for JSON-based protocol Remote: Resolving repository path b'/volume1/BorgBackup/repo' Remote: Resolved repository path to '/volume1/BorgBackup/repo' Remote: Verified integrity of /volume1/BorgBackup/repo/index.2393 TAM-verified manifest security: read previous location 'ssh://borg-backup@NAS_IP/volume1/BorgBackup/repo' security: read manifest timestamp '2026-01-29T21:19:18.417163' security: determined newest manifest timestamp as 2026-01-29T21:19:18.417163 security: repository checks ok, allowing access Creating archive at "ssh://borg-backup@NAS_IP/volume1/BorgBackup/repo::arch-2026-01-29T15:22:54.527688" Verified integrity of /home/mahid/.cache/borg/9496641fa15a12a255b6fda4be14003480a5d621f9b755eed88d541fe4db5653/chunks Reading files cache ... Verified integrity of /home/mahid/.cache/borg/9496641fa15a12a255b6fda4be14003480a5d621f9b755eed88d541fe4db5653/files security: read previous location 'ssh://borg-backup@NAS_IP/volume1/BorgBackup/repo' security: read manifest timestamp '2026-01-29T21:19:18.417163' security: determined newest manifest timestamp as 2026-01-29T21:19:18.417163 security: repository checks ok, allowing access Processing files ... M /run/user/1000/borgmatic/bootstrap/manifest.json M /home/mahid/.config/borg/security/9496641fa15a12a255b6fda4be14003480a5d621f9b755eed88d541fe4db5653/location M /home/mahid/.config/borg/security/9496641fa15a12a255b6fda4be14003480a5d621f9b755eed88d541fe4db5653/key-type M /home/mahid/.config/borg/security/9496641fa15a12a255b6fda4be14003480a5d621f9b755eed88d541fe4db5653/manifest-timestamp M /home/mahid/.config/fish/fish_variables Remote: Cleaned up 0 uncommitted segment files (== everything after segment 2393). M /home/mahid/.config/Nextcloud/logs/20260129_1405_nextcloud.log.0 Remote: Verified integrity of /volume1/BorgBackup/repo/hints.2393 Remote: Storage quota: 195.79 GB out of 512.00 GB used. *REDACTED FILES* Remote: check_free_space: required bytes 1035709058, free bytes 1622365216768 Remote: Storage quota: 195.87 GB out of 512.00 GB used. security: saving state for 9496641fa15a12a255b6fda4be14003480a5d621f9b755eed88d541fe4db5653 to /home/mahid/.config/borg/security/9496641fa15a12a255b6fda4be14003480a5d621f9b755eed88d541fe4db5653 security: current location ssh://borg-backup@NAS_IP/volume1/BorgBackup/repo security: key type 3 security: manifest timestamp 2026-01-29T21:24:31.493337 Remote: Verified integrity of /volume1/BorgBackup/repo/index.2397 Archive authentication DISABLED. TAM-verified archive Archive authentication DISABLED. TAM-verified archive Archive authentication DISABLED. TAM-verified archive Archive authentication DISABLED. TAM-verified archive Archive authentication DISABLED. TAM-verified archive Archive authentication DISABLED. TAM-verified archive Archive authentication DISABLED. TAM-verified archive Archive authentication DISABLED. TAM-verified archive Archive authentication DISABLED. TAM-verified archive Archive authentication DISABLED. TAM-verified archive Archive authentication DISABLED. TAM-verified archive Archive authentication DISABLED. TAM-verified archive Archive authentication DISABLED. TAM-verified archive Archive authentication DISABLED. TAM-verified archive Archive authentication DISABLED. TAM-verified archive Archive authentication DISABLED. TAM-verified archive Archive authentication DISABLED. TAM-verified archive Archive authentication DISABLED. TAM-verified archive Archive authentication DISABLED. TAM-verified archive Archive authentication DISABLED. TAM-verified archive Archive authentication DISABLED. TAM-verified archive Archive authentication DISABLED. TAM-verified archive Archive authentication DISABLED. TAM-verified archive ------------------------------------------------------------------------------ Repository: ssh://borg-backup@NAS_IP/volume1/BorgBackup/repo Archive name: arch-2026-01-29T15:22:54.527688 Archive fingerprint: 99ebd20eda9dc219c178d12b6d3fe33f7cf73764c9122fca7244400bbdcfb1c9 Time (start): Thu, 2026-01-29 15:23:02 Time (end): Thu, 2026-01-29 15:24:31 Duration: 1 minutes 29.02 seconds Number of files: 1153981 Utilization of max. archive size: 0% ------------------------------------------------------------------------------ Original size Compressed size Deduplicated size This archive: 213.19 GB 148.96 GB 86.76 MB All archives: 4.69 TB 3.27 TB 193.63 GB Unique chunks Total chunks Chunk index: 1146354 26515618 ------------------------------------------------------------------------------ RemoteRepository: 88.37 MB bytes sent, 1.75 MB bytes received, 193 messages sent rcs: [105] terminating with warning status, rc 105 Treating exit code 105 as an error, as per borgmatic defaults Synology Backup: Calling bootstrap hook function remove_data_source_dumps Synology Backup: Looking for bootstrap manifest files to remove in /run/user/1000/borgmatic/bootstrap Synology Backup: Removing bootstrap manifest at /run/user/1000/borgmatic/bootstrap/manifest.json Synology Backup: Calling btrfs hook function remove_data_source_dumps Synology Backup: Calling lvm hook function remove_data_source_dumps Synology Backup: Calling mariadb hook function remove_data_source_dumps Synology Backup: Removing MariaDB data source dumps Synology Backup: Calling mongodb hook function remove_data_source_dumps Synology Backup: Removing MongoDB data source dumps Synology Backup: Calling mysql hook function remove_data_source_dumps Synology Backup: Removing MySQL data source dumps Synology Backup: Calling postgresql hook function remove_data_source_dumps Synology Backup: Removing PostgreSQL data source dumps Synology Backup: Calling sqlite hook function remove_data_source_dumps Synology Backup: Removing SQLite data source dumps Synology Backup: Calling zfs hook function remove_data_source_dumps Synology Backup: Error running actions for repository Synology Backup: Command 'borg create --patterns-from /run/user/1000/borgmatic/tmpnnonmsmt --remote-path /usr/local/bin/borg --log-json --list --filter AMEx- --stats --debug --show-rc ssh://borg-backup@NAS_IP/volume1/BorgBackup/repo::{hostname}-{now:%Y-%m-%dT%H:%M:%S.%f}' returned non-zero exit status 105. /home/mahid/.config/borgmatic/config.yaml: Error running configuration /home/mahid/.config/borgmatic/config.yaml: An error occurred summary: /home/mahid/.config/borgmatic/config.yaml: Loading configuration file An error occurred Error running actions for repository ... TAM-verified archive Archive authentication DISABLED. TAM-verified archive Archive authentication DISABLED. TAM-verified archive ------------------------------------------------------------------------------ Repository: ssh://borg-backup@NAS_IP/volume1/BorgBackup/repo Archive name: arch-2026-01-29T15:22:54.527688 Archive fingerprint: 99ebd20eda9dc219c178d12b6d3fe33f7cf73764c9122fca7244400bbdcfb1c9 Time (start): Thu, 2026-01-29 15:23:02 Time (end): Thu, 2026-01-29 15:24:31 Duration: 1 minutes 29.02 seconds Number of files: 1153981 Utilization of max. archive size: 0% ------------------------------------------------------------------------------ Original size Compressed size Deduplicated size This archive: 213.19 GB 148.96 GB 86.76 MB All archives: 4.69 TB 3.27 TB 193.63 GB Unique chunks Total chunks Chunk index: 1146354 26515618 ------------------------------------------------------------------------------ RemoteRepository: 88.37 MB bytes sent, 1.75 MB bytes received, 193 messages sent rcs: [105] terminating with warning status, rc 105 Command 'borg create --patterns-from /run/user/1000/borgmatic/tmpnnonmsmt --remote-path /usr/local/bin/borg --log-json --list --filter AMEx- --stats --debug --show-rc ssh://borg-backup@NAS_IP/volume1/BorgBackup/repo::{hostname}-{now:%Y-%m-%dT%H:%M:%S.%f}' returned non-zero exit status 105. Error running configuration Need some help? https://torsion.org/borgmatic/#issues ``` ### Expected behavior For borgmatic not to exit with an error ### Other notes / implementation ideas According to `borgmatic list`, the backup archives do seem to be created, though I cannot attest to their contents being there. ### borgmatic version 2.1.0 ### borgmatic installation method Arch packae ### Borg version borg 1.4.3 ### Python version Python 3.14.2 ### Database version (if applicable) N/A ### Operating system and version Arch Linux rolling
Owner

Exit code 105 is a Borg permission warning, meaning that it doesn't have permission to read some files that you're directing it to backup. I'd suggest looking at the rest of the log (and if necessary, upping the verbosity) to see what files those are.

Prior to borgmatic 2.1.0, those permissions warnings were swallowed silently. Now they result in the kind of error you're seeing so that you actually find out about files that aren't being backed up.

There are several ways to deal with the permission problem:

  1. You can run borgmatic with sudo / as root. Then Borg should have permissions to read all files.
  2. You can avoid listing paths in source_directories that your user doesn't have permission to read (or containing files that your user doesn't have permission to read).
  3. You can change the permissions of those files so your user has permission to read them.
  4. You can return to the earlier behavior (pre-2.1.0) by customizing how borgmatic interprets Borgs warnings and errors. But if you do this, it still means that Borg will not backup files that your user doesn't have permission to read, and so I generally don't recommend it.

For that last option, it would look something like this in borgmatic's configuration:

borg_exit_codes:
    - code: 105
      treat_as: warning

Hope that helps!

Related: #1249

Exit code 105 is a [Borg permission warning](https://borgbackup.readthedocs.io/en/stable/internals/frontends.html#message-ids), meaning that it doesn't have permission to read some files that you're directing it to backup. I'd suggest looking at the rest of the log (and if necessary, [upping the verbosity](https://torsion.org/borgmatic/reference/command-line/logging/)) to see what files those are. Prior to borgmatic 2.1.0, those permissions warnings were swallowed silently. Now they result in the kind of error you're seeing so that you actually find out about files that aren't being backed up. There are several ways to deal with the permission problem: 1. You can run borgmatic with `sudo` / as root. Then Borg should have permissions to read all files. 2. You can avoid listing paths in `source_directories` that your user doesn't have permission to read (or containing files that your user doesn't have permission to read). 3. You can change the permissions of those files so your user has permission to read them. 4. You can return to the earlier behavior (pre-2.1.0) by [customizing how borgmatic interprets Borgs warnings and errors](https://torsion.org/borgmatic/how-to/customize-warnings-and-errors/). But if you do this, it still means that Borg will *not* backup files that your user doesn't have permission to read, and so I generally don't recommend it. For that last option, it would look something like this in borgmatic's configuration: ```yaml borg_exit_codes: - code: 105 treat_as: warning ``` Hope that helps! Related: #1249

Just to clarify, will running borgmatic with elevated permissions not cause permission issues later down the line when accessing back-ups? That's my main concern with running borgmatic with elevated permissions.

Just to clarify, will running borgmatic with elevated permissions not cause permission issues later down the line when accessing back-ups? That's my main concern with running `borgmatic` with elevated permissions.
Owner

Yeah, that's a valid concern, and I wasn't necessarily recommending it as the best solution. Elevated permissions are just one possible approach, subject to your own needs (like how you want to access those backups as a non-privileged user). I think instead, I'd recommend trying to track down which files are having the permission problems, because that means they're not getting backed up. And if that's too much trouble and/or you don't actually care about those files, you can fall back to the borg_exit_codes workaround and they will continue being omitted from backups.

Yeah, that's a valid concern, and I wasn't necessarily recommending it as the best solution. Elevated permissions are just one possible approach, subject to your own needs (like how you want to access those backups as a non-privileged user). I think instead, I'd recommend trying to track down which files are having the permission problems, because that means they're not getting backed up. And if that's too much trouble and/or you don't actually care about those files, you can fall back to the `borg_exit_codes` workaround and they will continue being omitted from backups.

I also hit this. Using -v 2 did not result in an explicit log pointing to the file triggering the permission error.

I suspect that's a borg issue rather than a borgmatic issue?

The default output generated a list of files and directories, but that seemed to be the set of directories it decided needed to be backed up, and none of the files in that set had a permission issue. The issue was elsewhere.

Admittedly listing the first file to cause a problem would not help the user local all the files that pose a problem, but it would help the user discover the root cause faster.

I also hit this. Using `-v 2` did not result in an explicit log pointing to the file triggering the permission error. I suspect that's a borg issue rather than a borgmatic issue? The default output generated a list of files and directories, but that seemed to be the set of directories it decided needed to be backed up, and none of the files in that set had a permission issue. The issue was elsewhere. Admittedly listing the first file to cause a problem would not help the user local _all_ the files that pose a problem, but it would help the user discover the root cause faster.
Owner

Have you tried including --list, so Borg outputs the list of files it's processing as it's processing them? Maybe that's what you mean by "generated a list of files and directories"? If so, the permission issue might occur near the last file listed, meaning that it might occur in the same directory or parent directory.

I'm just speculating here though. I could maybe help if I saw your logs.

Have you tried including `--list`, so Borg outputs the list of files it's processing as it's processing them? Maybe that's what you mean by "generated a list of files and directories"? If so, the permission issue might occur *near* the last file listed, meaning that it might occur in the same directory or parent directory. I'm just speculating here though. I could maybe help if I saw your logs.

adding --list did not change the output noticeably. running as user aaaa. The list after "An error occurred" was there without --list and is mostly directories. I've checked and aaa has read access to all those files and directories.

my difficulties debugging this were:

  • it says "105", not "permission denied" - I had to go to github to decode that
  • it doesn't specifically say what permission was denied (a file? which file? remote? local? maybe ssh session?

running as root fixes the problem, but feels like the nuclear option.

$ /usr/local/bin/borgmatic -c borgmatic.yaml create --list 
rsyncnet: Treating exit code 105 as an error, as per borgmatic defaults
rsyncnet: Error running actions for repository
rsyncnet: Command 'borg create --patterns-from /tmp/borgmatic-80dbvhr_/borgmatic/tmp5oklvbqj --upload-ratelimit 50000 --one-file-system --remote-path /usr/local/bin/borg1 --list ssh://xxxx@xxxx.rsync.net/data2/home/xxxx/borg::xxxx-{now:%Y-%m-%dT%H:%M:%S.%f} --dry-run --list' returned non-zero exit status 105.
/volume1/Project/aaaa/projects/rsyncnet/borgmatic.yaml: Error running configuration
/volume1/Project/aaaa/projects/rsyncnet/borgmatic.yaml: An error occurred

summary:
An error occurred
Error running actions for repository
...
- /volume1/homes/aaaa/Photos/xxx
- /volume1/homes/aaaa/Photos/xxx
- /volume1/homes/aaaa/Photos/xxx
- /volume1/homes/aaaa/Photos/xxx
- /volume1/homes/aaaa/Photos/xxx
- /volume1/homes/aaaa/Photos/xxx
- /volume1/homes/aaaa/Photos/xxx
- /volume1/homes/aaaa/Photos/xx
- /volume1/homes/aaaa/Photos/xx
- /volume1/homes/aaaa/Photos
- /volume1/homes/aaaa/borg/id_synology
- /volume1/homes/aaaa/borg/id_synology.pub
- /volume1/homes/aaaa/borg
- /volume1/homes/aaaa/.config/procps
- /volume1/homes/aaaa/.config
- /volume1/homes/aaaa
- /volume1/homes/bbbb/rsyncnet
- /volume1/homes/bbbb/.ssh/known_hosts
- /volume1/homes/bbbb/.ssh
- /volume1/homes/bbbb
- /volume1/homes/cccc
- /volume1/homes/dddd
- /volume1/homes/eeee
- /volume1/homes/ffff
- /volume1/homes
Command 'borg create --patterns-from /tmp/borgmatic-80dbvhr_/borgmatic/tmp5oklvbqj --upload-ratelimit 50000 --one-file-system --remote-path /usr/local/bin/borg1 --list ssh://xxx@xxx.rsync.net/data2/home/xxx/borg::vault-{now:%Y-%m-%dT%H:%M:%S.%f} --dry-run --list' returned non-zero exit status 105.
Error running configuration

Need some help? https://torsion.org/borgmatic/#issues
adding `--list` did not change the output noticeably. running as user aaaa. The list after "An error occurred" was there without `--list` and is mostly directories. I've checked and aaa has read access to all those files and directories. my difficulties debugging this were: - it says "105", not "permission denied" - I had to go to github to decode that - it doesn't specifically say what permission was denied (a file? which file? remote? local? maybe ssh session? running as root fixes the problem, but feels like the nuclear option. ``` $ /usr/local/bin/borgmatic -c borgmatic.yaml create --list rsyncnet: Treating exit code 105 as an error, as per borgmatic defaults rsyncnet: Error running actions for repository rsyncnet: Command 'borg create --patterns-from /tmp/borgmatic-80dbvhr_/borgmatic/tmp5oklvbqj --upload-ratelimit 50000 --one-file-system --remote-path /usr/local/bin/borg1 --list ssh://xxxx@xxxx.rsync.net/data2/home/xxxx/borg::xxxx-{now:%Y-%m-%dT%H:%M:%S.%f} --dry-run --list' returned non-zero exit status 105. /volume1/Project/aaaa/projects/rsyncnet/borgmatic.yaml: Error running configuration /volume1/Project/aaaa/projects/rsyncnet/borgmatic.yaml: An error occurred summary: An error occurred Error running actions for repository ... - /volume1/homes/aaaa/Photos/xxx - /volume1/homes/aaaa/Photos/xxx - /volume1/homes/aaaa/Photos/xxx - /volume1/homes/aaaa/Photos/xxx - /volume1/homes/aaaa/Photos/xxx - /volume1/homes/aaaa/Photos/xxx - /volume1/homes/aaaa/Photos/xxx - /volume1/homes/aaaa/Photos/xx - /volume1/homes/aaaa/Photos/xx - /volume1/homes/aaaa/Photos - /volume1/homes/aaaa/borg/id_synology - /volume1/homes/aaaa/borg/id_synology.pub - /volume1/homes/aaaa/borg - /volume1/homes/aaaa/.config/procps - /volume1/homes/aaaa/.config - /volume1/homes/aaaa - /volume1/homes/bbbb/rsyncnet - /volume1/homes/bbbb/.ssh/known_hosts - /volume1/homes/bbbb/.ssh - /volume1/homes/bbbb - /volume1/homes/cccc - /volume1/homes/dddd - /volume1/homes/eeee - /volume1/homes/ffff - /volume1/homes Command 'borg create --patterns-from /tmp/borgmatic-80dbvhr_/borgmatic/tmp5oklvbqj --upload-ratelimit 50000 --one-file-system --remote-path /usr/local/bin/borg1 --list ssh://xxx@xxx.rsync.net/data2/home/xxx/borg::vault-{now:%Y-%m-%dT%H:%M:%S.%f} --dry-run --list' returned non-zero exit status 105. Error running configuration Need some help? https://torsion.org/borgmatic/#issues ```
Owner

That's really odd. What version of borgmatic and Borg are you using? When I try a repro with borgmatic 2.1.3 and Borg 1.4.3, it looks like the following:

$ borgmatic -c test.yaml -v 2 create --list
...
An error occurred
Error running actions for repository
- /home/witten/Downloads/tmp/test.yaml
- /run/user/1000/borgmatic/bootstrap/manifest.json
- /run/user/1000/borgmatic/bootstrap
/root: dir_open: [Errno 13] Permission denied: '/root'
E /root
- /home/witten/Downloads/tmp/new.txt
...

Notice that Borg's permission error (and the path in question) is getting surfaced.

That's really odd. What version of borgmatic and Borg are you using? When I try a repro with borgmatic 2.1.3 and Borg 1.4.3, it looks like the following: ``` $ borgmatic -c test.yaml -v 2 create --list ... An error occurred Error running actions for repository - /home/witten/Downloads/tmp/test.yaml - /run/user/1000/borgmatic/bootstrap/manifest.json - /run/user/1000/borgmatic/bootstrap /root: dir_open: [Errno 13] Permission denied: '/root' E /root - /home/witten/Downloads/tmp/new.txt ... ``` Notice that Borg's permission error (and the path in question) is getting surfaced.

https://synocommunity.com/package/borgbackup

The synovommunity package seems to be running 2.1.2 😿

https://synocommunity.com/package/borgbackup The synovommunity package seems to be running 2.1.2 😿
Owner

2.1.2? That should be fine. I just confirmed the same behavior I described above with borgmatic 2.1.2. So something weird is going on. Are you able to run just Borg without borgmatic and see if that's also missing the permission denied message? You'd have to leave out the --patterns-from + path (since borgmatic creates that on the fly) and supply your own patterns on the command-line. Or do --patterns-from with your own temporary patterns file. Kind of a pain, I know.

Also, I don't see --verbosity 2 in your command above. It'd be nice to include that to see if there's anything helpful, even though it shouldn't be necessary to get an error. And it'd also be good to confirm via borgmatic --version that the version running is the version expected.

2.1.2? That should be fine. I just confirmed the same behavior I described above with borgmatic 2.1.2. So something weird is going on. Are you able to run just Borg without borgmatic and see if that's also missing the permission denied message? You'd have to leave out the `--patterns-from` + path (since borgmatic creates that on the fly) and supply your own patterns on the command-line. Or do `--patterns-from` with your own temporary patterns file. Kind of a pain, I know. Also, I don't see `--verbosity 2` in your command above. It'd be nice to include that to see if there's anything helpful, even though it shouldn't be necessary to get an error. And it'd also be good to confirm via `borgmatic --version` that the version running is the version expected.

When I run the underlying borg command I do get the error:

$ borg create --patterns-from templates.txt --upload-ratelimit 50000 --one-file-system --remote-path /usr/local/bin/borg1 --list ssh://xxx@xxx.rsync.net/data2/home/xxx/borg::vault-{now:%Y-%m-%dT%H:%M:%S.%f} --dry-run --list
/volume1/Project/@eaDir/SYNO@.fileindexdb: dir_open: [Errno 13] Permission denied: 'SYNO@.fileindexdb'
E /volume1/Project/@eaDir/SYNO@.fileindexdb

which is owned by root and is I presume a file synolgy universal search created to index the drive.

When I run the underlying borg command I do get the error: ``` $ borg create --patterns-from templates.txt --upload-ratelimit 50000 --one-file-system --remote-path /usr/local/bin/borg1 --list ssh://xxx@xxx.rsync.net/data2/home/xxx/borg::vault-{now:%Y-%m-%dT%H:%M:%S.%f} --dry-run --list /volume1/Project/@eaDir/SYNO@.fileindexdb: dir_open: [Errno 13] Permission denied: 'SYNO@.fileindexdb' E /volume1/Project/@eaDir/SYNO@.fileindexdb ``` which is owned by root and is I presume a file synolgy universal search created to index the drive.
Owner

Okay, thanks for running that. I'm not sure why that error isn't showing up in the borgmatic output, but at least now you know what the problem file is. I recommend adding it to your excludes, since you don't have the permission to read it as a non-root user.

Okay, thanks for running that. I'm not sure why that error isn't showing up in the borgmatic output, but at least now you know what the problem file is. I recommend adding it to your excludes, since you don't have the permission to read it as a non-root user.

running the borg command with 2>&1 | grep "^E" generates a tidy list of trouble makers. I'm glad it doesn't give up early. It would be nice if that showed up in the borgmatic output, but there's something weird about the synocommunity package? maybe it'll resolve in the next package update.

Thanks for your help. Sorry if I hijacked StandingPadAnimations's issue. Hopefully they will find this conversation helpful as well.

running the borg command with ` 2>&1 | grep "^E" ` generates a tidy list of trouble makers. I'm glad it doesn't give up early. It would be nice if that showed up in the borgmatic output, but there's something weird about the synocommunity package? maybe it'll resolve in the next package update. Thanks for your help. Sorry if I hijacked StandingPadAnimations's issue. Hopefully they will find this conversation helpful as well.
Sign in to join this conversation.
No milestone
No project
No assignees
3 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
borgmatic-collective/borgmatic#1256
No description provided.