diff --git a/orchagent/aclorch.cpp b/orchagent/aclorch.cpp index 84db02df470..a4b48957403 100644 --- a/orchagent/aclorch.cpp +++ b/orchagent/aclorch.cpp @@ -2903,8 +2903,16 @@ void AclOrch::doAclRuleTask(Consumer &consumer) type = table_id == m_mirrorTableId[stage] ? ACL_TABLE_MIRROR : ACL_TABLE_MIRRORV6; } - - newRule = AclRule::makeShared(type, this, m_mirrorOrch, m_dTelOrch, rule_id, table_id, t); + try + { + newRule = AclRule::makeShared(type, this, m_mirrorOrch, m_dTelOrch, rule_id, table_id, t); + } + catch (runtime_error &e) + { + SWSS_LOG_ERROR("Error while creating ACL rule %s: %s", rule_id.c_str(), e.what()); + it = consumer.m_toSync.erase(it); + return; + } for (const auto& itr : kfvFieldsValues(t)) {