badges/shields · info · NotFound

not set for this ${extensionType}

Error message

not set for this ${extensionType}

What it means

The WordPress 'requires at least' (platform) service throws NotFound with message 'not set for this <extensionType>' when the plugin/theme metadata returns requires: false, meaning the author has not declared a minimum WordPress version. This is a legitimate 'not set' state, not a missing resource.

Source

Thrown at services/wordpress/wordpress-platform.service.js:55

          parameters: pathParams({
            name: 'slug',
            example: exampleSlug,
          }),
        },
      }
      return route
    }

    static defaultBadgeData = { label: 'wordpress' }

    async handle({ slug }) {
      const { requires: wordpressVersion } = await this.fetch({
        extensionType,
        slug,
      })

      if (wordpressVersion === false) {
        throw new NotFound({
          prettyMessage: `not set for this ${extensionType}`,
        })
      }

      return renderVersionBadge({ version: wordpressVersion })
    }
  }
}

class WordpressPluginTestedVersion extends BaseWordpress {
  static category = 'platform-support'

  static route = {
    base: 'wordpress/plugin/tested',
    pattern: ':slug',
  }

  static openApi = {

View on GitHub (pinned to 766fd8bc89)

Solutions

  1. Verify on wordpress.org whether the plugin lists a 'Requires at least' version; if not, the author must set it
  2. Ask the plugin author to add the 'Requires at least' header to readme.txt
  3. Use a generic version badge or remove the badge if the metadata cannot be fixed
  4. Check you are using the right slug and extensionType in the badge URL
Defensive patterns

Strategy: type-guard

Validate before calling

const meta = await fetch(`https://api.wordpress.org/plugins/info/1.0/${slug}.json`).then(r => r.json())
if (!meta || !meta.requires) console.warn('plugin does not declare a minimum WordPress version');

Type guard

function hasRequires(meta) { return typeof meta?.requires === 'string' && meta.requires.length > 0 }

Try / catch

try {
  const badge = await wpPlatform.handle({ extensionType, slug })
} catch (e) {
  if (e.message.endsWith('not set for this plugin')) {
    // show 'wordpress | N/A' instead of a version
  } else throw e
}

Prevention

When it happens

Trigger: The queried plugin/theme exists on wordpress.org but its readme/metadata omits the 'Requires at least' header, so requires === false.

Common situations: Minimal or poorly-maintained plugins that skip the 'Requires at least' header in readme.txt, custom/self-hosted plugins never published with full metadata.

Related errors


AI-assisted analysis of badges/shields@766fd8bc89 (2026-08-30). Data as JSON: /api/errors/0c5a43f7916093b2. Report an issue: GitHub.