dagger/dagger · error

invalid %s ref %q: %w

Error message

invalid %s ref %q: %w

What it means

parseOCILockInputs: reference.ParseNormalizedNamed rejected the image reference recorded in the lock inputs. The reference string is not a valid normalized Docker image reference.

Source

Thrown at core/lockfile_update.go:212

	operation string,
	inputs []any,
	latest bool,
) (ociLockInputs, error) {
	var parsed ociLockInputs
	required, options, err := workspace.ParseLookupInputs(inputs)
	if err != nil {
		return parsed, fmt.Errorf("invalid %s inputs %v: %w", operation, inputs, err)
	}
	if len(required) != 1 {
		return parsed, fmt.Errorf("invalid %s inputs %v", operation, inputs)
	}
	ref, ok := required[0].(string)
	if !ok || ref == "" {
		return parsed, fmt.Errorf("invalid %s ref %v", operation, required[0])
	}
	refName, err := reference.ParseNormalizedNamed(ref)
	if err != nil {
		return parsed, fmt.Errorf("invalid %s ref %q: %w", operation, ref, err)
	}
	if latest && !reference.IsNameOnly(refName) {
		return parsed, fmt.Errorf("invalid %s tagged ref %q", operation, ref)
	}
	if !latest {
		if _, ok := refName.(reference.NamedTagged); !ok {
			return parsed, fmt.Errorf("invalid %s untagged ref %q", operation, ref)
		}
	}
	parsed.ref = ref

	for name, value := range options {
		switch name {
		case "protocol":
			protocol, ok := value.(string)
			if !ok {
				return parsed, fmt.Errorf("invalid %s registry protocol %v", operation, value)
			}

View on GitHub (pinned to 82ba2681db)

Solutions

  1. Correct the image reference syntax
  2. Regenerate the lock entry from a valid reference
  3. Check the wrapped error for the specific parse problem
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at core/lockfile_update.go:212 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of dagger/dagger@82ba2681db (2026-09-05). Data as JSON: /api/errors/7052dfad6f447d84. Report an issue: GitHub.