Kopia crashes when SFTP repository becomes unreachable

Hello,

I’m running Kopia with docker on ARM64 with a remote SFTP repository hosted in another residential setting through a Gluetun OpenVPN connection.

Sometimes (every couple of days), I find my Kopia container running, but the UI unreachable. The container logs show that the VPN connection dropped, and after a some retries, kopia simply crashes and never attempts to recover.

Full Logs

Server will allow connections from users whose accounts are stored in the repository.
User accounts can be added using ‘kopia server user add’.

SERVER ADDRESS: http://[::]:51515
Open the address above in a web browser to use the UI.
Running quick maintenance…
Compacting an eligible uncompacted epoch…
Advancing epoch markers…
Finished quick maintenance.
connection closed: unrecognized error when opening SFTP file backups/XXXX/kopia.repository.f: connection lost, will retry
error closing active connection: error closing SFTP client: EOF
connection failed: error establishing connecting: unable to dial [REMOTE_IP:22]: &ssh.ClientConfig{Config:ssh.Config{Rand:io.Reader(nil), RekeyThreshold:0x0, KeyExchanges:string(nil), Ciphers:string(nil), MACs:string(nil)}, User:“XXXX-backup-agent”, Auth:ssh.AuthMethod{(ssh.passwordCallback)(0x110a6d0)}, HostKeyCallback:(ssh.HostKeyCallback)(0x1107350), BannerCallback:(ssh.BannerCallback)(nil), ClientVersion:“”, HostKeyAlgorithms:string(nil), Timeout:0}: dial tcp REMOTE_IP:22: connect: network is unreachable, will retry
connection failed: error establishing connecting: unable to dial [REMOTE_IP:22]: &ssh.ClientConfig{Config:ssh.Config{Rand:io.Reader(nil), RekeyThreshold:0x0, KeyExchanges:string(nil), Ciphers:string(nil), MACs:string(nil)}, User:“XXXX-backup-agent”,

Many more attempts

Auth:ssh.AuthMethod{(ssh.passwordCallback)(0x110a6d0)}, HostKeyCallback:(ssh.HostKeyCallback)(0x1107350), BannerCallback:(ssh.BannerCallback)(nil), ClientVersion:“”, HostKeyAlgorithms:string(nil), Timeout:0}: dial tcp REMOTE_IP:22: connect: network is unreachable, will retry
connection failed: error establishing connecting: unable to dial [REMOTE_IP:22]: &ssh.ClientConfig{Config:ssh.Config{Rand:io.Reader(nil), RekeyThreshold:0x0, KeyExchanges:string(nil), Ciphers:string(nil), MACs:string(nil)}, User:“XXXX-backup-agent”, Auth:ssh.AuthMethod{(ssh.passwordCallback)(0x110a6d0)}, HostKeyCallback:(ssh.HostKeyCallback)(0x1107350), BannerCallback:(ssh.BannerCallback)(nil), ClientVersion:“”, HostKeyAlgorithms:string(nil), Timeout:0}: dial tcp REMOTE_IP:22: connect: network is unreachable, will retry
connection failed: error establishing connecting: unable to dial [REMOTE_IP:22]: &ssh.ClientConfig{Config:ssh.Config{Rand:io.Reader(nil), RekeyThreshold:0x0, KeyExchanges:string(nil), Ciphers:string(nil), MACs:string(nil)}, User:“XXXX-backup-agent”, Auth:ssh.AuthMethod{(ssh.passwordCallback)(0x110a6d0)}, HostKeyCallback:(ssh.HostKeyCallback)(0x1107350), BannerCallback:(ssh.BannerCallback)(nil), ClientVersion:“”, HostKeyAlgorithms:string(nil), Timeout:0}: dial tcp REMOTE_IP:22: connect: network is unreachable, will retry
refresh error {“err”:“unable to refresh repository: error refreshing content index: mutable parameters: unable to read format blob: error getting kopia.repository blob: unable to complete GetBlob(kopia.repository,0,-1) despite 10 retries: unable to complete GetBlobFromPath despite 10 retries: error opening connection: error establishing connecting: unable to dial [REMOTE_IP:22]: &ssh.ClientConfig{Config:ssh.Config{Rand:io.Reader(nil), RekeyThreshold:0x0, KeyExchanges:string(nil), Ciphers:string(nil), MACs:string(nil)}, User:“XXXX-backup-agent”, Auth:ssh.AuthMethod{(ssh.passwordCallback)(0x110a6d0)}, HostKeyCallback:(ssh.HostKeyCallback)(0x1107350), BannerCallback:(ssh.BannerCallback)(nil), ClientVersion:“”, HostKeyAlgorithms:string(nil), Timeout:0}: dial tcp REMOTE_IP:22: connect: network is unreachable”,“errVerbose”:“dial tcp REMOTE_IP:22: connect: network is unreachable\nunable to dial [REMOTE_IP:22]: &ssh.ClientConfig{Config:ssh.Config{Rand:io.Reader(nil), RekeyThreshold:0x0, KeyExchanges:string(nil), Ciphers:string(nil), MACs:string(nil)}, User:“XXXX-backup-agent”, Auth:ssh.AuthMethod{(ssh.passwordCallback)(0x110a6d0)}, HostKeyCallback:(ssh.HostKeyCallback)(0x1107350), BannerCallback:(ssh.BannerCallback)(nil), ClientVersion:“”, HostKeyAlgorithms:string(nil), Timeout:0}\ngithub.com/kopia/kopia/repo/blob/sftp.getSFTPClient\n\tgithub.com/kopia/kopia/repo/blob/sftp/sftp_storage.go:525\ngithub.com/kopia/kopia/repo/blob/sftp.(*sftpImpl).NewConnection\n\tgithub.com/kopia/kopia/repo/blob/sftp/sftp_storage.go:77\ngithub.com/kopia/kopia/internal/connection.(*Reconnector).GetOrOpenConnection\n\tgithub.com/kopia/kopia/internal/connection/reconnector.go:47\ngithub.com/kopia/kopia/internal/connection.UsingConnection[…].func1\n\tgithub.com/kopia/kopia/internal/connection/reconnector.go:63\ngithub.com/kopia/kopia/internal/retry.internalRetry[…]\n\tgithub.com/kopia/kopia/internal/retry/retry.go:74\ngithub.com/kopia/kopia/internal/retry.WithExponentialBackoff[…]\n\tgithub.com/kopia/kopia/internal/retry/retry.go:31\ngithub.com/kopia/kopia/internal/connection.UsingConnection[…]\n\tgithub.com/kopia/kopia/internal/connection/reconnector.go:62\ngithub.com/kopia/kopia/internal/connection.(*Reconnector).UsingConnectionNoResult\n\tgithub.com/kopia/kopia/internal/connection/reconnector.go:89\ngithub.com/kopia/kopia/repo/blob/sftp.(*sftpImpl).GetBlobFromPath\n\tgithub.com/kopia/kopia/repo/blob/sftp/sftp_storage.go:125\ngithub.com/kopia/kopia/repo/blob/sharded.(*Storage).GetBlob\n\tgithub.com/kopia/kopia/repo/blob/sharded/sharded.go:55\ngithub.com/kopia/kopia/repo/blob/retrying.retryingStorage.GetBlob.func1\n\tgithub.com/kopia/kopia/repo/blob/retrying/retrying_storage.go:23\ngithub.com/kopia/kopia/internal/retry.WithExponentialBackoffNoValue.func1\n\tgithub.com/kopia/kopia/internal/retry/retry.go:97\ngithub.com/kopia/kopia/internal/retry.internalRetry[…]\n\tgithub.com/kopia/kopia/internal/retry/retry.go:74\ngithub.com/kopia/kopia/internal/retry.WithExponentialBackoff[…]\n\tgithub.com/kopia/kopia/internal/retry/retry.go:31\ngithub.com/kopia/kopia/internal/retry.WithExponentialBackoffNoValue\n\tgithub.com/kopia/kopia/internal/retry/retry.go:96\ngithub.com/kopia/kopia/repo/blob/retrying.retryingStorage.GetBlob\n\tgithub.com/kopia/kopia/repo/blob/retrying/retrying_storage.go:20\ngithub.com/kopia/kopia/repo/blob/storagemetrics.(*blobMetrics).GetBlob\n\tgithub.com/kopia/kopia/repo/blob/storagemetrics/storage_metrics.go:45\ngithub.com/kopia/kopia/repo/format.(*Manager).readAndCacheRepositoryBlobBytes\n\tgithub.com/kopia/kopia/repo/format/format_manager.go:100\ngithub.com/kopia/kopia/repo/format.(*Manager).refresh\n\tgithub.com/kopia/kopia/repo/format/format_manager.go:129\ngithub.com/kopia/kopia/repo/format.(*Manager).maybeRefreshNotLocked\n\tgithub.com/kopia/kopia/repo/format/format_manager.go:80\ngithub.com/kopia/kopia/repo/format.(*Manager).getOrRefreshFormat\n\tgithub.com/kopia/kopia/repo/format/format_manager.go:60\ngithub.com/kopia/kopia/repo/format.(*Manager).GetMutableParameters\n\tgithub.com/kopia/kopia/repo/format/format_manager.go:255\ngithub.com/kopia/kopia/repo/content.(*SharedManager).indexBlobManager\n\tgithub.com/kopia/kopia/repo/content/committed_read_manager.go:290\ngithub.com/kopia/kopia/repo/content.(*SharedManager).Refresh\n\tgithub.com/kopia/kopia/repo/content/content_manager_indexes.go:26\ngithub.com/kopia/kopia/repo.(*directRepository).Refresh\n\tgithub.com/kopia/kopia/repo/repository.go:385\ngithub.com/kopia/kopia/internal/server.(*Server).refreshLocked\n\tgithub.com/kopia/kopia/internal/server/server.go:456\ngithub.com/kopia/kopia/internal/server.(*Server).Refresh\n\tgithub.com/kopia/kopia/internal/server/server.go:441\nruntime.goexit\n\truntime/asm_arm64.s:1268\nerror establishing connecting\ngithub.com/kopia/kopia/internal/connection.(*Reconnector).GetOrOpenConnection\n\tgithub.com/kopia/kopia/internal/connection/reconnector.go:49\ngithub.com/kopia/kopia/internal/connection.UsingConnection[…].func1\n\tgithub.com/kopia/kopia/internal/connection/reconnector.go:63\ngithub.com/kopia/kopia/internal/retry.internalRetry[…]\n\tgithub.com/kopia/kopia/internal/retry/retry.go:74\ngithub.com/kopia/kopia/internal/retry.WithExponentialBackoff[…]\n\tgithub.com/kopia/kopia/internal/retry/retry.go:31\ngithub.com/kopia/kopia/internal/connection.UsingConnection[…]\n\tgithub.com/kopia/kopia/internal/connection/reconnector.go:62\ngithub.com/kopia/kopia/internal/connection.(*Reconnector).UsingConnectionNoResult\n\tgithub.com/kopia/kopia/internal/connection/reconnector.go:89\ngithub.com/kopia/kopia/repo/blob/sftp.(*sftpImpl).GetBlobFromPath\n\tgithub.com/kopia/kopia/repo/blob/sftp/sftp_storage.go:125\ngithub.com/kopia/kopia/repo/blob/sharded.(*Storage).GetBlob\n\tgithub.com/kopia/kopia/repo/blob/sharded/sharded.go:55\ngithub.com/kopia/kopia/repo/blob/retrying.retryingStorage.GetBlob.func1\n\tgithub.com/kopia/kopia/repo/blob/retrying/retrying_storage.go:23\ngithub.com/kopia/kopia/internal/retry.WithExponentialBackoffNoValue.func1\n\tgithub.com/kopia/kopia/internal/retry/retry.go:97\ngithub.com/kopia/kopia/internal/retry.internalRetry[…]\n\tgithub.com/kopia/kopia/internal/retry/retry.go:74\ngithub.com/kopia/kopia/internal/retry.WithExponentialBackoff[…]\n\tgithub.com/kopia/kopia/internal/retry/retry.go:31\ngithub.com/kopia/kopia/internal/retry.WithExponentialBackoffNoValue\n\tgithub.com/kopia/kopia/internal/retry/retry.go:96\ngithub.com/kopia/kopia/repo/blob/retrying.retryingStorage.GetBlob\n\tgithub.com/kopia/kopia/repo/blob/retrying/retrying_storage.go:20\ngithub.com/kopia/kopia/repo/blob/storagemetrics.(*blobMetrics).GetBlob\n\tgithub.com/kopia/kopia/repo/blob/storagemetrics/storage_metrics.go:45\ngithub.com/kopia/kopia/repo/format.(*Manager).readAndCacheRepositoryBlobBytes\n\tgithub.com/kopia/kopia/repo/format/format_manager.go:100\ngithub.com/kopia/kopia/repo/format.(*Manager).refresh\n\tgithub.com/kopia/kopia/repo/format/format_manager.go:129\ngithub.com/kopia/kopia/repo/format.(*Manager).maybeRefreshNotLocked\n\tgithub.com/kopia/kopia/repo/format/format_manager.go:80\ngithub.com/kopia/kopia/repo/format.(*Manager).getOrRefreshFormat\n\tgithub.com/kopia/kopia/repo/format/format_manager.go:60\ngithub.com/kopia/kopia/repo/format.(*Manager).GetMutableParameters\n\tgithub.com/kopia/kopia/repo/format/format_manager.go:255\ngithub.com/kopia/kopia/repo/content.(*SharedManager).indexBlobManager\n\tgithub.com/kopia/kopia/repo/content/committed_read_manager.go:290\ngithub.com/kopia/kopia/repo/content.(*SharedManager).Refresh\n\tgithub.com/kopia/kopia/repo/content/content_manager_indexes.go:26\ngithub.com/kopia/kopia/repo.(*directRepository).Refresh\n\tgithub.com/kopia/kopia/repo/repository.go:385\ngithub.com/kopia/kopia/internal/server.(*Server).refreshLocked\n\tgithub.com/kopia/kopia/internal/server/server.go:456\ngithub.com/kopia/kopia/internal/server.(*Server).Refresh\n\tgithub.com/kopia/kopia/internal/server/server.go:441\nruntime.goexit\n\truntime/asm_arm64.s:1268\nerror opening connection\ngithub.com/kopia/kopia/internal/connection.UsingConnection[…].func1\n\tgithub.com/kopia/kopia/internal/connection/reconnector.go:71\ngithub.com/kopia/kopia/internal/retry.internalRetry[…]\n\tgithub.com/kopia/kopia/internal/retry/retry.go:74\ngithub.com/kopia/kopia/internal/retry.WithExponentialBackoff[…]\n\tgithub.com/kopia/kopia/internal/retry/retry.go:31\ngithub.com/kopia/kopia/internal/connection.UsingConnection[…]\n\tgithub.com/kopia/kopia/internal/connection/reconnector.go:62\ngithub.com/kopia/kopia/internal/connection.(*Reconnector).UsingConnectionNoResult\n\tgithub.com/kopia/kopia/internal/connection/reconnector.go:89\ngithub.com/kopia/kopia/repo/blob/sftp.(*sftpImpl).GetBlobFromPath\n\tgithub.com/kopia/kopia/repo/blob/sftp/sftp_storage.go:125\ngithub.com/kopia/kopia/repo/blob/sharded.(*Storage).GetBlob\n\tgithub.com/kopia/kopia/repo/blob/sharded/sharded.go:55\ngithub.com/kopia/kopia/repo/blob/retrying.retryingStorage.GetBlob.func1\n\tgithub.com/kopia/kopia/repo/blob/retrying/retrying_storage.go:23\ngithub.com/kopia/kopia/internal/retry.WithExponentialBackoffNoValue.func1\n\tgithub.com/kopia/kopia/internal/retry/retry.go:97\ngithub.com/kopia/kopia/internal/retry.internalRetry[…]\n\tgithub.com/kopia/kopia/internal/retry/retry.go:74\ngithub.com/kopia/kopia/internal/retry.WithExponentialBackoff[…]\n\tgithub.com/kopia/kopia/internal/retry/retry.go:31\ngithub.com/kopia/kopia/internal/retry.WithExponentialBackoffNoValue\n\tgithub.com/kopia/kopia/internal/retry/retry.go:96\ngithub.com/kopia/kopia/repo/blob/retrying.retryingStorage.GetBlob\n\tgithub.com/kopia/kopia/repo/blob/retrying/retrying_storage.go:20\ngithub.com/kopia/kopia/repo/blob/storagemetrics.(*blobMetrics).GetBlob\n\tgithub.com/kopia/kopia/repo/blob/storagemetrics/storage_metrics.go:45\ngithub.com/kopia/kopia/repo/format.(*Manager).readAndCacheRepositoryBlobBytes\n\tgithub.com/kopia/kopia/repo/format/format_manager.go:100\ngithub.com/kopia/kopia/repo/format.(*Manager).refresh\n\tgithub.com/kopia/kopia/repo/format/format_manager.go:129\ngithub.com/kopia/kopia/repo/format.(*Manager).maybeRefreshNotLocked\n\tgithub.com/kopia/kopia/repo/format/format_manager.go:80\ngithub.com/kopia/kopia/repo/format.(*Manager).getOrRefreshFormat\n\tgithub.com/kopia/kopia/repo/format/format_manager.go:60\ngithub.com/kopia/kopia/repo/format.(*Manager).GetMutableParameters\n\tgithub.com/kopia/kopia/repo/format/format_manager.go:255\ngithub.com/kopia/kopia/repo/content.(*SharedManager).indexBlobManager\n\tgithub.com/kopia/kopia/repo/content/committed_read_manager.go:290\ngithub.com/kopia/kopia/repo/content.(*SharedManager).Refresh\n\tgithub.com/kopia/kopia/repo/content/content_manager_indexes.go:26\ngithub.com/kopia/kopia/repo.(*directRepository).Refresh\n\tgithub.com/kopia/kopia/repo/repository.go:385\ngithub.com/kopia/kopia/internal/server.(*Server).refreshLocked\n\tgithub.com/kopia/kopia/internal/server/server.go:456\ngithub.com/kopia/kopia/internal/server.(*Server).Refresh\n\tgithub.com/kopia/kopia/internal/server/server.go:441\nruntime.goexit\n\truntime/asm_arm64.s:1268\nunable to complete GetBlobFromPath despite 10 retries\ngithub.com/kopia/kopia/internal/retry.internalRetry[…]\n\tgithub.com/kopia/kopia/internal/retry/retry.go:90\ngithub.com/kopia/kopia/internal/retry.WithExponentialBackoff[…]\n\tgithub.com/kopia/kopia/internal/retry/retry.go:31\ngithub.com/kopia/kopia/internal/connection.UsingConnection[…]\n\tgithub.com/kopia/kopia/internal/connection/reconnector.go:62\ngithub.com/kopia/kopia/internal/connection.(*Reconnector).UsingConnectionNoResult\n\tgithub.com/kopia/kopia/internal/connection/reconnector.go:89\ngithub.com/kopia/kopia/repo/blob/sftp.(*sftpImpl).GetBlobFromPath\n\tgithub.com/kopia/kopia/repo/blob/sftp/sftp_storage.go:125\ngithub.com/kopia/kopia/repo/blob/sharded.(*Storage).GetBlob\n\tgithub.com/kopia/kopia/repo/blob/sharded/sharded.go:55\ngithub.com/kopia/kopia/repo/blob/retrying.retryingStorage.GetBlob.func1\n\tgithub.com/kopia/kopia/repo/blob/retrying/retrying_storage.go:23\ngithub.com/kopia/kopia/internal/retry.WithExponentialBackoffNoValue.func1\n\tgithub.com/kopia/kopia/internal/retry/retry.go:97\ngithub.com/kopia/kopia/internal/retry.internalRetry[…]\n\tgithub.com/kopia/kopia/internal/retry/retry.go:74\ngithub.com/kopia/kopia/internal/retry.WithExponentialBackoff[…]\n\tgithub.com/kopia/kopia/internal/retry/retry.go:31\ngithub.com/kopia/kopia/internal/retry.WithExponentialBackoffNoValue\n\tgithub.com/kopia/kopia/internal/retry/retry.go:96\ngithub.com/kopia/kopia/repo/blob/retrying.retryingStorage.GetBlob\n\tgithub.com/kopia/kopia/repo/blob/retrying/retrying_storage.go:20\ngithub.com/kopia/kopia/repo/blob/storagemetrics.(*blobMetrics).GetBlob\n\tgithub.com/kopia/kopia/repo/blob/storagemetrics/storage_metrics.go:45\ngithub.com/kopia/kopia/repo/format.(*Manager).readAndCacheRepositoryBlobBytes\n\tgithub.com/kopia/kopia/repo/format/format_manager.go:100\ngithub.com/kopia/kopia/repo/format.(*Manager).refresh\n\tgithub.com/kopia/kopia/repo/format/format_manager.go:129\ngithub.com/kopia/kopia/repo/format.(*Manager).maybeRefreshNotLocked\n\tgithub.com/kopia/kopia/repo/format/format_manager.go:80\ngithub.com/kopia/kopia/repo/format.(*Manager).getOrRefreshFormat\n\tgithub.com/kopia/kopia/repo/format/format_manager.go:60\ngithub.com/kopia/kopia/repo/format.(*Manager).GetMutableParameters\n\tgithub.com/kopia/kopia/repo/format/format_manager.go:255\ngithub.com/kopia/kopia/repo/content.(*SharedManager).indexBlobManager\n\tgithub.com/kopia/kopia/repo/content/committed_read_manager.go:290\ngithub.com/kopia/kopia/repo/content.(*SharedManager).Refresh\n\tgithub.com/kopia/kopia/repo/content/content_manager_indexes.go:26\ngithub.com/kopia/kopia/repo.(*directRepository).Refresh\n\tgithub.com/kopia/kopia/repo/repository.go:385\ngithub.com/kopia/kopia/internal/server.(*Server).refreshLocked\n\tgithub.com/kopia/kopia/internal/server/server.go:456\ngithub.com/kopia/kopia/internal/server.(*Server).Refresh\n\tgithub.com/kopia/kopia/internal/server/server.go:441\nruntime.goexit\n\truntime/asm_arm64.s:1268\nunable to complete GetBlob(kopia.repository,0,-1) despite 10 retries\ngithub.com/kopia/kopia/internal/retry.internalRetry[…]\n\tgithub.com/kopia/kopia/internal/retry/retry.go:90\ngithub.com/kopia/kopia/internal/retry.WithExponentialBackoff[…]\n\tgithub.com/kopia/kopia/internal/retry/retry.go:31\ngithub.com/kopia/kopia/internal/retry.WithExponentialBackoffNoValue\n\tgithub.com/kopia/kopia/internal/retry/retry.go:96\ngithub.com/kopia/kopia/repo/blob/retrying.retryingStorage.GetBlob\n\tgithub.com/kopia/kopia/repo/blob/retrying/retrying_storage.go:20\ngithub.com/kopia/kopia/repo/blob/storagemetrics.(*blobMetrics).GetBlob\n\tgithub.com/kopia/kopia/repo/blob/storagemetrics/storage_metrics.go:45\ngithub.com/kopia/kopia/repo/format.(*Manager).readAndCacheRepositoryBlobBytes\n\tgithub.com/kopia/kopia/repo/format/format_manager.go:100\ngithub.com/kopia/kopia/repo/format.(*Manager).refresh\n\tgithub.com/kopia/kopia/repo/format/format_manager.go:129\ngithub.com/kopia/kopia/repo/format.(*Manager).maybeRefreshNotLocked\n\tgithub.com/kopia/kopia/repo/format/format_manager.go:80\ngithub.com/kopia/kopia/repo/format.(*Manager).getOrRefreshFormat\n\tgithub.com/kopia/kopia/repo/format/format_manager.go:60\ngithub.com/kopia/kopia/repo/format.(*Manager).GetMutableParameters\n\tgithub.com/kopia/kopia/repo/format/format_manager.go:255\ngithub.com/kopia/kopia/repo/content.(*SharedManager).indexBlobManager\n\tgithub.com/kopia/kopia/repo/content/committed_read_manager.go:290\ngithub.com/kopia/kopia/repo/content.(*SharedManager).Refresh\n\tgithub.com/kopia/kopia/repo/content/content_manager_indexes.go:26\ngithub.com/kopia/kopia/repo.(*directRepository).Refresh\n\tgithub.com/kopia/kopia/repo/repository.go:385\ngithub.com/kopia/kopia/internal/server.(*Server).refreshLocked\n\tgithub.com/kopia/kopia/internal/server/server.go:456\ngithub.com/kopia/kopia/internal/server.(*Server).Refresh\n\tgithub.com/kopia/kopia/internal/server/server.go:441\nruntime.goexit\n\truntime/asm_arm64.s:1268\nerror getting kopia.repository blob\ngithub.com/kopia/kopia/repo/format.(*Manager).readAndCacheRepositoryBlobBytes\n\tgithub.com/kopia/kopia/repo/format/format_manager.go:101\ngithub.com/kopia/kopia/repo/format.(*Manager).refresh\n\tgithub.com/kopia/kopia/repo/format/format_manager.go:129\ngithub.com/kopia/kopia/repo/format.(*Manager).maybeRefreshNotLocked\n\tgithub.com/kopia/kopia/repo/format/format_manager.go:80\ngithub.com/kopia/kopia/repo/format.(*Manager).getOrRefreshFormat\n\tgithub.com/kopia/kopia/repo/format/format_manager.go:60\ngithub.com/kopia/kopia/repo/format.(*Manager).GetMutableParameters\n\tgithub.com/kopia/kopia/repo/format/format_manager.go:255\ngithub.com/kopia/kopia/repo/content.(*SharedManager).indexBlobManager\n\tgithub.com/kopia/kopia/repo/content/committed_read_manager.go:290\ngithub.com/kopia/kopia/repo/content.(*SharedManager).Refresh\n\tgithub.com/kopia/kopia/repo/content/content_manager_indexes.go:26\ngithub.com/kopia/kopia/repo.(*directRepository).Refresh\n\tgithub.com/kopia/kopia/repo/repository.go:385\ngithub.com/kopia/kopia/internal/server.(*Server).refreshLocked\n\tgithub.com/kopia/kopia/internal/server/server.go:456\ngithub.com/kopia/kopia/internal/server.(*Server).Refresh\n\tgithub.com/kopia/kopia/internal/server/server.go:441\nruntime.goexit\n\truntime/asm_arm64.s:1268\nunable to read format blob\ngithub.com/kopia/kopia/repo/format.(*Manager).refresh\n\tgithub.com/kopia/kopia/repo/format/format_manager.go:131\ngithub.com/kopia/kopia/repo/format.(*Manager).maybeRefreshNotLocked\n\tgithub.com/kopia/kopia/repo/format/format_manager.go:80\ngithub.com/kopia/kopia/repo/format.(*Manager).getOrRefreshFormat\n\tgithub.com/kopia/kopia/repo/format/format_manager.go:60\ngithub.com/kopia/kopia/repo/format.(*Manager).GetMutableParameters\n\tgithub.com/kopia/kopia/repo/format/format_manager.go:255\ngithub.com/kopia/kopia/repo/content.(*SharedManager).indexBlobManager\n\tgithub.com/kopia/kopia/repo/content/committed_read_manager.go:290\ngithub.com/kopia/kopia/repo/content.(*SharedManager).Refresh\n\tgithub.com/kopia/kopia/repo/content/content_manager_indexes.go:26\ngithub.com/kopia/kopia/repo.(*directRepository).Refresh\n\tgithub.com/kopia/kopia/repo/repository.go:385\ngithub.com/kopia/kopia/internal/server.(*Server).refreshLocked\n\tgithub.com/kopia/kopia/internal/server/server.go:456\ngithub.com/kopia/kopia/internal/server.(*Server).Refresh\n\tgithub.com/kopia/kopia/internal/server/server.go:441\nruntime.goexit\n\truntime/asm_arm64.s:1268\nmutable parameters\ngithub.com/kopia/kopia/repo/content.(*SharedManager).indexBlobManager\n\tgithub.com/kopia/kopia/repo/content/committed_read_manager.go:292\ngithub.com/kopia/kopia/repo/content.(*SharedManager).Refresh\n\tgithub.com/kopia/kopia/repo/content/content_manager_indexes.go:26\ngithub.com/kopia/kopia/repo.(*directRepository).Refresh\n\tgithub.com/kopia/kopia/repo/repository.go:385\ngithub.com/kopia/kopia/internal/server.(*Server).refreshLocked\n\tgithub.com/kopia/kopia/internal/server/server.go:456\ngithub.com/kopia/kopia/internal/server.(*Server).Refresh\n\tgithub.com/kopia/kopia/internal/server/server.go:441\nruntime.goexit\n\truntime/asm_arm64.s:1268\nerror refreshing content index\ngithub.com/kopia/kopia/repo.(*directRepository).Refresh\n\tgithub.com/kopia/kopia/repo/repository.go:385\ngithub.com/kopia/kopia/internal/server.(*Server).refreshLocked\n\tgithub.com/kopia/kopia/internal/server/server.go:456\ngithub.com/kopia/kopia/internal/server.(*Server).Refresh\n\tgithub.com/kopia/kopia/internal/server/server.go:441\nruntime.goexit\n\truntime/asm_arm64.s:1268\nunable to refresh repository\ngithub.com/kopia/kopia/internal/server.(*Server).refreshLocked\n\tgithub.com/kopia/kopia/internal/server/server.go:457\ngithub.com/kopia/kopia/internal/server.(*Server).Refresh\n\tgithub.com/kopia/kopia/internal/server/server.go:441\nruntime.goexit\n\truntime/asm_arm64.s:1268”}

Is this intended behavior? Would it be possible to increase the retries or increase retry intervals?

I’m just running daily backups, and it’s not great to have kopia broken because it lost connection sometime in the last 24hours.

Thanks for the help!