diff --git a/src/libcamera/camera_manager.cpp b/src/libcamera/camera_manager.cpp
index f60491d2c1a7500f..4d23d601e1fc8a28 100644
--- a/src/libcamera/camera_manager.cpp
+++ b/src/libcamera/camera_manager.cpp
@@ -183,6 +183,13 @@ void CameraManager::Private::addCamera(std::shared_ptr<Camera> camera,
 				<< camera->name() << "'";
 			break;
 		}
+
+		if (c->id() == camera->id()) {
+			LOG(Camera, Error)
+				<< "Skipped registering camera with duplicated ID '"
+				<< camera->id() << "'";
+			return;
+		}
 	}
 
 	cameras_.push_back(std::move(camera));
