diff --git a/lib/config.py b/lib/config.py
index 0323a9cbfd808a9e92b45b2c0d2a090d32a650b2..cdbdd78f34b81b0adc1b818e28fee10c11125698 100644
--- a/lib/config.py
+++ b/lib/config.py
@@ -350,7 +350,14 @@ class ConfigWriter:
     nobj = self._UnlockedGetNetwork(net_uuid)
     pool = network.AddressPool(nobj)
     gen_free = pool.GenerateFree()
-    gen_one = lambda: (gen_free(), net_uuid)
+
+    def gen_one():
+      try:
+        ip = gen_free()
+      except StopIteration:
+        return None
+      return (ip, net_uuid)
+
     address, _ = self._temporary_ips.Generate([], gen_one, ec_id)
     return address