dagger/dagger · error

unknown config key %q

Error message

unknown config key %q

What it means

setConfigValue dispatch fell through its switch on the key's first segment: the dotted key names a field that exists in no recognized section (modules/env/ports/ignore). Pure validation of an unknown user-supplied config key.

Source

Thrown at core/workspace/config.go:1267

			}
			switch parts[2] {
			case "up":
				entry.Up.Skip = skip
			case "generate":
				entry.Generate.Skip = skip
			case "check":
				entry.Check.Skip = skip
			}
		case "as-sdk":
			if len(parts) != 4 || parts[3] != "name" {
				return fmt.Errorf("invalid key %q; expected modules.%s.as-sdk.name", strings.Join(parts, "."), moduleName)
			}
			if entry.AsSDK == nil {
				entry.AsSDK = &ModuleAsSDK{}
			}
			entry.AsSDK.Name = fmt.Sprint(value)
		default:
			return fmt.Errorf("unknown config key %q", strings.Join(parts, "."))
		}
		cfg.Modules[moduleName] = entry
		return nil
	case "env":
		if len(parts) < 5 || parts[2] != "modules" {
			return fmt.Errorf("unknown config key %q", strings.Join(parts, "."))
		}
		if cfg.Env == nil {
			cfg.Env = map[string]EnvOverlay{}
		}
		envName := parts[1]
		env := cfg.Env[envName]
		if env.Modules == nil {
			env.Modules = map[string]EnvModuleOverlay{}
		}
		moduleName := parts[3]
		module := env.Modules[moduleName]
		switch {

View on GitHub (pinned to 82ba2681db)

Solutions

  1. Check the key spelling against the config schema
  2. Use a supported section prefix (modules, env, ports, ignore)
  3. Quote module names containing dots
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at core/workspace/config.go:1267 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/e3f310734c6cca6e. Report an issue: GitHub.