Relationships
#2493 model validate log output misaligns multi-entry Expression paths errors
Opened by hammz · 9/24/2026· Shipped 9/29/2026
What happens
In log mode, swamp model validate renders a failing Expression paths check with a misaligned list. The first entry is glued to the arrow and the rest are indented differently:
x Expression paths
-> - {{host.name}}
Expression uses {{...}} instead of ... at monitorName
Add prefix ...
- {{host.name}}
Expression uses ...formatExpressionPathErrors in src/domain/models/validation_service.ts pre-formats each entry with its own two-space indent and a dash, and joins them with newlines. formatValidationLines in src/presentation/renderers/model_validate.ts then prefixes the whole multi-line string with ->. So only the first line gets the arrow, and the continuation lines keep the domain layer's indent instead of the renderer's.
Expected
Every entry aligned under the check, with continuation lines indented consistently. Presentation formatting belongs in the renderer rather than baked into the domain error string.
Found during triage of #2424. Any model with two or more Expression paths errors shows it.
Also: print the shared fix once
Since #2424, every dropped-dollar and single-brace error in Expression paths carries the same two-part fix (declare the field foreignTemplate, or build the braces with CEL concatenation). A definition with several colliding values, such as Argo {{workflow.name}} in many places, repeats that text once per error. Print the shared fix once after the list of entries. Raised by the UX review of #2424.
Shipped
Click a lifecycle step above to view its details.
Sign in to post a ripple.