diff --git a/Vintf.cpp b/Vintf.cpp
index fca4775..164eb42 100644
--- a/Vintf.cpp
+++ b/Vintf.cpp
@@ -71,6 +71,21 @@
     return vintf::Transport::EMPTY;
 }
 
+static void insertManifestInstances(const FQName& fqName,
+                                    const std::shared_ptr<const vintf::HalManifest>& manifest,
+                                    const std::string& manifestType,
+                                    std::set<std::string>* toSet) {
+    if (manifest == nullptr) {
+        LOG(ERROR) << "Device is missing " << manifestType << " manifest.";
+        return;
+    }
+
+    std::set<std::string> manifestSet = manifest->getHidlInstances(
+        fqName.package(), fqName.getVersion(), fqName.name());
+
+    toSet->insert(manifestSet.begin(), manifestSet.end());
+}
+
 std::set<std::string> getInstances(const std::string& interfaceName) {
     FQName fqName;
     if (!FQName::parse(interfaceName, &fqName) || !fqName.isFullyQualified() ||
@@ -82,16 +97,10 @@
 
     std::set<std::string> ret;
 
-    auto deviceManifest = vintf::VintfObject::GetDeviceHalManifest();
-    auto frameworkManifest = vintf::VintfObject::GetFrameworkHalManifest();
-
-    std::set<std::string> deviceSet = deviceManifest->getHidlInstances(
-        fqName.package(), fqName.getVersion(), fqName.name());
-    std::set<std::string> frameworkSet = frameworkManifest->getHidlInstances(
-        fqName.package(), fqName.getVersion(), fqName.name());
-
-    ret.insert(deviceSet.begin(), deviceSet.end());
-    ret.insert(frameworkSet.begin(), frameworkSet.end());
+    insertManifestInstances(
+        fqName, vintf::VintfObject::GetDeviceHalManifest(), "device", &ret);
+    insertManifestInstances(
+        fqName, vintf::VintfObject::GetFrameworkHalManifest(), "framework", &ret);
 
     return ret;
 }
