goharbor/harbor · error

lack digest of candidate for %s/%s

Error message

lack digest of candidate for %s/%s

What it means

Error "lack digest of candidate for %s/%s" thrown in goharbor/harbor.

Source

Thrown at src/pkg/retention/dep/client.go:116

	internalCoreURL string
	coreClient      core.Client
}

// GetCandidates gets the tag candidates under the repository
func (bc *basicClient) GetCandidates(repository *selector.Repository) ([]*selector.Candidate, error) {
	if repository == nil {
		return nil, errors.New("repository is nil")
	}
	candidates := make([]*selector.Candidate, 0)
	switch repository.Kind {
	case selector.Image:
		artifacts, err := bc.coreClient.ListAllArtifacts(repository.Namespace, repository.Name)
		if err != nil {
			return nil, err
		}
		for _, art := range artifacts {
			if art.Digest == "" {
				return nil, fmt.Errorf("lack digest of candidate for %s/%s", repository.Namespace, repository.Name)
			}
			labels := make([]string, 0)
			for _, label := range art.Labels {
				labels = append(labels, label.Name)
			}
			tags := make([]string, 0)
			lastPulledTime := art.PullTime
			lastPushedTime := art.PushTime
			for _, t := range art.Tags {
				tags = append(tags, t.Name)
				if t.PullTime.After(lastPulledTime) {
					lastPulledTime = t.PullTime
				}
				if t.PushTime.After(lastPushedTime) {
					lastPushedTime = t.PushTime
				}
			}
			candidate := &selector.Candidate{

View on GitHub (pinned to 7b2fd08cc5)

When it happens

Trigger: Thrown at src/pkg/retention/dep/client.go:116 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of goharbor/harbor@7b2fd08cc5 (2026-08-16). Data as JSON: /api/errors/00a8286f328b6613. Report an issue: GitHub.