diff --git a/nlpcraft/src/main/scala/org/apache/nlpcraft/common/NCService.scala b/nlpcraft/src/main/scala/org/apache/nlpcraft/common/NCService.scala
index 571c501..a3a5e12 100644
--- a/nlpcraft/src/main/scala/org/apache/nlpcraft/common/NCService.scala
+++ b/nlpcraft/src/main/scala/org/apache/nlpcraft/common/NCService.scala
@@ -71,7 +71,7 @@
      * Acks started service. Should be called at the end of the `start()` method.
      */
     protected def ackStart(): NCService = {
-        require(!started)
+        assert(!started, s"Service '$name' is already started.")
 
         started = true
 
diff --git a/nlpcraft/src/main/scala/org/apache/nlpcraft/common/extcfg/NCExternalConfigManager.scala b/nlpcraft/src/main/scala/org/apache/nlpcraft/common/extcfg/NCExternalConfigManager.scala
index f400eba..126cca3 100644
--- a/nlpcraft/src/main/scala/org/apache/nlpcraft/common/extcfg/NCExternalConfigManager.scala
+++ b/nlpcraft/src/main/scala/org/apache/nlpcraft/common/extcfg/NCExternalConfigManager.scala
@@ -172,7 +172,7 @@
      *
      * @param parent Optional parent span.
      */
-    override def stop(parent: Span): Unit = startScopedSpan("atop", parent) { _ ⇒
+    override def stop(parent: Span): Unit = startScopedSpan("stop", parent) { _ ⇒
         ackStop()
     }
 
diff --git a/nlpcraft/src/main/scala/org/apache/nlpcraft/common/util/NCUtils.scala b/nlpcraft/src/main/scala/org/apache/nlpcraft/common/util/NCUtils.scala
index 782760c..742ace8 100644
--- a/nlpcraft/src/main/scala/org/apache/nlpcraft/common/util/NCUtils.scala
+++ b/nlpcraft/src/main/scala/org/apache/nlpcraft/common/util/NCUtils.scala
@@ -1676,12 +1676,13 @@
       * @param bodies
       * @param ec
       */
-    def executeParallel(bodies: (() ⇒ Any)*)(implicit ec: ExecutionContext = global): Unit =
+    def executeParallel(bodies: (() ⇒ Any)*)(implicit ec: ExecutionContext = global): Unit = {
         bodies.map(body ⇒ {
             Future {
                 body()
             }(ec)
-        }).foreach(f ⇒ Await.result(f, Duration.Inf))
+        }).foreach(Await.result(_, Duration.Inf))
+    }
 
     /**
       *
diff --git a/nlpcraft/src/main/scala/org/apache/nlpcraft/examples/alarm/AlarmModel.java b/nlpcraft/src/main/scala/org/apache/nlpcraft/examples/alarm/AlarmModel.java
index 7ccc9ef..084586a 100644
--- a/nlpcraft/src/main/scala/org/apache/nlpcraft/examples/alarm/AlarmModel.java
+++ b/nlpcraft/src/main/scala/org/apache/nlpcraft/examples/alarm/AlarmModel.java
@@ -57,7 +57,7 @@
         "Buzz me in an hour and 15mins",
         "Set my alarm for 30s"
     })
-    private NCResult onMatch(
+    NCResult onMatch(
         NCIntentMatch ctx,
         @NCIntentTerm("nums") List<NCToken> numToks
     ) {
diff --git a/nlpcraft/src/main/scala/org/apache/nlpcraft/model/tools/test/NCTestAutoModelValidator.java b/nlpcraft/src/main/scala/org/apache/nlpcraft/model/tools/test/NCTestAutoModelValidator.java
index 2b75f68..5596b0a 100644
--- a/nlpcraft/src/main/scala/org/apache/nlpcraft/model/tools/test/NCTestAutoModelValidator.java
+++ b/nlpcraft/src/main/scala/org/apache/nlpcraft/model/tools/test/NCTestAutoModelValidator.java
@@ -67,6 +67,9 @@
      */
     public static void main(String[] args) throws Exception {
         NCTestAutoModelValidatorImpl.isValid();
+
+        // TODO: uncomment once the hanging on exit is fixed.
+        // System.exit(NCTestAutoModelValidatorImpl.isValid() ? 0 : 1);
     }
 
     /**
diff --git a/nlpcraft/src/main/scala/org/apache/nlpcraft/server/rest/NCBasicRestApi.scala b/nlpcraft/src/main/scala/org/apache/nlpcraft/server/rest/NCBasicRestApi.scala
index 6456738..3ea1790 100644
--- a/nlpcraft/src/main/scala/org/apache/nlpcraft/server/rest/NCBasicRestApi.scala
+++ b/nlpcraft/src/main/scala/org/apache/nlpcraft/server/rest/NCBasicRestApi.scala
@@ -81,6 +81,7 @@
     case class EmptyField(fn: String) extends InvalidArguments(s"API field `$fn` value cannot be empty.")
     case class InvalidExternalUserId(usrExtId: String) extends InvalidArguments(s"External user ID is invalid or unknown: $usrExtId")
     case class InvalidUserId(id: Long) extends InvalidArguments(s"User ID is invalid or unknown: $id")
+    case class InvalidModelId(id: String) extends InvalidArguments(s"Model ID is invalid or unknown: $id")
 
     case class AskReqHolder(
         usrId: Long,
@@ -323,7 +324,7 @@
     @throws[InvalidField]
     protected def checkModelId(mdlId: String, compId: Long): Unit =
         if (!NCProbeManager.existsForModel(compId, mdlId))
-            throw InvalidField("mdlId")
+            throw InvalidModelId("mdlId")
 
     /**
       * Checks length of field value.
