diff --git a/gso/workflows/device/terminate_device.py b/gso/workflows/device/terminate_device.py
index ac81a231189fa8d0582569b5ecce35ec73acded9..cedda7061a539034cfb484b3bb80a64739b06ebc 100644
--- a/gso/workflows/device/terminate_device.py
+++ b/gso/workflows/device/terminate_device.py
@@ -52,7 +52,7 @@ def deprovision_loopback_ips(subscription: Device) -> dict[str, HostAddresses]:
 @step("Deprovision SI- interface  IPs from IPAM/DNS")
 def deprovision_si_ips(subscription: Device) -> dict[str, V4ServiceNetwork | V6ServiceNetwork]:
     service_network = ipam.delete_network(
-        network=ipaddress.ip_network(subscription.device.device_si_ipv4_network),
+        network=ipaddress.ip_network(subscription.device.device_si_ipv4_network),  # type: ignore
         service_type="SI",
     )
     return {"service_network": service_network}
@@ -61,11 +61,11 @@ def deprovision_si_ips(subscription: Device) -> dict[str, V4ServiceNetwork | V6S
 @step("Deprovision LT- interface (IAS) IPs from IPAM/DNS")
 def deprovision_lt_ips(subscription: Device) -> dict[str, V4ServiceNetwork | V6ServiceNetwork]:
     service_network_v4 = ipam.delete_network(
-        network=ipaddress.ip_network(subscription.device.device_ias_lt_ipv4_network),
+        network=ipaddress.ip_network(subscription.device.device_ias_lt_ipv4_network),  # type: ignore
         service_type="LT_IAS",
     )
     service_network_v6 = ipam.delete_network(
-        network=ipaddress.ip_network(subscription.device.device_ias_lt_ipv6_network),
+        network=ipaddress.ip_network(subscription.device.device_ias_lt_ipv6_network),  # type: ignore
         service_type="LT_IAS",
     )
     return {
@@ -87,8 +87,14 @@ def remove_config_from_device() -> None:
 def terminate_device() -> StepList:
     run_ipam_steps = conditional(lambda state: state.get("clean_up_ipam", True))
     run_config_steps = conditional(lambda state: state.get("remove_configuration", True))
+    run_ias_removal = conditional(lambda subscription: "device_ias_lt_ipv4_network" in subscription.get("device", {}))
+    run_si_removal = conditional(lambda subscription: "device_si_ipv4_network" in subscription.get("device", {}))
 
-    ipam_steps = StepList([deprovision_loopback_ips, deprovision_si_ips, deprovision_lt_ips])
+    ipam_steps = (
+        StepList([deprovision_loopback_ips])
+        >> run_si_removal(deprovision_si_ips)
+        >> run_ias_removal(deprovision_lt_ips)
+    )
 
     return (
         init
diff --git a/gso/workflows/site/create_site.py b/gso/workflows/site/create_site.py
index b597a91357d952809539cc691952222fa9d26e61..5930bf155e1fd48eb61ecf31bbe4742d0db069f2 100644
--- a/gso/workflows/site/create_site.py
+++ b/gso/workflows/site/create_site.py
@@ -53,8 +53,8 @@ def initialize_subscription(
     site_longitude: float,
     site_bgp_community_id: int,
     site_internal_id: int,
-    site_tier: site_pb.SiteTier,
     site_ts_address: str,
+    site_tier: site_pb.SiteTier,
 ) -> State:
     subscription.site.site_name = site_name
     subscription.site.site_city = site_city
@@ -88,4 +88,4 @@ def create_site() -> StepList:
         >> set_status(SubscriptionLifecycle.ACTIVE)
         >> resync
         >> done
-    site_tier)
+    )