kopia/kopia · error

invalid override , must be prefix=n1,..,nM

Error message

invalid override %q, must be prefix=n1,..,nM

What it means

Flag validation in applyParameterChangesFromFlags: an --override value lacked the required '=' separator splitting prefix from shard spec ('prefix=n1,..,nM'), so it cannot be parsed into an override rule; the malformed value is quoted.

Solutions

  1. Use the 'prefix=n1,n2,...' form, e.g. --override ab=2,2.
  2. Provide each override as a separate --override flag.
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at cli/command_blob_shards_modify.go:114 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of kopia/kopia@82495e54b5 (2026-09-07). Data as JSON: /api/errors/10f67f43cebff862. Report an issue: GitHub.

Appendix: source

Thrown at cli/command_blob_shards_modify.go:114

func (c *commandBlobShardsModify) applyParameterChangesFromFlags(p *sharded.Parameters) error {
	if c.defaultShardSpec != "" {
		v, err := parseShardSpec(c.defaultShardSpec)
		if err != nil {
			return errors.New("invalid --default-shards")
		}

		p.DefaultShards = v
	}

	for _, ov := range c.removeOverrides {
		p.Overrides = prefixAndShardsWithout(p.Overrides, blob.ID(ov))
	}

	for _, ov := range c.overrideSpecs {
		parts := strings.Split(ov, "=")
		if len(parts) <= 1 {
			return errors.Errorf("invalid override %q, must be prefix=n1,..,nM", ov)
		}

		v, err := parseShardSpec(parts[1])
		if err != nil {
			return errors.Errorf("invalid override %q, must be prefix=n1,..,nM", ov)
		}

		p.Overrides = append(
			prefixAndShardsWithout(p.Overrides, blob.ID(parts[0])),
			sharded.PrefixAndShards{
				Prefix: blob.ID(parts[0]),
				Shards: v,
			})
	}

	if c.unshardedLength != -1 {
		p.UnshardedLength = c.unshardedLength
	}

View on GitHub (pinned to 82495e54b5)