Errors produced inside a container's subflow were remapped to the
container (entity=container, id=containerId, field=specificConfiguration.subFlow)
but the inner element's own id was overwritten and lost, so a client
could tell WHICH container had a problem but not WHICH inner node/
connection. And a LoopContainer's guardSubFlow errors only surfaced as
a single CONTAINER_SUBFLOW_INVALID whose message was a nested JSON blob.
- remapSubFlowErrors now preserves the offending inner element's id in
relatedNodeIds (deduped, forward of any it already carried), so the UI
can highlight the specific inner node/connection when the container is
opened - not just the container.
- The guard subflow is now recursed and exploded the same way as the
body (field specificConfiguration.guardSubFlow), so guard errors come
through as individual, typed, node-pointed errors instead of a nested
JSON blob. No-op for a valid (backend-generated) guard, so no
regression for normal flows.
Test: a container whose subflow has a dangling inner connection saves as
a draft, and GET /flows/{id}/validation reports the error with
entity=container, the container id, field=specificConfiguration.subFlow,
and the inner connection id in relatedNodeIds. 446/446 (excl. the known
loop-timing flake).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
||
|---|---|---|
| .mvn/wrapper | ||
| src | ||
| .gitattributes | ||
| .gitignore | ||
| Dockerfile | ||
| mvnw | ||
| mvnw.cmd | ||
| ollama-preloaded-docker | ||
| pom.xml | ||