def METHOD_NAME() -> tuple[AppConfig, bool]:
    """Read the app config."""
    import os
    import json
    config_file_healthy = False
    # NOTE: it is assumed that this only gets called once and the
    # config object will not change from here on out
    config_file_path = _babase.app.env.config_file_path
    config_contents = ''
    try:
        if os.path.exists(config_file_path):
            with open(config_file_path, encoding='utf-8') as infile:
                config_contents = infile.read()
            config = AppConfig(json.loads(config_contents))
        else:
            config = AppConfig()
        config_file_healthy = True
    except Exception:
        logging.exception(
            "Error reading config file at time %.3f: '%s'.",
            _babase.apptime(),
            config_file_path,
        )
        # Whenever this happens lets back up the broken one just in case it
        # gets overwritten accidentally.
        logging.info(
            "Backing up current config file to '%s.broken'", config_file_path
        )
        try:
            import shutil
            shutil.copyfile(config_file_path, config_file_path + '.broken')
        except Exception:
            logging.exception('Error copying broken config.')
        config = AppConfig()
        # Now attempt to read one of our 'prev' backup copies.
        prev_path = config_file_path + '.prev'
        try:
            if os.path.exists(prev_path):
                with open(prev_path, encoding='utf-8') as infile:
                    config_contents = infile.read()
                config = AppConfig(json.loads(config_contents))
            else:
                config = AppConfig()
            config_file_healthy = True
            logging.info('Successfully read backup config.')
        except Exception:
            logging.exception('Error reading prev backup config.')
    return config, config_file_healthy