From fe12eadd6e664bd546cb61492b60186b073d13cc Mon Sep 17 00:00:00 2001 From: Eleazar Resendez Date: Wed, 20 Aug 2025 13:19:05 -0600 Subject: [PATCH] fix(modeler): add safeRevalidate on element drop to keep validation errors consistent - Introduced safeRevalidate method to handle validation after node placement - Trigger safeRevalidate only on onNodeDefinitionChanged to ensure errors (e.g. Call Activity without child) remain visible --- src/components/modeler/Modeler.vue | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/components/modeler/Modeler.vue b/src/components/modeler/Modeler.vue index d9747908a..6e912c2d9 100644 --- a/src/components/modeler/Modeler.vue +++ b/src/components/modeler/Modeler.vue @@ -842,6 +842,8 @@ export default { if (this.isOpenPreview) { this.handlePreview(); } + // Ensure validations are up to date when a node definition changes. + this.safeRevalidate(); }, onStartPreviewResize(event) { this.isResizingPreview = true; @@ -2555,6 +2557,16 @@ export default { } }); }, + async safeRevalidate() { + // Run bpmnlint only when auto-validate is enabled and the model is ready. + if (!this.autoValidate) return; + // Wait for Vue and JointJS to settle before validating, so we don't lose errors + await this.$nextTick(); + if (this.paperManager?.awaitScheduledUpdates) { + await this.paperManager.awaitScheduledUpdates(); + } + await this.validateBpmnDiagram(); + }, }, created() { if (runningInCypressTest()) {