{"record":{"id":"02b8f97c9c1cea3a","repo":"neoclide/coc.nvim","slug":"extension-name-is-disabled","errorCode":null,"errorMessage":"extension ${name} is disabled","messagePattern":"extension (.+?) is disabled","errorType":"exception","errorClass":"Error","httpStatus":null,"severity":"error","filePath":"src/extension/manager.ts","lineNumber":667,"sourceCode":"  public async load(filepath: string, active: boolean, options?: ExtensionLoadOptions): Promise<ExportExtension> {\n    let name: string\n    if (options?.sourceCode) {\n      let extensionRoot = options.extensionRoot ?? filepath\n      let obj = loadJson(path.join(extensionRoot, 'package.json')) as any\n      name = obj.name\n      if (!name) throw new Error(`Unable to load extension at ${extensionRoot}, missing package.json`)\n      await this.unloadExtension(name)\n      await this.registerExtension(extensionRoot, obj, ExtensionType.Local, true, options)\n    } else if (isDirectory(filepath)) {\n      let obj = loadJson(path.join(filepath, 'package.json')) as any\n      name = obj.name\n      await this.loadExtension(filepath, true)\n    } else {\n      name = await this.loadExtensionFile(filepath, true)\n    }\n    if (!name) throw new Error(`Unable to load extension at ${filepath}`)\n    let disabled = this.states.isDisabled(name)\n    if (disabled) throw new Error(`extension ${name} is disabled`)\n    let item = this.getExtension(name)\n    if (active) await this.activate(name)\n    return {\n      get isActive() {\n        return item.extension.isActive\n      },\n      get name() {\n        return name\n      },\n      get api() {\n        return item.extension.exports\n      },\n      get exports() {\n        let module = item.extension.module ?? {}\n        return omit(module, ['activate'])\n      },\n      get _exports() {\n        return global.__isMain ? undefined : item.extension.module","sourceCodeStart":649,"sourceCodeEnd":685,"githubUrl":"https://github.com/neoclide/coc.nvim/blob/50e974d9692461a69147d5cab146a8d3e439abe4/src/extension/manager.ts#L649-L685","documentation":"Thrown by ExtensionManager.load() when the extension loaded successfully but is listed in the user's disabled extensions state. coc refuses to load/activate it and reports the name.","triggerScenarios":"Calling coc.extensions.load() for an extension whose name appears in coc.extensions.disabled-extensions (or previously disabled via coc.extensions.toggle), so states.isDisabled(name) is true.","commonSituations":"User disabled the extension earlier via :CocList extensions; loading an extension from config that was intentionally disabled; automated scripts loading a disabled extension.","solutions":["Enable the extension: :CocList extensions then toggle it on, or remove it from disabled list via `coc.extensions.toggle(name)`","Remove the extension name from the disabled-extensions configuration/state","Choose a different extension name if a conflict with a disabled one is unintended"],"exampleFix":null,"handlingStrategy":"validation","validationCode":"const name = getExtensionName(filepath); // from package.json\nif (coc.extensions.isDisabled(name)) await coc.extensions.toggle(name); // or abort","typeGuard":null,"tryCatchPattern":"try {\n  await coc.extensions.load(filepath, true);\n} catch (e) {\n  if (String(e.message).endsWith(' is disabled')) {\n    const name = String(e.message).match(/extension (.+) is disabled/)?.[1];\n    if (name) await coc.extensions.toggle(name);\n  } else throw e;\n}","preventionTips":["Check disabled-extensions list before scripted loads","Avoid disabling extensions you auto-load at startup"],"tags":["extension","disabled","configuration"],"backgroundTag":"extension-disabled","analyzedSha":"50e974d9692461a69147d5cab146a8d3e439abe4","analyzedAt":"2026-08-31T11:17:23.966Z","schemaVersion":2},"datasetVersion":"2026-09-01T08:17:40.651Z"}