I think this could fail, if old_service is None, the call to `old_service.disable()` is going to crash.

Instead, you could write this using a guard as:
```
def _build(...):
    old_service = ...
    if not old_service:
        log.debug(...)
        return False
```

I always prefer writing branches as guards because it makes the rest of the function more readable. Once that condition is handled, your if/else is going to be a lot easier to read.