diff --git a/xos/synchronizer/pull_steps/pull_onus.py b/xos/synchronizer/pull_steps/pull_onus.py
index 8ad59cb..4c7c344 100644
--- a/xos/synchronizer/pull_steps/pull_onus.py
+++ b/xos/synchronizer/pull_steps/pull_onus.py
@@ -49,19 +49,16 @@
             r = requests.get("%s:%s/api/v1/devices" % (voltha_url, voltha_port))
 
             if r.status_code != 200:
-                log.debug("It was not possible to fetch devices from VOLTHA")
+                log.warn("It was not possible to fetch devices from VOLTHA")
 
             # keeping only ONUs
             devices = [d for d in r.json()["items"] if "onu" in d["type"]]
 
-            log.debug("received devices", onus=devices)
+            log.trace("received devices", onus=devices)
 
             # TODO
             # [ ] delete ONUS as ONUDevice.objects.all() - updated ONUs
 
-            if r.status_code != 200:
-                log.debug("It was not possible to fetch devices from VOLTHA")
-
             onus_in_voltha = self.create_or_update_onus(devices)
 
         except ConnectionError, e:
@@ -79,7 +76,7 @@
             try:
 
                 model = ONUDevice.objects.filter(serial_number=onu["serial_number"])[0]
-                log.debug("ONUDevice already exists, updating it", serial_number=onu["serial_number"])
+                log.trace("ONUDevice already exists, updating it", serial_number=onu["serial_number"])
 
                 if model.enacted < model.updated:
                     log.debug("Skipping pull on ONUDevice %s as enacted < updated" % model.serial_number, serial_number=model.serial_number, id=model.id, enacted=model.enacted, updated=model.updated)
@@ -125,11 +122,11 @@
             r = requests.get("%s:%s/api/v1/devices/%s/ports" % (voltha_url, voltha_port, onu.device_id))
 
             if r.status_code != 200:
-                log.debug("It was not possible to fetch ports from VOLTHA for ONUDevice %s" % onu.device_id)
+                log.warn("It was not possible to fetch ports from VOLTHA for ONUDevice %s" % onu.device_id)
 
             ports = r.json()['items']
 
-            log.debug("received ports", ports=ports, onu=onu.device_id)
+            log.trace("received ports", ports=ports, onu=onu.device_id)
 
             self.create_or_update_ports(ports, onu)
 
@@ -159,10 +156,10 @@
             r = requests.get("%s:%s/api/v1/logical_devices/%s/ports" % (voltha_url, voltha_port, logical_device_id))
 
             if r.status_code != 200:
-                log.debug("It was not possible to fetch ports from VOLTHA for logical_device %s" % logical_device_id)
+                log.warn("It was not possible to fetch ports from VOLTHA for logical_device %s" % logical_device_id)
 
             logical_ports = r.json()['items']
-            log.debug("logical device ports for ONUDevice %s" % onu.device_id, logical_ports=logical_ports)
+            log.trace("logical device ports for ONUDevice %s" % onu.device_id, logical_ports=logical_ports)
 
             ports = [p['ofp_port']['port_no'] for p in logical_ports if p['device_id'] == onu.device_id]
             # log.debug("Port_id for port %s on ONUDevice %s: %s" % (port['label'], onu.device_id, ports), logical_ports=logical_ports)
@@ -182,7 +179,7 @@
             port_no = self.get_onu_port_id(port, onu)
             try:
                 model = UNIPort.objects.filter(port_no=port_no, onu_device_id=onu.id)[0]
-                log.debug("UNIPort already exists, updating it", port_no=port_no, onu_device_id=onu.id)
+                log.trace("UNIPort already exists, updating it", port_no=port_no, onu_device_id=onu.id)
             except IndexError:
                 model = UNIPort()
                 model.port_no = port_no
@@ -203,7 +200,7 @@
             try:
                 model = PONONUPort.objects.filter(port_no=port["port_no"], onu_device_id=onu.id)[0]
                 model.xos_managed = False
-                log.debug("PONONUPort already exists, updating it", port_no=port["port_no"], onu_device_id=onu.id)
+                log.trace("PONONUPort already exists, updating it", port_no=port["port_no"], onu_device_id=onu.id)
             except IndexError:
                 model = PONONUPort()
                 model.port_no = port["port_no"]
