{"record":{"id":"fc008dd30bcf06b7","repo":"neoclide/coc.nvim","slug":"coc-nvim-version-not-match-required-engines-co","errorCode":null,"errorMessage":"coc.nvim version not match, required ${engines['coc']}","messagePattern":"coc\\.nvim version not match, required (.+?)","errorType":"exception","errorClass":"Error","httpStatus":null,"severity":"error","filePath":"src/extension/stat.ts","lineNumber":282,"sourceCode":"  return res != null && errors.length == 0\n}\n\nfunction getEntryFile(main: string | undefined): string {\n  if (!main) return 'index.js'\n  if (!main.endsWith('.js')) return main + '.js'\n  return main\n}\n\nexport async function loadGlobalJsonAsync(folder: string, version: string): Promise<ExtensionJson> {\n  let jsonFile = path.join(folder, 'package.json')\n  let content = await readFile(jsonFile, 'utf8')\n  let packageJSON = JSON.parse(content) as ExtensionJson\n  let { engines } = packageJSON\n  let main = getEntryFile(packageJSON.main)\n  if (!engines || (typeof engines.coc !== 'string' && typeof engines.vscode !== 'string')) throw new Error('Invalid engines field')\n  let keys = Object.keys(engines)\n  if (keys.includes('coc') && !semver.satisfies(version, engines['coc'].replace(/^\\^/, '>='))) {\n    throw new Error(`coc.nvim version not match, required ${engines['coc']}`)\n  }\n  if (!engines.vscode && !fs.existsSync(path.join(folder, main))) {\n    throw new Error(`main file ${main} not found, you may need to build the project.`)\n  }\n  return packageJSON\n}\n\nexport function loadExtensionJson(folder: string, version: string, errors: string[]): ExtensionJson | undefined {\n  let jsonFile = path.join(folder, 'package.json')\n  if (!fs.existsSync(jsonFile)) {\n    errors.push(`package.json not found in ${folder}`)\n    return undefined\n  }\n  let packageJSON = loadJson(jsonFile) as ExtensionJson\n  let { name, engines } = packageJSON\n  let main = getEntryFile(packageJSON.main)\n  if (!name) errors.push(`can't find name in package.json`)\n  if (!engines || !objectLiteral(engines)) {","sourceCodeStart":264,"sourceCodeEnd":300,"githubUrl":"https://github.com/neoclide/coc.nvim/blob/50e974d9692461a69147d5cab146a8d3e439abe4/src/extension/stat.ts#L264-L300","documentation":"Thrown by loadGlobalJsonAsync when package.json declares engines.coc but the running coc.nvim version does not satisfy that range. The extension explicitly requires a different coc.nvim version.","triggerScenarios":"Loading an extension whose engines.coc range (with ^ treated as >=) is not satisfied by the current coc.nvim semver, e.g. extension requires >=1.0.0 while installed coc is 0.0.82.","commonSituations":"Outdated coc.nvim after installing a new extension; extension built for a newer coc API; running a development coc build with an older version string.","solutions":["Update coc.nvim to a version satisfying the required range (see the message)","Install an older extension release compatible with your coc.nvim","Fix/relax the engines.coc range if you maintain the extension"],"exampleFix":"// before (package.json)\n\"engines\": { \"coc\": \">=1.1.0\" }\n// after (if staying on older coc)\n\"engines\": { \"coc\": \">=0.0.80\" }","handlingStrategy":"try-catch","validationCode":"const semver = require('semver');\nconst required = pkg.engines?.coc?.replace(/^\\^/, '>=');\nif (required && !semver.satisfies(cocVersion, required)) console.warn('update coc.nvim before loading');","typeGuard":null,"tryCatchPattern":"try {\n  await coc.extensions.load(folder, true);\n} catch (e) {\n  if (String(e.message).includes('coc.nvim version not match')) {\n    console.error('Run :CocUpdate or update coc.nvim to satisfy the extension requirement');\n  } else throw e;\n}","preventionTips":["Keep coc.nvim up to date before installing new extensions","Pin extension versions compatible with your coc build","Check engines.coc range before upgrading extensions"],"tags":["extension","version-mismatch","semver"],"backgroundTag":"version-constraint-not-satisfied","analyzedSha":"50e974d9692461a69147d5cab146a8d3e439abe4","analyzedAt":"2026-08-31T11:17:23.966Z","schemaVersion":2},"datasetVersion":"2026-09-01T08:17:40.651Z"}