### Apache Airflow version

Other Airflow 2 version (please specify below)

### What happened

Apache Airflow version:  2.4.0

I remove DAG from storage then trigger it:

curl -X POST 'http://localhost:8080/api/dags/<DAG_ID>/dag_runs' --header 'Content-Type: application/json' --data '{"dag_run_id":"my_id"}'

it returns:
```

Traceback (most recent call last):
  File &#34;/home/airflow/.local/lib/python3.8/site-packages/flask/app.py&#34;, line 2525, in wsgi_app
    response = self.full_dispatch_request()
  File &#34;/home/airflow/.local/lib/python3.8/site-packages/flask/app.py&#34;, line 1822, in full_dispatch_request
    rv = self.handle_user_exception(e)
  File &#34;/home/airflow/.local/lib/python3.8/site-packages/flask/app.py&#34;, line 1820, in full_dispatch_request
    rv = self.dispatch_request()
  File &#34;/home/airflow/.local/lib/python3.8/site-packages/flask/app.py&#34;, line 1796, in dispatch_request
    return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args)
  File &#34;/home/airflow/.local/lib/python3.8/site-packages/connexion/decorators/decorator.py&#34;, line 68, in wrapper
    response = function(request)
  File &#34;/home/airflow/.local/lib/python3.8/site-packages/connexion/decorators/uri_parsing.py&#34;, line 149, in wrapper
    response = function(request)
  File &#34;/home/airflow/.local/lib/python3.8/site-packages/connexion/decorators/validation.py&#34;, line 196, in wrapper
    response = function(request)
  File &#34;/home/airflow/.local/lib/python3.8/site-packages/connexion/decorators/validation.py&#34;, line 399, in wrapper
    return function(request)
  File &#34;/home/airflow/.local/lib/python3.8/site-packages/connexion/decorators/response.py&#34;, line 112, in wrapper
    response = function(request)
  File &#34;/home/airflow/.local/lib/python3.8/site-packages/connexion/decorators/parameter.py&#34;, line 120, in wrapper
    return function(**kwargs)
  File &#34;/home/airflow/.local/lib/python3.8/site-packages/airflow/api_connexion/security.py&#34;, line 51, in decorated
    return func(*args, **kwargs)
  File &#34;/home/airflow/.local/lib/python3.8/site-packages/airflow/utils/session.py&#34;, line 75, in wrapper
    return func(*args, session=session, **kwargs)
  File &#34;/home/airflow/.local/lib/python3.8/site-packages/airflow/api_connexion/endpoints/dag_run_endpoint.py&#34;, line 310, in post_dag_run
    dag_run = dag.create_dagrun(
AttributeError: &#39;NoneType&#39; object has no attribute &#39;create_dagrun&#39;
```


### What you think should happen instead

should response with 404 "A specified resource is not found."

### How to reproduce

- remove existing DAG file from storage
- create a new DAG run using API endpoint /api/dags/<DAG_ID>/dag_runs for that deleted DAG

### Operating System

18.04.1 Ubuntu

### Versions of Apache Airflow Providers

_No response_

### Deployment

Official Apache Airflow Helm Chart

### Deployment details

_No response_

### Anything else

_No response_

### Are you willing to submit PR?

- [ ] Yes I am willing to submit a PR!

### Code of Conduct

- [X] I agree to follow this project's [Code of Conduct](https://github.com/apache/airflow/blob/main/CODE_OF_CONDUCT.md)

"dag_run_id": "TEST_DAG_RUN_ID_2",
                    "end_date": None,
                    "state": "running",
                    "execution_date": self.default_time_2,
                    "logical_date": self.default_time_2,
                    "external_trigger": True,
                    "start_date": self.default_time,
                    "conf": {},
                    "data_interval_end": None,
                    "data_interval_start": None,
                    "last_scheduling_decision": None,
                    "run_type": "manual",
                    "note": None,
                },
            ],
            "total_entries": 2,
        }
    def test_filter_by_state(self):
        self._create_test_dag_run()
        self._create_test_dag_run(state="queued", idx_start=3)
        response = self.client.post(
            "api/v1/dags/~/dagRuns/list",
            json={"dag_ids": ["TEST_DAG_ID"], "states": ["running", "queued"]},
            environ_overrides={"REMOTE_USER": "test"},
        )
        assert response.status_code == 200
        assert response.json["total_entries"] == 4
        assert response.json["dag_runs"][0]["state"] == response.json["dag_runs"][1]["state"] == "running"
        assert response.json["dag_runs"][2]["state"] == response.json["dag_runs"][3]["state"] == "queued"
    def test_order_by_descending_works(self):