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
- Set "manifest_version": 3 (recommended, MV3) or 2 in src-bex/manifest.json.
- If you really need an unsupported version, proceed knowing browser APIs may misbehave and test thoroughly in the target browser.
- 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
- Use numeric 2 or 3 only — never a quoted string.
- Pin the manifest to MV3 for modern Chromium-based targets.
- Review copied manifests from other projects for exotic manifest_version values.
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
- The BEX manifest requires a "manifest_version" prop, which i
- Could not read BEX manifest. Please check its syntax.
- The file defined in bex manifest > background > service_work
- The file defined in bex manifest > background > scripts > "$
- The file defined in bex manifest > content_scripts > js > "$
AI-assisted analysis of quasarframework/quasar@4841521b5f (2026-08-30).
Data as JSON: /api/errors/15043621b96aac56.
Report an issue: GitHub.