diff --git a/include/ssl_key_handler.hpp b/include/ssl_key_handler.hpp
index 7178195..deb3a76 100644
--- a/include/ssl_key_handler.hpp
+++ b/include/ssl_key_handler.hpp
@@ -44,7 +44,7 @@
     X509_STORE* x509Store = X509_STORE_new();
     if (!x509Store)
     {
-        BMCWEB_LOG_ERROR << "Error occured during X509_STORE_new call";
+        BMCWEB_LOG_ERROR << "Error occurred during X509_STORE_new call";
         return false;
     }
 
@@ -52,7 +52,7 @@
     X509_STORE_CTX* storeCtx = X509_STORE_CTX_new();
     if (!storeCtx)
     {
-        BMCWEB_LOG_ERROR << "Error occured during X509_STORE_CTX_new call";
+        BMCWEB_LOG_ERROR << "Error occurred during X509_STORE_CTX_new call";
         X509_STORE_free(x509Store);
         return false;
     }
@@ -60,7 +60,7 @@
     int errCode = X509_STORE_CTX_init(storeCtx, x509Store, cert, nullptr);
     if (errCode != 1)
     {
-        BMCWEB_LOG_ERROR << "Error occured during X509_STORE_CTX_init call";
+        BMCWEB_LOG_ERROR << "Error occurred during X509_STORE_CTX_init call";
         X509_STORE_CTX_free(storeCtx);
         X509_STORE_free(x509Store);
         return false;
@@ -94,7 +94,8 @@
     }
 
     BMCWEB_LOG_ERROR
-        << "Error occured during X509_verify_cert call. ErrorCode: " << errCode;
+        << "Error occurred during X509_verify_cert call. ErrorCode: "
+        << errCode;
     X509_STORE_CTX_free(storeCtx);
     X509_STORE_free(x509Store);
     return false;
diff --git a/redfish-core/lib/account_service.hpp b/redfish-core/lib/account_service.hpp
index 30f34fa..8ef1434 100644
--- a/redfish-core/lib/account_service.hpp
+++ b/redfish-core/lib/account_service.hpp
@@ -656,7 +656,7 @@
                 if (ec)
                 {
                     BMCWEB_LOG_DEBUG
-                        << "Error Occured in updating the service address";
+                        << "Error Occurred in updating the service address";
                     messages::internalError(asyncResp->res);
                     return;
                 }
@@ -697,7 +697,7 @@
                 if (ec)
                 {
                     BMCWEB_LOG_DEBUG
-                        << "Error occured in updating the username";
+                        << "Error occurred in updating the username";
                     messages::internalError(asyncResp->res);
                     return;
                 }
@@ -730,7 +730,7 @@
                 if (ec)
                 {
                     BMCWEB_LOG_DEBUG
-                        << "Error occured in updating the password";
+                        << "Error occurred in updating the password";
                     messages::internalError(asyncResp->res);
                     return;
                 }
@@ -762,7 +762,8 @@
              ldapServerElementName](const boost::system::error_code ec) {
                 if (ec)
                 {
-                    BMCWEB_LOG_DEBUG << "Error Occured in Updating the base DN";
+                    BMCWEB_LOG_DEBUG
+                        << "Error Occurred in Updating the base DN";
                     messages::internalError(asyncResp->res);
                     return;
                 }
@@ -805,7 +806,7 @@
              ldapServerElementName](const boost::system::error_code ec) {
                 if (ec)
                 {
-                    BMCWEB_LOG_DEBUG << "Error Occured in Updating the "
+                    BMCWEB_LOG_DEBUG << "Error Occurred in Updating the "
                                         "username attribute";
                     messages::internalError(asyncResp->res);
                     return;
@@ -840,7 +841,7 @@
              ldapServerElementName](const boost::system::error_code ec) {
                 if (ec)
                 {
-                    BMCWEB_LOG_DEBUG << "Error Occured in Updating the "
+                    BMCWEB_LOG_DEBUG << "Error Occurred in Updating the "
                                         "groupname attribute";
                     messages::internalError(asyncResp->res);
                     return;
@@ -876,7 +877,7 @@
                 if (ec)
                 {
                     BMCWEB_LOG_DEBUG
-                        << "Error Occured in Updating the service enable";
+                        << "Error Occurred in Updating the service enable";
                     messages::internalError(asyncResp->res);
                     return;
                 }
