My post won't publish — how do I fix it?
Check the post status in admin first, then look for autosave conflicts, scheduling issues, or a body validation error; here's how to fix each one.
You hit Publish, the button spinner runs for a moment, and then... nothing. The post is still sitting in Draft, or it says Scheduled but never actually appeared. It's one of those small failures that feels disproportionately frustrating, especially if you have a timed announcement to make. Here are the exact things to check, in order, to get your post live.
First — check the post status in admin
Go to Admin → Posts and look at the Status column next to your post. The possible states are Draft, Review, Scheduled, Published, and Archived. If it still says Draft after you clicked Publish, the publish did not go through — see the next section. If it says Scheduled with a future date, the post is fine — it's just not live yet by design.
Scheduled posts go live within about 5 minutes of their scheduled time, not exactly on the dot. VeloCMS publishes scheduled posts with a background job that runs every 5 minutes. If your post is a few minutes late, wait for the next run and hard-refresh the public URL before diagnosing further.
Stuck in Draft after clicking Publish
The most common cause is a required field left empty. VeloCMS requires a title and at least one paragraph of body content before publishing. If either is missing the save action fails silently in some browser versions. Open the post in the editor and look for a red outline around the title field or a warning banner at the top of the editor panel. Fill in the missing content and try again.
- Title field empty or contains only whitespace — VeloCMS strips leading/trailing spaces before validating.
- Post body contains only whitespace nodes — type a real paragraph, even a placeholder, then publish.
- Feature image URL is malformed — if you pasted an external image URL manually, remove it and re-upload via the media picker.
- Slug conflict — two posts with the same slug cannot coexist. VeloCMS appends a number automatically, but if you manually edited the slug to match an existing one, change it.
Autosave conflicts blocking publish
VeloCMS autosaves 2 seconds after you stop typing. If your browser tab went offline mid-edit and came back, the local state and the server state can diverge. The editor tracks this with a save status that moves between Unsaved, Saving, and Saved — before hitting Publish, make a small edit, wait two seconds, and confirm the status returns to Saved, which proves your current content reached the server. If it stays on Unsaved, copy your content somewhere safe, reload the page, and paste it back before publishing.
If you have multiple browser tabs open with the same post, close all but one before publishing. Two tabs writing simultaneously will produce a last-write-wins conflict and one set of changes will be silently dropped.
Scheduled post not going live at the right time
Scheduled publishing uses the timezone set in Admin → Settings → Advanced → Timezone. If your blog timezone is set to UTC but you entered 9:00 AM thinking it was your local time (say, EST which is UTC-5), the post will go live 5 hours later than you expected. The post editor's Schedule picker shows the blog's configured timezone abbreviation next to the time you enter — check it before confirming, especially if you and your blog are in different timezones.
- Verify Admin → Settings → Advanced → Timezone matches your intended timezone.
- If you changed timezone after scheduling posts, those posts still use the time as originally stored in UTC. Reschedule them explicitly.
- Daylight saving time transitions can shift scheduled times by one hour if you scheduled across a DST boundary.
- Railway (the hosting platform) runs on UTC. The scheduler is server-side, so it respects UTC regardless of your local browser timezone.
Still stuck? Go to Admin → Observability and look for a red error line timestamped around when you tried to publish. Copy the error message and send it to [email protected] — that's the fastest path to a fix.