How to avoid post / page "UPDATE_COLLISION" Error

When updating posts or page with the Admin API, Ghost expects you to send the updated_at field with the current updated_at value of that Post or Page.


This is only the case for Post and Page, and is a limitation from the Ghost API unfortunately.

If you don't send this field, you will get an UPDATE_COLLISION error. Here is an example workflow where we fetch the Post first and then update it:

import { TSGhostAdminAPI } from "@ts-ghost/admin-api";
const api = new TSGhostAdminAPI(env.GHOST_URL, env.GHOST_ADMIN_API_KEY, "v5.0");
const result = await api.posts
    slug: "coming-soon",
if (!result.success) {
  throw new Error(result.errors.join(", "));
const post =;
const postEditResult = await api.posts.edit(, {
  custom_excerpt: "Modified excerpt from ghost",
  updated_at: new Date(post.updated_at || ""),