hashicorp/nomad · error
task %s does not support %q networking mode
Error message
task %s does not support %q networking mode
What it means
newNetworkManager maps the task group's requested network mode (e.g. bridge, host, none) to a network isolation mode and checks the driver advertises it via caps.HasNetIsolationMode. When the driver does not support the requested mode, this error names the task and the unsupported mode.
Source
Thrown at client/allocrunner/network_manager_linux.go:80
if _, ok := driverCaps[task.Driver]; ok {
continue
}
driver, err := driverManager.Dispense(task.Driver)
if err != nil {
return nil, fmt.Errorf("failed to dispense driver %s: %v", task.Driver, err)
}
caps, err := driver.Capabilities()
if err != nil {
return nil, fmt.Errorf("failed to retrieve capabilities for driver %s: %v",
task.Driver, err)
}
// check that the driver supports the requested network isolation mode
netIsolationMode := netModeToIsolationMode(taskNetMode)
if !caps.HasNetIsolationMode(netIsolationMode) {
return nil, fmt.Errorf("task %s does not support %q networking mode", task.Name, taskNetMode)
}
// check if the driver needs to create the network and if a different
// driver has already claimed it needs to initiate the network
if caps.MustInitiateNetwork {
if networkInitiator != "" {
return nil, fmt.Errorf("tasks %s and %s want to initiate networking but only one driver can do so", networkInitiator, task.Name)
}
netManager, ok := driver.(drivers.DriverNetworkManager)
if !ok {
return nil, fmt.Errorf("driver %s does not implement network management RPCs", task.Driver)
}
nm = netManager
networkInitiator = task.Name
} else if len(tg.Networks) > 0 && tg.Networks[0].Hostname != "" {
// TODO jrasell: remove once the default linux network manager
// supports setting the hostname in bridged mode. This currentlyView on GitHub (pinned to 482b49bf1a)
Solutions
- Change the group network mode to one the driver supports (e.g. mode = "host"), or remove the group network block.
- Use a driver that supports the requested isolation mode (docker supports bridge).
- Upgrade the driver/Nomad on the node so capabilities include the needed isolation mode.
- Check driver capabilities via 'nomad node status -verbose' / plugin docs before scheduling.
Example fix
// before
network {
mode = "bridge"
}
// after
network {
mode = "host"
} Defensive patterns
Strategy: validation
Validate before calling
// job-level pre-check
// group network mode must be supported by every initiating driver
if mode == "bridge" && driver != "docker" { reject() } Prevention
- Only request bridge group networking with drivers that document isolation-mode support.
- Check 'nomad node status -verbose' driver capabilities before rollout.
- Add job validation linting for network.mode vs driver combos.
When it happens
Trigger: A task group declares group 'network { mode = "bridge" }' (or similar) but a task's driver does not list the corresponding NetIsolationMode in its Capabilities, e.g. a non-DriverNetworkManager-capable custom driver used with bridge networking.
Common situations: Using bridge networking with a driver that only supports host/netns isolation; scheduling a group-network job onto a node whose driver version predates network isolation capability reporting; requesting "bridge" mode for exec/java tasks whose driver caps don't include it.
Related errors
- ErrConnectInvalidNetworkMode
- failed to create network for alloc: %v
- failed to initialize table forwarding rules: %v
- task driver %q for %q does not support host volumes
- task driver %q for %q does not support CSI
AI-assisted analysis of hashicorp/nomad@482b49bf1a (2026-09-04).
Data as JSON: /api/errors/69009a23c7191cac.
Report an issue: GitHub.