FLX-1005¶
the node name 'orderRouter' is already used by another node
| Severity | ERROR |
| Category | GRAPH_MODEL |
| Element | NODE |
The rule¶
Every node has a unique name in the generated processor.
Why the compiler says this¶
This name was SUPPLIED, and that is the only way it can collide. A node added without a name is given a generated one that cannot clash, so two unnamed nodes of the same class are fine — the reason to name a node is to make it externally addressable afterwards, through getNodeById(name), a service lookup, or the id that appears in audit records and GraphML. Fluxtion writes one field per node into the generated source using that name, so two nodes cannot both claim it, and picking a winner silently would leave whichever was added last answering to a name the other node's author is also using.
How to fix it¶
If you did not need this node addressable by name, drop the name and let Fluxtion generate one — that is the simplest repair and it is often the right one, because a name only earns its keep when something looks the node up. If both nodes genuinely need addressing, give them distinct names: @Named, the builder's addNode(node, "name") overload, or the Spring bean id. Note that renaming a node changes the id it answers to in getNodeById, audit records and GraphML, so change the callers with it.
Which builds raise it¶
Every build path — interpreted, in-process and AOT alike.
Reading it programmatically¶
This diagnostic is also written to the machine-readable report — the opt-in sidecar (-Dfluxtion.diagnostics.sidecar=true), or FluxtionDiagnostics.capture(...) for a caller that wants the objects:
{
"code": "FLX-1005",
"severity": "ERROR",
"category": "GRAPH_MODEL",
"element": { "kind": "NODE", … }
}
Select findings by severity, never by position: a failing build's report also contains any warnings it found, and diagnostics[0] is not the cause of the failure.
This page is generated from the compiler itself, so the wording above is exactly what a build emits. Do not edit it by hand — it is overwritten whenever the diagnostics are regenerated.