eslint/eslint · error
Key "processor": Could not find "${localProcessorName}" in p
Error message
Key "processor": Could not find "${localProcessorName}" in plugin "${pluginName}". What it means
Thrown as a TypeError in the Config constructor (config.js:534) when `processor` is a string but the referenced plugin/processor cannot be resolved. The lookup is plugins[pluginName].processors[localProcessorName]; missing plugin, missing `processors`, or a wrong processor name all trigger it.
Source
Thrown at lib/config/config.js:534
}
// Check processor value
if (processor) {
this.processor = processor;
if (typeof processor === "string") {
const { pluginName, objectName: localProcessorName } =
splitPluginIdentifier(processor);
this.#processorName = processor;
if (
!plugins ||
!plugins[pluginName] ||
!plugins[pluginName].processors ||
!plugins[pluginName].processors[localProcessorName]
) {
throw new TypeError(
`Key "processor": Could not find "${localProcessorName}" in plugin "${pluginName}".`,
);
}
this.processor =
plugins[pluginName].processors[localProcessorName];
} else if (typeof processor === "object") {
this.#processorName = getObjectId(processor);
this.processor = processor;
} else {
throw new TypeError(
"Key 'processor' must be a string or an object.",
);
}
}
// Process the rules
if (this.rules) {View on GitHub (pinned to f131c034ad)
Solutions
- Add the plugin providing the processor to `plugins`.
- Confirm the processor key: `console.log(Object.keys(plugin.processors))`.
- Check spelling and version of the plugin; processors are sometimes renamed across majors.
Example fix
// before
{ processor: 'markdown/markdown', plugins: {} }
// after
import markdown from 'eslint-plugin-markdown';
{ processor: 'markdown/markdown', plugins: { markdown } } Defensive patterns
Strategy: validation
Validate before calling
function resolveProcessor(plugins, processor) {
const [pluginName, name] = processor.split('/');
return !!plugins?.[pluginName]?.processors?.[name];
} Type guard
null
Try / catch
try { new Config(block); }
catch (e) {
if (/Key "processor".*Could not find/.test(e.message)) { /* add plugin */ }
} Prevention
- Register the plugin providing each processor in the same block.
- Confirm processor names against the plugin's current export list.
- Re-test configs after major plugin upgrades.
When it happens
Trigger: Setting `processor: 'foo/bar'` where plugin 'foo' is absent, or 'foo' exists but exports no `processors.bar`. Also typos/renames after a plugin upgrade.
Common situations: Referencing a processor (e.g. markdown processor) without registering its plugin; using the preprocessor name from an older plugin version; copy-pasting a config snippet whose plugin wasn't added.
Related errors
- Key "language": Could not find "${localLanguageName}" in plu
- Key 'processor' must be a string or an object.
- Key 'language' is required.
- Could not serialize processor object (missing 'meta' object)
- Expected string in the form "pluginName/${memberPlaceholder}
AI-assisted analysis of eslint/eslint@f131c034ad (2026-08-03).
Data as JSON: /data/errors/ff9ea9f1b58426e9.json.
Report an issue: GitHub.