portainer/portainer · error

unable to determine restored database version. err: %w

Error message

unable to determine restored database version. err: %w

What it means

Error "unable to determine restored database version. err: %w" thrown in portainer/portainer.

Source

Thrown at api/datastore/backup.go:77

func (store *Store) RestoreFromFile(backupFilename string) error {
	if err := store.Close(); err != nil {
		return err
	}

	if err := store.fileService.Copy(backupFilename, store.connection.GetDatabaseFilePath(), true); err != nil {
		return fmt.Errorf("unable to restore backup file %q. err: %w", backupFilename, err)
	}

	log.Info().Str("from", backupFilename).Str("to", store.connection.GetDatabaseFilePath()).Msgf("database restored")

	if _, err := store.Open(); err != nil {
		return fmt.Errorf("unable to determine version of restored portainer backup file: %w", err)
	}

	// determine the db version
	version, err := store.VersionService.Version()
	if err != nil {
		return fmt.Errorf("unable to determine restored database version. err: %w", err)
	}

	editionLabel := portainer.SoftwareEdition(version.Edition).GetEditionLabel()
	log.Info().Msgf("Restored database version: Portainer %s %s", editionLabel, version.SchemaVersion)
	return nil
}

func (store *Store) createBackupPath() error {
	backupDir := filesystem.JoinPaths(store.connection.GetStorePath(), "backups")
	if exists, _ := store.fileService.FileExists(backupDir); !exists {
		if err := os.MkdirAll(backupDir, 0o700); err != nil {
			return fmt.Errorf("unable to create backup folder: %w", err)
		}
	}

	return nil
}

View on GitHub (pinned to 17e74456ff)

When it happens

Trigger: Thrown at api/datastore/backup.go:77 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of portainer/portainer@17e74456ff (2026-08-26). Data as JSON: /api/errors/2184edd31f92f7f2. Report an issue: GitHub.