docker/cli ยท error

service is already attached to network %s

Error message

service is already attached to network %s

What it means

Error "service is already attached to network %s" thrown in docker/cli.

Source

Thrown at cli/command/service/update.go:1345

	for _, nw := range specNetworks {
		if _, exists := idsToRemove[nw.Target]; exists {
			continue
		}

		newNetworks = append(newNetworks, nw)
		existingNetworks[nw.Target] = struct{}{}
	}

	if flags.Changed(flagNetworkAdd) {
		values := flags.Lookup(flagNetworkAdd).Value.(*opts.NetworkOpt)
		networks := convertNetworks(*values)
		for _, nw := range networks {
			nwID, err := resolveNetworkID(ctx, apiClient, nw.Target)
			if err != nil {
				return err
			}
			if _, exists := existingNetworks[nwID]; exists {
				return fmt.Errorf("service is already attached to network %s", nw.Target)
			}
			nw.Target = nwID
			newNetworks = append(newNetworks, nw)
			existingNetworks[nw.Target] = struct{}{}
		}
	}

	sort.Slice(newNetworks, func(i, j int) bool {
		return newNetworks[i].Target < newNetworks[j].Target
	})

	spec.TaskTemplate.Networks = newNetworks
	return nil
}

// updateCredSpecConfig updates the value of the credential spec Config field
// to the config ID if the credential spec has changed. it mutates the passed
// spec. it does not handle the case where the credential spec specifies a

View on GitHub (pinned to e9452d6e78)

When it happens

Trigger: Thrown at cli/command/service/update.go:1345 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of docker/cli@e9452d6e78 (2026-08-01). Data as JSON: /data/errors/8757afe109cab046.json. Report an issue: GitHub.