quasarframework/quasar · warning

The bex manifest version specified (${json.manifest_version}

Error message

The bex manifest version specified (${json.manifest_version}) is NOT yet officially supported by Quasar CLI. Things might go wrong.

What it means

createManifest officially supports manifest_version 2 and 3. If the merged manifest declares any other manifest_version value, Quasar CLI warns that the version is not officially supported and that things might go wrong, but continues the build after calling extendBexManifestJson.

Source

Thrown at app-vite/lib/modes/bex/bex-utils.js:57

  }
  if (json.version === void 0) {
    json.version = version
  }

  if (json.manifest_version === 2) {
    json.browser_action ||= {}

    if (json.browser_action.default_title === void 0) {
      json.browser_action.default_title = json.name
    }
  } else if (json.manifest_version === 3) {
    json.action ||= {}
    if (json.action.default_title === void 0) {
      json.action.default_title = json.name
    }
  } else {
    warn()
    warn(
      `The bex manifest version specified (${json.manifest_version}) is NOT yet officially supported by Quasar CLI. Things might go wrong.`
    )
    warn()
  }

  if (typeof quasarConf.bex.extendBexManifestJson === 'function') {
    const overrides = await quasarConf.bex.extendBexManifestJson(json)
    if (Object(overrides) === overrides) {
      json = merge({}, json, overrides)
    }
  }

  await quasarConf.ctx.appExt.runAppExtensionHook(
    'extendBexManifestJson',
    async hook => {
      hook.api.logger.log(`Running "extendBexManifestJson(json)"`)
      const overrides = await hook.fn(json, hook.api)
      if (Object(overrides) === overrides) {

View on GitHub (pinned to 4841521b5f)

Solutions

  1. Set "manifest_version": 3 (recommended, MV3) or 2 in src-bex/manifest.json.
  2. If you really need an unsupported version, proceed knowing browser APIs may misbehave and test thoroughly in the target browser.
  3. Ensure the value is a number, not a string (the check compares against numeric versions).

Example fix

// before (src-bex/manifest.json)
{ "manifest_version": "3" }
// after
{ "manifest_version": 3 }
Defensive patterns

Strategy: validation

Validate before calling

const v = require('./src-bex/manifest.json').all?.manifest_version
if (typeof v !== 'number' || ![2, 3].includes(v)) {
  throw new Error(`Unsupported manifest_version: ${JSON.stringify(v)}; use 2 or 3 (number)`)
}

Type guard

const isSupportedManifestVersion = (v) => typeof v === 'number' && (v === 2 || v === 3)

Prevention

When it happens

Trigger: src-bex/manifest.json sets "manifest_version" to a value other than 2 or 3 (e.g. 4, a string like "3", or a typo'd number); the else branch after the v2/v3 handling emits the warning.

Common situations: Experimental/newer WebExtension manifest versions copied from browser documentation; manifest_version accidentally quoted as a string; typos like manifest_version: 13.

Related errors


AI-assisted analysis of quasarframework/quasar@4841521b5f (2026-08-30). Data as JSON: /api/errors/15043621b96aac56. Report an issue: GitHub.