kubernetes/kops · info

error hashing manifest location: %v

Error message

error hashing manifest location: %v

What it means

Same hashing step as error 36 but for the manifest location URL: ParseAddons hashes the location string to build the addon name 'manifest-<hash[:12]>'. The wrapped error from utils.HashString indicates an essentially impossible internal failure.

Source

Thrown at channels/pkg/channels/addons.go:72

	}

	apiObject := &api.Addons{}
	if len(objects) == 0 {
		// No objects (empty, whitespace, or comment-only content): nothing to apply.
	} else if gvk := objects[0].GroupVersionKind(); gvk.Kind == "Addons" && gvk.Group == "" && gvk.Version == "" {
		// Reuse the document already parsed by LoadObjectsFrom instead of parsing it again.
		if err := objects[0].Reparse(apiObject); err != nil {
			return nil, fmt.Errorf("error parsing addons: %v", err)
		}
	} else {
		manifest := location.String()
		manifestHash, err := utils.HashString(configString)
		if err != nil {
			return nil, fmt.Errorf("error hashing manifest: %v", err)
		}
		manifestLocationHash, err := utils.HashString(manifest)
		if err != nil {
			return nil, fmt.Errorf("error hashing manifest location: %v", err)
		}
		addonName := "manifest-" + manifestLocationHash[:12]
		addonSpec := &api.AddonSpec{
			Name:         &addonName,
			Manifest:     &manifest,
			ManifestHash: manifestHash,
		}

		apiObject.Kind = "Addons"
		apiObject.ObjectMeta.Name = addonName
		apiObject.Spec.Addons = []*api.AddonSpec{addonSpec}
	}

	return &Addons{ChannelName: name, ChannelLocation: *location, APIObject: apiObject}, nil
}

func (a *Addons) GetCurrent(kubernetesVersion semver.Version) (*AddonMenu, error) {
	all, err := a.wrapInAddons()

View on GitHub (pinned to 4c8573c808)

Solutions

  1. Retry the operation.
  2. Rebuild/redeploy the binary.
  3. File an upstream issue if reproducible, including the manifest location string.
Defensive patterns

Strategy: fallback

Try / catch

addons, err := channels.ParseAddons(name, location, data)
if err != nil {
	if strings.Contains(err.Error(), "error hashing manifest location") {
		retryWithBackoff(2, func() error { _, err = channels.ParseAddons(name, location, data); return err })
	}
	return err
}

Prevention

When it happens

Trigger: LoadAddons -> ParseAddons else-branch with a non-Addons manifest where utils.HashString(manifest) fails. No realistic input causes this; it is defensive error handling.

Common situations: Not seen in real deployments; only plausible with memory corruption or OOM conditions.

Related errors


AI-assisted analysis of kubernetes/kops@4c8573c808 (2026-09-05). Data as JSON: /api/errors/a24f2df548d807b3. Report an issue: GitHub.