Social posts now block over-limit captions before approval instead of failing at dispatch, and page publish dates must parse — bad values no longer break the page chrome.
The Social editor enforces Instagram, Threads, and X caption limits before you approve or post. Page metadata publishedAt values must be real dates — the API, AI tools, and page chrome all reject or ignore free-form strings that used to crash renders.
What changed
Social caption limits before publish
Instagram (2,200 characters), Threads (500), and X (280) have different limits. A caption that fits one platform can still fail on another.Previously, an over-limit post could be approved and only fail when the dispatcher called Chirio — often with a terse invalid_post error long after review.Now:
The Social editor shows character counts and inline errors on base and per-platform captions
Approve and Post now refuse over-limit copy with a clear message naming the platform and what to shorten
The dispatcher applies the same check as a last line of defence for older approved posts
Published at in Page settings is a display field — it does not make a page live. Agents and the pages API can write into it too.Free-form values like next Monday used to reach the page chrome and crash server rendering with an invalid date error.Now:
The v1 pages API and Quasar reject unparseable publishedAt values with a validation error
Published pages skip the timestamp in the header when a stored value cannot parse, instead of failing the whole page
Use YYYY-MM-DD (for example 2026-07-30) or leave the field empty.