diff --git a/internal/bridge/bridge.go b/internal/bridge/bridge.go index a570d2de..7e1f6387 100644 --- a/internal/bridge/bridge.go +++ b/internal/bridge/bridge.go @@ -50,6 +50,7 @@ import ( "github.com/ProtonMail/proton-bridge/v3/internal/services/syncservice" "github.com/ProtonMail/proton-bridge/v3/internal/telemetry" "github.com/ProtonMail/proton-bridge/v3/internal/unleash" + "github.com/ProtonMail/proton-bridge/v3/internal/updater" "github.com/ProtonMail/proton-bridge/v3/internal/user" "github.com/ProtonMail/proton-bridge/v3/internal/vault" "github.com/ProtonMail/proton-bridge/v3/pkg/keychain" @@ -439,6 +440,15 @@ func (bridge *Bridge) init(tlsReporter TLSReporter) error { version, err := bridge.updater.GetVersionInfo(ctx, bridge.api, bridge.vault.GetUpdateChannel()) if err != nil { bridge.publish(events.UpdateCheckFailed{Error: err}) + if errors.Is(err, updater.ErrVersionFileDownloadOrVerify) { + logPkg.WithError(err).Error("Cannot download or verify the version file") + if reporterErr := bridge.reporter.ReportMessageWithContext( + "Cannot download or verify the version file", + reporter.Context{"error": err}, + ); reporterErr != nil { + logPkg.WithError(reporterErr).Error("Failed to report version file check error") + } + } } else { bridge.handleUpdate(version) } diff --git a/internal/updater/updater.go b/internal/updater/updater.go index 68d19ec6..14216c3e 100644 --- a/internal/updater/updater.go +++ b/internal/updater/updater.go @@ -32,9 +32,10 @@ import ( ) var ( - ErrDownloadVerify = errors.New("failed to download or verify the update") - ErrInstall = errors.New("failed to install the update") - ErrUpdateAlreadyInstalled = errors.New("update is already installed") + ErrDownloadVerify = errors.New("failed to download or verify the update") + ErrInstall = errors.New("failed to install the update") + ErrUpdateAlreadyInstalled = errors.New("update is already installed") + ErrVersionFileDownloadOrVerify = errors.New("failed to download or verify the version file") ) type Downloader interface { @@ -72,7 +73,7 @@ func (u *Updater) GetVersionInfo(ctx context.Context, downloader Downloader, cha u.getVersionFileURL()+".sig", ) if err != nil { - return VersionInfo{}, err + return VersionInfo{}, fmt.Errorf("%w: %w", ErrVersionFileDownloadOrVerify, err) } var versionMap VersionMap