Oleg Isonen 8e4c080d95 fix: publish projects with legacy settings (#6480)
Publishing a legacy project can fail immediately with `Invalid input:
expected object, received null`. The editor reads settings from the
legacy `pages` field when `projectSettings` is SQL NULL, but the publish
snapshot check did not apply that fallback.

Read legacy settings from the saved production snapshot when needed,
preserving the custom-header plan check and its protection against
concurrent edits. No database migration or diagnostic logging is
included.

Verified through a read-only production database inspection and an
isolated reproduction using the affected build row: the previous code
throws the exact reported error before calling the publisher; the fix
reaches the isolated publisher. No production publishing was performed.

- [x] Reproduce the production failure using the original stored row.
- [x] Add regression tests for legacy settings and custom-header plan
enforcement; verify both fail before the fix and pass afterward.
- [x] Pass 40 build tests, 24 domain tests, project-build typecheck,
lint, and formatting checks.
- [x] Review documentation impact: existing publishing and header
behavior is unchanged; no documentation update is needed.
- [x] Verify all 42 CI checks, including six Builder end-to-end groups,
Linux/Windows fixture checks, and staging deployment.

Staging: https://pub.staging.webstudio.is

Production data repair, if approved, is separate from this code change.
2026-09-30 16:03:21 +02:00
2026-07-12 11:27:58 +02:00
2026-09-02 22:25:11 +02:00
2026-02-05 10:25:17 +01:00
2026-03-20 21:09:47 +01:00
…
2026-09-02 22:25:11 +02:00

builder-screenshot

Webstudio is an Open Source Visual Development Platform for developers, designers, and cross-functional teams. You own the data, components, and infrastructure. You can use the hosted version or roll out your own.


Learning Resources

Social Media

License

  • Webstudio core (all functionality in this repository) is free/open-source under AGPL-3.0-or-later.
  • sdk-components-animation package (optional) is proprietary. You must accept the Webstudio, Inc. EULA located in sdk-components-animation/LICENSE before using it.
Languages
TypeScript 98.9%
PLpgSQL 0.5%
CSS 0.3%
Shell 0.2%
JavaScript 0.1%