diff --git a/systemd_target_parser.cpp b/systemd_target_parser.cpp
index d2cfa86..9656a46 100644
--- a/systemd_target_parser.cpp
+++ b/systemd_target_parser.cpp
@@ -17,6 +17,23 @@
             throw std::out_of_range("Found invalid error to monitor");
         }
     }
+    // See if default was in the errors to monitor, if so replace with defaults
+    auto errorItr =
+        std::find(errorsToMonitor.begin(), errorsToMonitor.end(), "default");
+    if (errorItr != errorsToMonitor.end())
+    {
+        // Verify default is the only entry
+        if (errorsToMonitor.size() != 1)
+        {
+            throw std::invalid_argument(
+                "default must be only error to monitor");
+        }
+        // delete "default" and insert defaults
+        errorsToMonitor.erase(errorItr);
+        errorsToMonitor.push_back("timeout");
+        errorsToMonitor.push_back("failed");
+        errorsToMonitor.push_back("dependency");
+    }
 }
 
 TargetErrorData parseFiles(const std::vector<std::string>& filePaths)
diff --git a/test/systemd_parser.cpp b/test/systemd_parser.cpp
index 7ca94b9..cb3a609 100644
--- a/test/systemd_parser.cpp
+++ b/test/systemd_parser.cpp
@@ -63,6 +63,9 @@
     EXPECT_EQ(tgt.errorToLog,
               "xyz.openbmc_project.State.Chassis.Error.PowerOnTargetFailure");
     EXPECT_EQ(tgt.errorsToMonitor.size(), 2);
+    // Check a target with "default" for errorsToMonitor, should have 3 defaults
+    tgt = targetData["obmc-host-start@0.target"];
+    EXPECT_EQ(tgt.errorsToMonitor.size(), 3);
 
     std::remove("/tmp/good_file1.json");
     std::remove("/tmp/good_file2.json");
@@ -107,3 +110,28 @@
                  nlohmann::detail::parse_error);
     std::remove("/tmp/invalid_json_file.json");
 }
+
+TEST(TargetJsonParser, NotJustDefault)
+{
+    auto notJustDefault = R"(
+        {
+            "targets" : {
+                "obmc-chassis-poweron@0.target" : {
+                    "errorsToMonitor": ["timeout", "default"],
+                    "errorToLog": "xyz.openbmc_project.State.Chassis.Error.PowerOnTargetFailure"}
+                }
+        }
+    )"_json;
+
+    std::FILE* tmpf = fopen("/tmp/not_just_default_file.json", "w");
+    std::fputs(notJustDefault.dump().c_str(), tmpf);
+    std::fclose(tmpf);
+
+    std::vector<std::string> filePaths;
+    filePaths.push_back("/tmp/not_just_default_file.json");
+
+    // Verify exception thrown on invalid errorsToMonitor
+    EXPECT_THROW(TargetErrorData targetData = parseFiles(filePaths),
+                 std::invalid_argument);
+    std::remove("/tmp/not_just_default_file.json");
+}
