I guess, line 59 in file "[airflow/airflow/task/task_runner/__init__.py](https://github.com/apache/airflow/blob/5a864f0e456348e0a871cf4678e1ffeec541c52d/airflow/task/task_runner/__init__.py#L59)" should change like:

**OLD**: f'The task runner could not be loaded. Please check "executor" key in "core" section.'
**NEW**: f'The task runner could not be loaded. Please check "task_runner" key in "core" section.'

So, "executor" should be replaced with "task_runner".
airflow/task/task_runner/__init__.py
"""
    Get the task runner that can be used to run the given job.
    :param local_task_job: The LocalTaskJob associated with the TaskInstance
        that needs to be executed.
    :type local_task_job: airflow.jobs.local_task_job.LocalTaskJob
    :return: The task runner to use to run the task.
    :rtype: airflow.task.task_runner.base_task_runner.BaseTaskRunner
    """
    if _TASK_RUNNER_NAME in CORE_TASK_RUNNERS:
        log.debug("Loading core task runner: %s", _TASK_RUNNER_NAME)
        task_runner_class = import_string(CORE_TASK_RUNNERS[_TASK_RUNNER_NAME])
    else:
        log.debug("Loading task runner from custom path: %s", _TASK_RUNNER_NAME)
        try:
            task_runner_class = import_string(_TASK_RUNNER_NAME)
        except ImportError:
            raise AirflowConfigException(
                f'The task runner could not be loaded. Please check "executor" key in "core" section. '
                f'Current value: "{_TASK_RUNNER_NAME}".'
            )
    task_runner = task_runner_class(local_task_job)
    return task_runner