         (sling/throw+ {:type :service-description-error
                        :friendly-error-message (str "The health check port index (" health-check-port-index ") "
                                                     "must be smaller than ports (" ports ")")
-                       :status 400})))
+                       :status 400
+                       :log-level :warn})))
 
     ;; currently, if manually specified, the namespace *must* match the run-as-user
     ;; (but we expect the common case to be falling back to the default)

(let [error-message-map-fn (fn [passthrough-headers waiter-headers]
                             {:status 400
                              :non-waiter-headers (dissoc passthrough-headers "authorization")
                              :x-waiter-headers waiter-headers})]
  (defn compute-service-description
    "Computes the service description applying any processing rules,
     It also validates the services description.

    (when-not (re-matches valid-token-re token)
      (throw (ex-info
               "Token must match pattern"
               {:status 400 :token token :pattern (str valid-token-re) :log-level :warn})))))

(defn- token->token-data
  "Retrieves the data stored against the token in the kv-store."
