kubernetes/kops · error

found no matching assets for expr: %q

Error message

found no matching assets for expr: %q

What it means

AssetStore.FindMatch ran the regexp over every registered asset and got zero hits — the requested asset was never added to the store (wrong key in the spec, or the file is missing from the kops binary/image assets).

Source

Thrown at upup/pkg/fi/assetstore.go:125

	matches := make(map[string]Resource)

	klog.Infof("Matching assets for %q:", expr.String())
	for _, a := range a.assets {
		if expr.MatchString(a.AssetPath) {
			klog.Infof("    %s", a.AssetPath)
			matches[a.Key] = &assetResource{Asset: a}
		}
	}

	return matches
}

func (a *AssetStore) FindMatch(expr *regexp.Regexp) (name string, res Resource, err error) {
	matches := a.FindMatches(expr)

	switch len(matches) {
	case 0:
		return "", nil, fmt.Errorf("found no matching assets for expr: %q", expr.String())
	case 1:
		var n string
		var r Resource
		for k, v := range matches {
			klog.Infof("Found single matching asset for expr %q: %q", expr.String(), k)
			n = k
			r = v
		}
		return n, r, nil
	default:
		return "", nil, fmt.Errorf("found multiple matching assets for expr: %q", expr.String())
	}
}

func (a *AssetStore) Find(key string, assetPath string) (Resource, error) {
	var matches []*asset
	for _, asset := range a.assets {
		if asset.Key != key {

View on GitHub (pinned to 4c8573c808)

Solutions

  1. Check the asset expression/key against the files actually bundled with your kops build
  2. Rebuild or reinstall kOps so the expected asset files are embedded
  3. Fix the referencing spec field so it names an asset that exists
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at upup/pkg/fi/assetstore.go:125 when the library encounters an invalid state.

Common situations: See trigger scenarios.


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