diff --git a/inventory_provider/tasks/worker.py b/inventory_provider/tasks/worker.py
index 85e658db855ca1fabf66c80cbad43c10215880cc..5b867c9d0ce6649afdd93840b1c10ea8b9c4d494 100644
--- a/inventory_provider/tasks/worker.py
+++ b/inventory_provider/tasks/worker.py
@@ -60,9 +60,18 @@ class InventoryTask(Task):
         ))
         super().update_state(**kwargs)
 
+    def on_failure(self, exc, task_id, args, kwargs, einfo):
+        self.update_state(
+            state=states.FAILURE,
+            meta={
+                'task': task_id,
+                'message': str(exc)
+            })
+        super().on_failure(exc, task_id, args, kwargs, einfo)
 
-@app.task
-def snmp_refresh_interfaces(hostname, community):
+
+@app.task(base=InventoryTask, bind=True)
+def snmp_refresh_interfaces(self, hostname, community):
     logger = logging.getLogger(__name__)
     logger.debug(
         '>>> snmp_refresh_interfaces(%r, %r)' % (hostname, community))
@@ -76,8 +85,8 @@ def snmp_refresh_interfaces(hostname, community):
         '<<< snmp_refresh_interfaces(%r, %r)' % (hostname, community))
 
 
-@app.task
-def netconf_refresh_config(hostname):
+@app.task(base=InventoryTask, bind=True)
+def netconf_refresh_config(self, hostname):
     logger = logging.getLogger(__name__)
     logger.debug('>>> netconf_refresh_config(%r)' % hostname)
 
@@ -90,8 +99,8 @@ def netconf_refresh_config(hostname):
     logger.debug('<<< netconf_refresh_config(%r)' % hostname)
 
 
-@app.task
-def update_interfaces_to_services():
+@app.task(base=InventoryTask, bind=True)
+def update_interfaces_to_services(self):
     logger = logging.getLogger(__name__)
     logger.debug('>>> update_interfaces_to_services')
 
@@ -115,8 +124,8 @@ def update_interfaces_to_services():
     logger.debug('<<< update_interfaces_to_services')
 
 
-@app.task
-def update_equipment_locations():
+@app.task(base=InventoryTask, bind=True)
+def update_equipment_locations(self):
     logger = logging.getLogger(__name__)
     logger.debug('>>> update_equipment_locations')
 
@@ -134,8 +143,8 @@ def update_equipment_locations():
     logger.debug('<<< update_equipment_locations')
 
 
-@app.task
-def update_circuit_hierarchy():
+@app.task(base=InventoryTask, bind=True)
+def update_circuit_hierarchy(self):
     logger = logging.getLogger(__name__)
     logger.debug('>>> update_circuit_hierarchy')
 
@@ -165,8 +174,8 @@ def update_circuit_hierarchy():
     logger.debug('<<< update_circuit_hierarchy')
 
 
-@app.task
-def update_geant_lambdas():
+@app.task(base=InventoryTask, bind=True)
+def update_geant_lambdas(self):
     logger = logging.getLogger(__name__)
     logger.debug('>>> update_geant_lambdas')