class_docstr: Load an application directory which modifies a Document.
      
class_docstr_tok: ["Load","an","application","directory","which","modifies","a","Document","."]
docstr: If the handler fails, may contain a related error message.
  
          
docstr_tok: ["If","the","handler","fails",",","may","contain","a","related","error","message","."]
code: def error(self) -> str | None:
      """If the handler fails, may contain a related error message."""
      return self._main_handler.error or self._lifecycle_handler.error
  
imports: from __future__ import annotations
  import logging
  import sys
  from os.path import basename, dirname, exists, join
  from types import ModuleType
  from typing import TYPE_CHECKING, Any, Coroutine
  from jinja2 import Environment, FileSystemLoader, Template
  from ...core.types import PathLike
  from ...document import Document
  from ..application import ServerContext, SessionContext
  from .code_runner import CodeRunner
  from .handler import Handler
  from .notebook import NotebookHandler
  from .script import ScriptHandler
  from .server_lifecycle import ServerLifecycleHandler
  from .server_request_handler import ServerRequestHandler
label_desc: Use image node_id 2 for calling the DirectoryHandler obj's underlying member method code with example usage: obj.error() and returns: unknown