diff --git a/src/libcamera/ipa_manager.cpp b/src/libcamera/ipa_manager.cpp
index 0a908eae6261..f3e08375820c 100644
--- a/src/libcamera/ipa_manager.cpp
+++ b/src/libcamera/ipa_manager.cpp
@@ -94,11 +94,19 @@ LOG_DEFINE_CATEGORY(IPAManager)
 
 IPAManager::IPAManager()
 {
-	addDir(IPA_MODULE_DIR);
+	unsigned int ipaCount = 0;
+	int ret;
+
+	ret = addDir(IPA_MODULE_DIR);
+	if (ret > 0)
+		ipaCount += ret;
 
 	const char *modulePaths = utils::secure_getenv("LIBCAMERA_IPA_MODULE_PATH");
-	if (!modulePaths)
+	if (!modulePaths) {
+		LOG(IPAManager, Warning)
+			<< "No IPA found in '" IPA_MODULE_DIR "'";
 		return;
+	}
 
 	while (1) {
 		const char *delim = strchrnul(modulePaths, ':');
@@ -106,7 +114,9 @@ IPAManager::IPAManager()
 
 		if (count) {
 			std::string path(modulePaths, count);
-			addDir(path.c_str());
+			ret = addDir(path.c_str());
+			if (ret > 0)
+				ipaCount += ret;
 		}
 
 		if (*delim == '\0')
@@ -114,6 +124,11 @@ IPAManager::IPAManager()
 
 		modulePaths += count + 1;
 	}
+
+	if (!ipaCount)
+		LOG(IPAManager, Warning)
+			<< "No IPA found in '" IPA_MODULE_DIR "' and '"
+			<< modulePaths << "'";
 }
 
 IPAManager::~IPAManager()
@@ -155,9 +170,6 @@ int IPAManager::addDir(const char *libDir)
 	dir = opendir(libDir);
 	if (!dir) {
 		int ret = -errno;
-		LOG(IPAManager, Error)
-			<< "Invalid path " << libDir << " for IPA modules: "
-			<< strerror(-ret);
 		return ret;
 	}
 
