{"record":{"id":"d7a09adc74e403cf","repo":"MonoGame/MonoGame","slug":"failed-to-create-processor-0","errorCode":null,"errorMessage":"Failed to create processor '{0}'","messagePattern":"Failed to create processor '(.+?)'","errorType":"exception","errorClass":"PipelineException","httpStatus":null,"severity":"error","filePath":"MonoGame.Framework.Content.Pipeline/PipelineBuilder/PipelineManager.cs","lineNumber":869,"sourceCode":"                {\n                    throw new PipelineException($\"Importer '{pipelineEvent.Importer}' had unexpected failure!\", inner);\n                }\n            }\n            else\n            {\n                var importContext = new PipelineImporterContext(this, pipelineEvent);\n                using var _ = ContextScopeFactory.BeginContext(importContext, pipelineEvent);\n                importedObject = importer.Import(pipelineEvent.SourceFile, importContext);\n            }\n\n            // The pipelineEvent.Processor can be null or empty. In this case the\n            // asset should be imported but not processed.\n            if (string.IsNullOrEmpty(pipelineEvent.Processor))\n                return importedObject;\n\n            var processor = CreateProcessor(pipelineEvent.Processor, pipelineEvent.Parameters);\n            if (processor == null)\n                throw new PipelineException(\"Failed to create processor '{0}'\", pipelineEvent.Processor);\n\n            // Make sure the input type is valid.\n            if (!processor.InputType.IsAssignableFrom(importedObject.GetType()))\n            {\n                throw new PipelineException($\"The type '{importedObject.GetType().FullName}' cannot be processed by {pipelineEvent.Processor} as a {processor.InputType.FullName}!\");\n            }\n\n            // Process the imported object.\n\n            object processedObject;\n            if (RethrowExceptions)\n            {\n                try\n                {\n                    var processContext = new PipelineProcessorContext(this, pipelineEvent);\n                    using var _ = ContextScopeFactory.BeginContext(processContext);\n                    processedObject = processor.Process(importedObject, processContext);\n                }","sourceCodeStart":851,"sourceCodeEnd":887,"githubUrl":"https://github.com/MonoGame/MonoGame/blob/1d71bbd0ff4071a03caa583aa3bc56b85924a819/MonoGame.Framework.Content.Pipeline/PipelineBuilder/PipelineManager.cs#L851-L887","documentation":"ProcessContent instantiates the processor via CreateProcessor(name, parameters) after a successful import. If that returns null (processor type not found among loaded assemblies, name null/empty, or could not be constructed), processing aborts with PipelineException. The importer succeeded; only the processor side is broken.","triggerScenarios":"pipelineEvent.Processor names a processor type CreateProcessor cannot resolve (assembly not registered, name mismatch, namespace change) or is null/empty while a processor was expected (it is non-empty so it passed the IsNullOrEmpty early-return). Throw at PipelineManager.cs:869.","commonSituations":"Processor assembly not added via AddAssembly; processor class renamed or moved in a new version; .mgcb references a processor from a package that was uninstalled; constructor of the processor threw during reflection-based instantiation causing null.","solutions":["Add the processor's assembly via manager.AddAssembly(absPath).","Confirm pipelineEvent.Processor matches the processor type name exactly (and DisplayName).","Check pipeline host log for assembly-load failures for the processor's assembly.","Rebuild/reinstall the processor package against the current MonoGame.Content.Pipeline version."],"exampleFix":"// before:\n//   // processor lives in a separate assembly not registered\n//   manager.ProcessContent(ev);\n//\n// after:\n//   manager.AddAssembly(Path.GetFullPath(\"ext/MyProcessors.dll\"));\n//   manager.ProcessContent(ev);","handlingStrategy":"validation","validationCode":"if (manager.GetProcessorType(ev.Processor) == null)\n    throw new InvalidOperationException(\n        $\"Processor '{ev.Processor}' not found. Register its assembly via AddAssembly.\");\n\nmanager.ProcessContent(ev);","typeGuard":null,"tryCatchPattern":"try { var o = manager.ProcessContent(ev); }\ncatch (PipelineException ex) when (ex.Message.StartsWith(\"Failed to create processor\"))\n{ logger.Error($\"Unknown processor '{ev.Processor}'. Did you AddAssembly its DLL?\"); }","preventionTips":["Register processor assemblies alongside their importers at startup.","Verify processor names match the type/DisplayName in .mgcb rows.","Surface assembly-load warnings so missing processors are caught early."],"tags":["content-pipeline","pipeline-manager","processor","process-content","resolution"],"backgroundTag":null,"analyzedSha":"1d71bbd0ff4071a03caa583aa3bc56b85924a819","analyzedAt":"2026-08-13T17:10:33.625Z","schemaVersion":2},"datasetVersion":"2026-08-13T19:17:28.613Z"}