You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airflow.apache.org by "fahadabdul (via GitHub)" <gi...@apache.org> on 2026/04/02 08:56:50 UTC
[I] Asset graph blank when DAG contains TriggerDagRunOperator, unregistered "trigger" node type in frontend causes silent render failure [airflow]
fahadabdul opened a new issue, #64621:
URL: https://github.com/apache/airflow/issues/64621
### Apache Airflow version
3.1.7+astro.2
### What happened and how to reproduce it?
When a DAG contains a `TriggerDagRunOperator`, the asset dependency graph API returns nodes with `"type": "trigger"`. The Airflow 3 frontend asset graph renderer does not have a registered component for the `trigger` node type, causing the entire graph to render blank with no error shown.
Reproduction Steps:
1. Create the following two DAGs and a shared assets file:
assets_test.py:
```
from airflow.sdk import Asset
test_asset = Asset(name="test_asset")
trigger_test_asset = Asset(name="trigger_test_asset")
```
producer_no_trigger.py (graph renders correctly):
```
from airflow.sdk import DAG
from airflow.providers.standard.operators.python import PythonOperator
from datetime import datetime
from dags.assets_test import test_asset
with DAG(dag_id="producer_no_trigger", schedule=None, start_date=datetime(2021,1,1), catchup=False):
PythonOperator(task_id="emit", python_callable=lambda: None, outlets=[test_asset])
```
producer_with_trigger.py (graph does NOT render):
```
from airflow.sdk import DAG
from airflow.providers.standard.operators.python import PythonOperator
from airflow.providers.standard.operators.trigger_dagrun import TriggerDagRunOperator
from datetime import datetime
from dags.assets_test import trigger_test_asset
with DAG(dag_id="producer_with_trigger", schedule=None, start_date=datetime(2021,1,1), catchup=False):
emit = PythonOperator(task_id="emit", python_callable=lambda: None, outlets=[trigger_test_asset])
trigger = TriggerDagRunOperator(task_id="trigger_something", trigger_dag_id="some_dag", wait_for_completion=False)
emit >> trigger
```
2. Deploy all files and wait for them to parse
3. Go to Assets tab → click `test_asset `→ graph renders correctly
4. Go to Assets tab → click `trigger_test_asset` → graph is blank
The difference in the dependency API responses confirms the root cause:
test_asset (graph renders) dependency API response:
```
{
"edges": [
{
"source_id": "dag:producer_no_trigger",
"target_id": "asset:10"
}
],
"nodes": [
{
"id": "dag:producer_no_trigger",
"label": "producer_no_trigger",
"type": "dag"
},
{
"id": "asset:10",
"label": "test_asset",
"type": "asset"
}
]
}
```
trigger_test_asset (graph blank) dependency API response:
```
{
"edges": [
{
"source_id": "dag:producer_with_trigger",
"target_id": "asset:9"
},
{
"source_id": "dag:producer_with_trigger",
"target_id": "trigger:producer_with_trigger:some_dag:trigger_something"
},
{
"source_id": "trigger:producer_with_trigger:some_dag:trigger_something",
"target_id": "dag:some_dag"
}
],
"nodes": [
{
"id": "dag:producer_with_trigger",
"label": "producer_with_trigger",
"type": "dag"
},
{
"id": "asset:9",
"label": "trigger_test_asset",
"type": "asset"
},
{
"id": "trigger:producer_with_trigger:some_dag:trigger_something",
"label": "trigger_something",
"type": "trigger"
}
]
}
```
### What you think should happen instead?
The asset graph should render `trigger` type nodes visually. Currently the entire graph fails to render silently when any `trigger` type node is present in the response.
### Operating System
Debian GNU/Linux 12 (bookworm)
### Versions of Apache Airflow Providers
```apache-airflow-providers-celery==3.16.0
apache-airflow-providers-common-compat==1.13.1
apache-airflow-providers-common-io==1.7.1
apache-airflow-providers-common-sql==1.31.0
apache-airflow-providers-elasticsearch==6.4.4
apache-airflow-providers-openlineage==2.10.2
apache-airflow-providers-smtp==2.4.2
apache-airflow-providers-standard==1.11.1
```
### Deployment
Astronomer
### Deployment details
Astronomer Runtime 3.1-13 based on Apache Airflow 3.1.7+astro.2
### Anything else?
Confirmed from Airflow source code that `trigger` is not a registered node type in the frontend.
In `airflow-core/src/airflow/ui/src/components/Graph/graphTypes.ts` at `https://github.com/apache/airflow/blob/main/airflow-core/src/airflow/ui/src/components/Graph/graphTypes.ts`:
```
typescriptexport const nodeTypes = {
asset: AssetNode,
"asset-alias": AliasNode,
"asset-condition": AssetConditionNode,
"asset-name-ref": DefaultNode,
"asset-uri-ref": DefaultNode,
dag: DagNode,
join: JoinNode,
task: TaskNode,
};
```
### 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)
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@airflow.apache.org.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [I] Asset graph blank when DAG contains TriggerDagRunOperator, unregistered "trigger" node type in frontend causes silent render failure [airflow]
Posted by "laurenhall1526-netizen (via GitHub)" <gi...@apache.org>.
laurenhall1526-netizen commented on issue #64621:
URL: https://github.com/apache/airflow/issues/64621#issuecomment-4189440440
Nice catch — that lines up with what I’m seeing too.
+1 on using DefaultNode as a fallback for trigger to unblock rendering.
That seems like a reasonable quick fix, and we can always add a proper
TriggerNode later if needed.
On Sat, Apr 4, 2026, 9:36 PM Subham ***@***.***> wrote:
> *Subham-KRLX* left a comment (apache/airflow#64621)
> <https://github.com/apache/airflow/issues/64621#issuecomment-4188136539>
>
> The issue stems from the missing trigger node type registration in the UI
> which causes React Flow to fail silently and blank out the canvas A quick
> way to fix this is to fallback to DefaultNode for trigger node
> In airflow-core/src/airflow/ui/src/components/Graph/graphTypes.ts:ts
>
> export const nodeTypes = {
> asset: AssetNode,
> "asset-alias": AliasNode,
> "asset-condition": AssetConditionNode,
> "asset-name-ref": DefaultNode,
> "asset-uri-ref": DefaultNode,
> dag: DagNode,
> join: JoinNode,
> task: TaskNode,
> trigger: DefaultNode
> }; This will restore the entire graph Since you mentioned being open to
> submitting a PR using DefaultNode here is a perfect starting point We can
> always enhance it with a dedicated component later if needed.
>
> —
> Reply to this email directly, view it on GitHub
> <https://github.com/apache/airflow/issues/64621#issuecomment-4188136539>,
> or unsubscribe
> <https://github.com/notifications/unsubscribe-auth/B7IHA463J6L3MKQ6LKIX5N34UHBEPAVCNFSM6AAAAACXKJ3WYSVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHM2DCOBYGEZTMNJTHE>
> .
> You are receiving this because you are subscribed to this thread.Message
> ID: ***@***.***>
>
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@airflow.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [I] Asset graph blank when DAG contains TriggerDagRunOperator, unregistered "trigger" node type in frontend causes silent render failure [airflow]
Posted by "bbovenzi (via GitHub)" <gi...@apache.org>.
bbovenzi closed issue #64621: Asset graph blank when DAG contains TriggerDagRunOperator, unregistered "trigger" node type in frontend causes silent render failure
URL: https://github.com/apache/airflow/issues/64621
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@airflow.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [I] Asset graph blank when DAG contains TriggerDagRunOperator, unregistered "trigger" node type in frontend causes silent render failure [airflow]
Posted by "Subham-KRLX (via GitHub)" <gi...@apache.org>.
Subham-KRLX commented on issue #64621:
URL: https://github.com/apache/airflow/issues/64621#issuecomment-4188136539
The issue stems from the missing trigger node type registration in the UI which causes React Flow to fail silently and blank out the canvas A quick way to fix this is to fallback to DefaultNode for trigger node
In airflow-core/src/airflow/ui/src/components/Graph/graphTypes.ts:ts
export const nodeTypes = {
asset: AssetNode,
"asset-alias": AliasNode,
"asset-condition": AssetConditionNode,
"asset-name-ref": DefaultNode,
"asset-uri-ref": DefaultNode,
dag: DagNode,
join: JoinNode,
task: TaskNode,
trigger: DefaultNode
}; This will restore the entire graph Since you mentioned being open to submitting a PR using DefaultNode here is a perfect starting point We can always enhance it with a dedicated component later if needed.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@airflow.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org