Hi, we are a licensed agency customer and we manage 70+ WordPress sites running Greenshift. We hit a serious data-corruption bug in the 13.1.x server-side CSS engine. Reporting it in detail because it destroys live layouts and is very hard for site owners to trace.
What happens: on any editor save of a page built with older Greenshift blocks, the regenerated _gspb_post_css post meta is corrupted in two independent ways.
First issue: u002d escape sequences are not decoded. Gutenberg serializes double dashes inside block-comment JSON attributes as u002d escapes (backslash u002d, twice). The new CSS engine copies attribute values (e.g. navColor) into the generated CSS verbatim, without decoding them, producing literal color:var(u002du002dwp–preset–color–palette-color-8, …). That is invalid CSS, silently dropped by browsers, so colors, overlays and backgrounds fall back (e.g. slider nav arrows revert to the Swiper default blue). Verified on 13.1.5/13.1.6 and again on 13.1.8: a fresh slide block saved under 13.1.8 got the same u002du002d garbage in its generated rules.
Second issue: legacy-format row rules are dropped entirely. Rows using the older rowLayout format (gspb_row__col–N classes) lose their generated rules on regeneration: per-id display:flex and col–8/col–4 width rules simply disappear. On our page the stored CSS shrank from 59,128 to 37,736 characters after one save. Result: columns stacked vertically, full-width images, complete layout collapse.
Why it is worse than it looks: page caches mask the damage for days (regeneration happens at save time, visitors keep getting the cached CSS until expiry), so the layout randomly breaks long after the save that caused it and nobody connects the two. Rolling back the plugin files does NOT help: the corruption lives in the regenerated data, and any resave regenerates it broken again. The only recovery is restoring the pre-save _gspb_post_css from a database backup, which most site owners cannot do.
Environment: WP 6.9.x, PHP 8.3 (LiteSpeed), Blocksy theme, CSS management set to save in custom field. The changelog up to 13.1.9 does not mention a fix.
What we ask: decode u002d escapes when reading block attributes for server-side CSS generation; regenerate rules for legacy-format rows (or refuse to overwrite the stored CSS when blocks cannot be parsed, rather than writing a truncated version); a changelog note when fixed, so agencies know when it is safe to resave legacy pages.
Happy to provide the full before/after CSS dumps privately.
Francesco Canovi – Black Studio
Post a Reply
You must be logged in to post a comment.