Postponed (maintainer needs more info)
Project:
Drupal Canvas
Version:
1.x-dev
Component:
Page builder
Priority:
Critical
Category:
Task
Assigned:
Reporter:
Created:
18 Jun 2025 at 12:47 UTC
Updated:
27 Oct 2025 at 16:20 UTC
Jump to comment: Most recent, Most recent file
Comments
Comment #3
wim leersSee the 2 "FAIL" test cases in the report by @neha_bawankar at #3528396-26: Video prop shape: e2e test coverage for video from media library the component instance form + fix revealed bug in evaluating `StaticPropSource`s.
I explained in #3528396-27: Video prop shape: e2e test coverage for video from media library the component instance form + fix revealed bug in evaluating `StaticPropSource`s why those are both symptoms of this issue not being solved.
Comment #5
wim leersThis is something @effulgentsia, @bnjmnm, I and possibly others discussed before this issue was created.
@lauriii wasn't around then. It came up again a few days ago. Thanks to @neha_bawankar the very confusing impact for content authors is now much clearer.
Time for Lauri to chime in and to work with designers to articulate a way forward here.
Comment #6
larowlanPer #3529788-32: Required `type: string` (without other constraints, so "prose strings") props should fall back to empty string (even though invalid) while Content Author is typing, to allow matching live preview in most cases we also need to take into account when zend.assertions are set to 1 as that will also cause a render fail from
\Drupal\Core\Template\ComponentsTwigExtension::validatePropswhich is dynamically injected into each component's twig template via\Drupal\Core\Template\ComponentNodeVisitorEven if XB doesn't validate component input when creating the preview, that code will when
assertis enabled.We could either:
assertis enabled messagingI would vote for the first option as having to disable assert during development could be silently muting other errors
Comment #7
isholgueras commentedIf the issue is theCould we change only this assert with a regularifif we're in preview? Something like this draft code:I'm probably missing something but that's the onlyassertwe need to sort, right?I was completely wrong. The assert is the one that Lee is describing, from Core, in
Comment #8
wim leers#6: Ah, of course, that is what we missed in #3517966: Failing kernel tests for all ways a component source can fail to render on the server side and #3485878: Server-rendered component instances should NEVER result in a user-facing error, should fall back to a meaningful error instead (+ log) 😬
+1 for the proposal in #6 … except that that will then result in everything looking while to the content author while editing, but will result in a component instance failing to render on the live site? 😅 Or what am I missing?
Comment #9
larowlanIt will depend on the twig file.
Something like a missing title here
Would be white, but in other cases, there might be a fatal
We won't get to live site, because validation will prevent publishing
Comment #10
larowlanComment #11
wim leersOh, right. Great, then #6 is a solid plan! 👍 Thanks :)
Comment #12
bnjmnmThe

3530795-validation-renderbranch has an approach that looks like this:The screenshot was taken before we added support to gracefully handle empty required fields - mentally replace that message with any of the many possible render-crashing errors that can't be handled so smoothly. The design is just rough, the main things to note is the unrenderable component has a clear message in its place, and the guilty prop input is correctly highlighted as invalid.
Comment #13
wim leersThanks, Ben!
Comment #14
wim leersDiscussed in meeting with @callumharrod, @lauriii and @bnjmnm. There's some more clarity now, but still plenty left to be clarified. @callumharrod is working on expanded designs to demonstrate how this is expected to work:
Comment #15
effulgentsia commentedIs the "preview LIES" part of this issue title still accurate? The way I read the comment linked in #3 is that there are situations where you can publish something while it still have invalid values. If those cases still exist, shouldn't those be separate issues? Meanwhile, if you can't publish with invalid values, then what do we mean by the preview lying?
Comment #16
effulgentsia commentedComment #17
effulgentsia commentedDiscussed this with @lauriii and seems like the stable blocking parts of this have already landed so what remains doesn't need to block a stable release.