Higher Quality, Stronger Performance, Increased Stability, Better Developer Experience, discover everything we've shipped recently!

Strapi plugin logo for Publish Media Validation

Publish Media Validation

Enforces required media fields at publish time in Strapi v5, filling the gap left by the native validation limitation

thumbnail for Publish Media Validation

strapi-plugin-publish-media-validation

A Strapi v5 plugin that enforces required: true on media fields at publish time.

Why this exists

Strapi v5 validates required: true on scalar fields (string, integer, etc.) when publishing, but skips that check for media fields (type: "media"). This means a content manager can publish an entry with a missing required banner, thumbnail, or any other required image/file — even though the field is marked as required in the schema.

This plugin intercepts the Document Service publish action and blocks it if any required media field is empty, returning a clear error message instead of silently allowing the publish.

Installation

npm install strapi-plugin-publish-media-validation
# or
yarn add strapi-plugin-publish-media-validation
# or
pnpm add strapi-plugin-publish-media-validation

pnpm users

Because @strapi/utils is a peer dependency and pnpm does not hoist packages by default, you also need to add it as a direct dependency:

pnpm add @strapi/utils

Usage

No configuration needed. Once installed, the plugin automatically scans every content type's schema on publish and blocks any entry where a required: true media field is empty.

Example schema:

{
  "banner": {
    "type": "media",
    "multiple": false,
    "required": true,
    "allowedTypes": ["images"]
  }
}

If you try to publish without a banner, the admin panel will show:

The following required media fields are empty: Banner

How it works

The plugin registers a Document Service middleware that:

  1. Runs on every publish action across all content types
  2. Reads the model schema to find type: "media" fields with required: true
  3. Fetches the draft document and checks each required media field
  4. Throws a ValidationError listing any empty fields, which Strapi maps to a 400 response with the message shown in the admin UI

Compatibility

Strapi versionSupported
v5.x
v4.x

Install now

npm install strapi-plugin-publish-media-validation

STATS

No GitHub star yet506 weekly downloads

Last updated

6 days ago

Strapi Version

>=5.0.0

Useful links

Create your own plugin

Check out the available plugin resources that will help you to develop your plugin or provider and get it listed on the marketplace.