class_docstr: This is where tuners and assessors are not defined yet.
  Inherits this class to make your own advisor.
  
  .. note::
  
      The class inheriting MsgDispatcherBase should be instantiated
      after nnimanager (rest server) is started, so that the object
      is ready to use right after its instantiation.
class_docstr_tok: ["This","is","where","tuners","and","assessors","are","not","defined","yet",".","Inherits","this","class","to","make","your","own","advisor",".","..","note",":",":","The","class","inheriting","MsgDispatcherBase","should","be","instantiated","after","nnimanager","(","rest","server",")","is","started",",","so","that","the","object","is","ready","to","use","right","after","its","instantiation","."]
docstr: Report dispatcher error to NNI manager.
docstr_tok: ["Report","dispatcher","error","to","NNI","manager","."]
code: def report_error(self, error: str) -> None:
      """
      Report dispatcher error to NNI manager.
      """
      _logger.info(f"Report error to NNI manager: {error}")
      try:
          self.send(CommandType.Error, error)
      except Exception:
          _logger.error(
              "Connection to NNI manager is broken. Failed to report error."
          )
  
imports: import threading
  import logging
  from queue import Queue, Empty
  from .env_vars import dispatcher_env_vars
  from ..common import load
  from ..recoverable import Recoverable
  from .tuner_command_channel import CommandType, TunerCommandChannel
label_desc: Use image node_id 3 for calling the MsgDispatcherBase obj's underlying member method code with example usage: obj.report_error(error) without return types