Here is the log result from running restic snapshots -r sftp:...
as above:
2025/03/26 20:24:32 restic/main.go:137 main.main 1 main []string{"restic", "snapshots", "-r", "sftp:francis@truenas.home:/mnt/main/backups/restic-1", "--password-file", "/home/francis/.config/resticprofile/password.txt"}
2025/03/26 20:24:32 restic/main.go:138 main.main 1 restic 0.17.3 compiled with go1.23.3 on linux/amd64
2025/03/26 20:24:32 restic/global.go:583 main.innerOpen 1 parsing location sftp:francis@truenas.home:/mnt/main/backups/restic-1
2025/03/26 20:24:32 restic/global.go:578 main.parseConfig 1 opening sftp repository at &sftp.Config{User:"francis", Host:"truenas.home", Port:"", Path:"/mnt/main/backups/restic-1", Layout:"", Command:"", Args:"", Connections:0x5}
2025/03/26 20:24:32 sftp/sftp.go:143 sftp.Open 1 open backend with config sftp.Config{User:"francis", Host:"truenas.home", Port:"", Path:"/mnt/main/backups/restic-1", Layout:"", Command:"", Args:"", Connections:0x5}
2025/03/26 20:24:32 sftp/sftp.go:61 sftp.startClient 1 start client ssh [truenas.home -l francis -s sftp]
2025/03/26 20:24:33 layout/layout.go:147 layout.ParseLayout 1 parse layout string "" for backend at /mnt/main/backups/restic-1
2025/03/26 20:24:33 layout/layout.go:103 layout.DetectLayout 1 detect layout at /mnt/main/backups/restic-1
2025/03/26 20:24:33 layout/layout.go:121 layout.DetectLayout 1 found default layout at /mnt/main/backups/restic-1
2025/03/26 20:24:33 layout/layout.go:175 layout.ParseLayout 1 layout detected: <DefaultLayout>
2025/03/26 20:24:33 sftp/sftp.go:161 sftp.open 1 layout: <DefaultLayout>
2025/03/26 20:24:33 sftp/sftp.go:165 sftp.open 1 using (0o660 file, 0o770 dir) permissions
2025/03/26 20:24:33 logger/log.go:52 logger.(*Backend).Stat 1 Stat(<config/>)
2025/03/26 20:24:33 sema/semaphore.go:27 sema.semaphore.GetToken 1 acquired token
2025/03/26 20:24:33 logger/log.go:54 logger.(*Backend).Stat 1 stat err <nil>
2025/03/26 20:24:33 logger/log.go:24 logger.(*Backend).IsNotExist 1 IsNotExist(<nil>, <nil>, false)
2025/03/26 20:24:33 index/index.go:375 index.(*Index).Finalize 1 finalizing index
2025/03/26 20:24:33 logger/log.go:59 logger.(*Backend).List 1 List(key)
2025/03/26 20:24:33 sftp/sftp.go:531 sftp.(*SFTP).List 1 send 0695ac45ef6ced0403c86b6acf5898d11da4155065863e984d8f57d81e6b9b37
2025/03/26 20:24:33 repository/key.go:145 repository.SearchKey.func1 1 trying key "0695ac45ef6ced0403c86b6acf5898d11da4155065863e984d8f57d81e6b9b37"
2025/03/26 20:24:33 logger/log.go:45 logger.(*Backend).Load 1 Load(<key/0695ac45ef>, length 0, offset 0)
2025/03/26 20:24:33 sema/semaphore.go:27 sema.semaphore.GetToken 1 acquired token
2025/03/26 20:24:33 logger/log.go:47 logger.(*Backend).Load 1 load err <nil>
2025/03/26 20:24:34 repository/key.go:158 repository.SearchKey.func1 1 successfully opened key 0695ac45ef6ced0403c86b6acf5898d11da4155065863e984d8f57d81e6b9b37
2025/03/26 20:24:34 logger/log.go:61 logger.(*Backend).List 1 list err context canceled
2025/03/26 20:24:34 repository/repository.go:163 repository.(*Repository).LoadUnpacked 1 load config with id 0000000000000000000000000000000000000000000000000000000000000000
2025/03/26 20:24:34 logger/log.go:45 logger.(*Backend).Load 1 Load(<config/0000000000>, length 0, offset 0)
2025/03/26 20:24:34 sema/semaphore.go:27 sema.semaphore.GetToken 1 acquired token
2025/03/26 20:24:34 logger/log.go:47 logger.(*Backend).Load 1 load err <nil>
2025/03/26 20:24:34 cache/cache.go:99 cache.New 1 using cache dir /home/francis/.cache/restic/9ce4e894892d99952bab6055d8a41a5c29a3328f57b5384ecbac0cedef4314e6
2025/03/26 20:24:34 repository/repository.go:151 repository.(*Repository).UseCache 1 using cache
2025/03/26 20:24:34 cache/cache.go:223 cache.OlderThan 1 0 old cache dirs found
2025/03/26 20:24:34 logger/log.go:59 logger.(*Backend).List 51 List(lock)
2025/03/26 20:24:34 sftp/sftp.go:531 sftp.(*SFTP).List 51 send 4f3cd333c59a228a1ada45f12adf7f08dccaa485c6c8fc21343ca1b7da80660b-restic-temp-4044dc731b055a781e0081907e34c8d4
2025/03/26 20:24:34 repository/repository.go:824 repository.(*Repository).List.func1 51 unable to parse 4f3cd333c59a228a1ada45f12adf7f08dccaa485c6c8fc21343ca1b7da80660b-restic-temp-4044dc731b055a781e0081907e34c8d4 as an ID
2025/03/26 20:24:34 sftp/sftp.go:531 sftp.(*SFTP).List 51 send 38d10377329c42525ab31666a320931bd20f02f72d7d0ddfe763f8a7ec21f013-restic-temp-aa90150a4510a4c1f71f6706d6959c55
2025/03/26 20:24:34 repository/repository.go:824 repository.(*Repository).List.func1 51 unable to parse 38d10377329c42525ab31666a320931bd20f02f72d7d0ddfe763f8a7ec21f013-restic-temp-aa90150a4510a4c1f71f6706d6959c55 as an ID
2025/03/26 20:24:34 sftp/sftp.go:531 sftp.(*SFTP).List 51 send ad7ff6c490eb26e1c4ebc0a38518c25f6ad54f5c4ba91761f8db1089d79490ae-restic-temp-7bb1fc56ec40e7c4bb92229f14bcaed9
2025/03/26 20:24:34 repository/repository.go:824 repository.(*Repository).List.func1 51 unable to parse ad7ff6c490eb26e1c4ebc0a38518c25f6ad54f5c4ba91761f8db1089d79490ae-restic-temp-7bb1fc56ec40e7c4bb92229f14bcaed9 as an ID
2025/03/26 20:24:34 sftp/sftp.go:531 sftp.(*SFTP).List 51 send e6fb028c8376142ff377fb5e1b8fee90267746e81da5dd6ebb959efc7fb7654e-restic-temp-88098707c19bfe77f25bce23c70c7c7c
2025/03/26 20:24:34 repository/repository.go:824 repository.(*Repository).List.func1 51 unable to parse e6fb028c8376142ff377fb5e1b8fee90267746e81da5dd6ebb959efc7fb7654e-restic-temp-88098707c19bfe77f25bce23c70c7c7c as an ID
2025/03/26 20:24:34 sftp/sftp.go:531 sftp.(*SFTP).List 51 send a58e532d987f31a2eada5a1046bf3926e1b39e9558a461f1ba54e70d3d29b730-restic-temp-ac15a8d8cda906a7556c7c6926844804
2025/03/26 20:24:34 repository/repository.go:824 repository.(*Repository).List.func1 51 unable to parse a58e532d987f31a2eada5a1046bf3926e1b39e9558a461f1ba54e70d3d29b730-restic-temp-ac15a8d8cda906a7556c7c6926844804 as an ID
2025/03/26 20:24:34 sftp/sftp.go:531 sftp.(*SFTP).List 51 send 55e16be028fe0b444fa207056ec139c7c3cd96e67b1b53de306567dce44c9f45-restic-temp-ce18b2a94418da8c0dfedbfc4b9029ce
2025/03/26 20:24:34 repository/repository.go:824 repository.(*Repository).List.func1 51 unable to parse 55e16be028fe0b444fa207056ec139c7c3cd96e67b1b53de306567dce44c9f45-restic-temp-ce18b2a94418da8c0dfedbfc4b9029ce as an ID
2025/03/26 20:24:34 sftp/sftp.go:531 sftp.(*SFTP).List 51 send a301fda6c7c0aeb6ec08a138430b0deeb489d3f047566a7bb17ef94377e0b81a-restic-temp-3f9096a4934d8677e8f8f1e4310c3508
2025/03/26 20:24:34 repository/repository.go:824 repository.(*Repository).List.func1 51 unable to parse a301fda6c7c0aeb6ec08a138430b0deeb489d3f047566a7bb17ef94377e0b81a-restic-temp-3f9096a4934d8677e8f8f1e4310c3508 as an ID
2025/03/26 20:24:34 logger/log.go:61 logger.(*Backend).List 51 list err <nil>
2025/03/26 20:24:34 restic/json.go:25 restic.SaveJSONUnpacked 1 save new blob lock
2025/03/26 20:24:34 logger/log.go:30 logger.(*Backend).Save 1 Save(<lock/8cad350591>, 160)
2025/03/26 20:24:34 logger/log.go:32 logger.(*Backend).Save 1 save err OpenFile: permission denied
2025/03/26 20:24:34 retry/backend_retry.go:170 retry.(*Backend).Save.func1 1 Save(<lock/8cad350591>) failed with error: OpenFile: permission denied
2025/03/26 20:24:34 restic/global.go:254 main.Warnf 1 Save(<lock/8cad350591>) failed: OpenFile: permission denied
2025/03/26 20:24:34 repository/repository.go:479 repository.(*Repository).SaveUnpacked 1 error saving blob <lock/8cad350591>: OpenFile: permission denied
2025/03/26 20:24:34 restic/cleanup.go:39 main.Exit 1 exiting with status code 1
I don’t immediately see much in there except the same Permission Denied error. I’m not sure if these multiple “unable to parse” errors are meaningful?