dagger/dagger · error
ports.%s.backendPort must be an integer
Error message
ports.%s.backendPort must be an integer
What it means
setConfigValue was asked to write ports.<host>.backendPort, but the value being set did not decode to an integer. Backend ports are typed as integers in the PortMapping struct; the host (%s) names the port mapping whose backendPort was given a non-numeric value (e.g. a service name instead of backendService).
Source
Thrown at core/workspace/config.go:1316
env.Modules[moduleName] = module
cfg.Env[envName] = env
return nil
case "ports":
if len(parts) != 3 {
return fmt.Errorf("invalid key %q; expected ports.<host>.backendService or ports.<host>.backendPort", strings.Join(parts, "."))
}
if cfg.Ports == nil {
cfg.Ports = map[string]PortMapping{}
}
host := parts[1]
pm := cfg.Ports[host]
switch parts[2] {
case "backendService":
pm.BackendService = fmt.Sprint(value)
case "backendPort":
port, ok := value.(int64)
if !ok {
return fmt.Errorf("ports.%s.backendPort must be an integer", host)
}
pm.BackendPort = int(port)
default:
return fmt.Errorf("unknown config key %q", strings.Join(parts, "."))
}
cfg.Ports[host] = pm
return nil
default:
return fmt.Errorf("unknown config key %q", strings.Join(parts, "."))
}
}
func validateKeyAgainstType(parts []string, t reflect.Type, fullKey, op string) error {
if len(parts) == 0 {
return nil
}
field, ok := findTOMLField(t, parts[0])View on GitHub (pinned to 82ba2681db)
Solutions
- Write the port as an integer without quotes or units
- Remove any surrounding whitespace or formatting from the value
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at core/workspace/config.go:1316 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/ce4f66af20eed054.
Report an issue: GitHub.