diff --git a/common/src/software.cpp b/common/src/software.cpp
index 3a02763..339275a 100644
--- a/common/src/software.cpp
+++ b/common/src/software.cpp
@@ -63,16 +63,8 @@
     }
     catch (std::exception& e)
     {
-        error(e.what());
-    }
-
-    if (!associationDefinitions)
-    {
-        std::string path = objectPath;
-        associationDefinitions =
-            std::make_unique<SoftwareAssociationDefinitions>(
-                ctx, path.c_str(),
-                SoftwareAssociationDefinitions::properties_t{{}});
+        error("Failed to create association with {ERROR}", "ERROR", e.what());
+        co_return;
     }
 
     if (endpoint.empty())
@@ -99,7 +91,19 @@
         assocs.push_back(assocActivating);
     }
 
-    associationDefinitions->associations(assocs);
+    if (associationDefinitions)
+    {
+        associationDefinitions->associations(assocs);
+    }
+    else
+    {
+        std::string path = objectPath;
+        associationDefinitions =
+            std::make_unique<SoftwareAssociationDefinitions>(
+                ctx, path.c_str(),
+                SoftwareAssociationDefinitions::properties_t{assocs});
+        associationDefinitions->emit_added();
+    }
 
     co_return;
 }
diff --git a/common/src/software_manager.cpp b/common/src/software_manager.cpp
index 1ff7c31..6c971e8 100644
--- a/common/src/software_manager.cpp
+++ b/common/src/software_manager.cpp
@@ -163,14 +163,26 @@
         co_return;
     }
 
-    if (devices.contains(optConfig.value().objectPath))
+    auto& config = optConfig.value();
+
+    if (devices.contains(config.objectPath))
     {
         error("Device configured from {PATH} is already known", "PATH",
-              optConfig.value().objectPath);
+              config.objectPath);
         co_return;
     }
 
-    co_await initDevice(service, path, optConfig.value());
+    const bool accepted = co_await initDevice(service, path, config);
+
+    if (accepted && devices.contains(config.objectPath))
+    {
+        auto& device = devices[config.objectPath];
+
+        if (device->softwareCurrent)
+        {
+            co_await device->softwareCurrent->createInventoryAssociations(true);
+        }
+    }
 
     co_return;
 }
