So the code has: fans, err := cfg.FanConfig() if err != nil { return errors.Trace(err) } if len(fans) == 0 { return nil } So it should only be trying to CalculateOverlaySegment if FanConfig is not empty. I know we do some amount of autodetection of whether we *could* run the fan. Can you make sure that fan-config is set to "" ? What I also don't understand is that the CalculateOverlaySegment is also doing: if underlaySize <= subnetSize && fan.Underlay.Contains(underlayNet.IP) { ... newFanIP := underlayNet.IP.To4() I don't quite see how fan.Underlay would end up saying that its CIDR "Contains" an IPv6 address. I know we do some amount of "autodetect what a possible fan config could be", but I haven't found that code yet. It's possible we implemented something on Openstack that somehow automatically generates fan config that includes IPv6 addresses, when we know that it never should. On Wed, Apr 11, 2018 at 6:41 PM, thomas