diff --git a/src/report_manager.cpp b/src/report_manager.cpp
index 9ea6026..24087c3 100644
--- a/src/report_manager.cpp
+++ b/src/report_manager.cpp
@@ -28,6 +28,10 @@
                 "MaxReports", size_t{}, sdbusplus::vtable::property_::const_,
                 [](const auto&) { return maxReports; });
             dbusIface.register_property_r(
+                "MaxReportNameLength", size_t{},
+                sdbusplus::vtable::property_::const_,
+                [](const auto&) { return maxReportNameLength; });
+            dbusIface.register_property_r(
                 "MinInterval", uint64_t{}, sdbusplus::vtable::property_::const_,
                 [](const auto&) -> uint64_t { return minInterval.count(); });
 
@@ -57,6 +61,16 @@
         reports.end());
 }
 
+void ReportManager::verifyReportNameLength(const std::string& reportName)
+{
+    if (reportName.length() > maxReportNameLength)
+    {
+        throw sdbusplus::exception::SdBusError(
+            static_cast<int>(std::errc::invalid_argument),
+            "Report name exceed maximum length");
+    }
+}
+
 void ReportManager::verifyAddReport(const std::string& reportName,
                                     const std::string& reportingType,
                                     std::chrono::milliseconds interval,
@@ -69,6 +83,8 @@
             "Reached maximal report count");
     }
 
+    verifyReportNameLength(reportName);
+
     for (const auto& report : reports)
     {
         if (report->getName() == reportName)
