{"record":{"id":"05c9fe3c5332f463","repo":"vitessio/vitess","slug":"there-is-no-data-sourcer-factory-with-name-s","errorCode":null,"errorMessage":"there is no data sourcer factory with name: %s","messagePattern":"there is no data sourcer factory with name: (.+?)","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"go/vt/schemamanager/schemamanager.go","lineNumber":150,"sourceCode":"\t\tout, _ := json.MarshalIndent(execResult, \"\", \"  \")\n\t\treturn execResult, fmt.Errorf(\"schema change failed, ExecuteResult: %v\", string(out))\n\t}\n\treturn execResult, nil\n}\n\n// RegisterControllerFactory register a control factory.\nfunc RegisterControllerFactory(name string, factory ControllerFactory) {\n\tif _, ok := controllerFactories[name]; ok {\n\t\tpanic(\"register a registered key: \" + name)\n\t}\n\tcontrollerFactories[name] = factory\n}\n\n// GetControllerFactory gets a ControllerFactory.\nfunc GetControllerFactory(name string) (ControllerFactory, error) {\n\tfactory, ok := controllerFactories[name]\n\tif !ok {\n\t\treturn nil, fmt.Errorf(\"there is no data sourcer factory with name: %s\", name)\n\t}\n\treturn factory, nil\n}\n","sourceCodeStart":132,"sourceCodeEnd":154,"githubUrl":"https://github.com/vitessio/vitess/blob/01a25a7d176f94613b8d59d799f438380a8760e4/go/vt/schemamanager/schemamanager.go#L132-L154","documentation":"GetControllerFactory resolves a registered controller factory by name; if the name is not in the controllerFactories registry, this error is returned. It is a configuration/lookup failure: the requested controller type does not exist in this binary.","triggerScenarios":"Calling GetControllerFactory (via initSchema/NewSchemaManager) with a controller name other than the registered ones (e.g. 'local'); typo in the controller config value.","commonSituations":"Typo like 'loca' instead of 'local'; using a controller type added in a newer vitess version on an older binary; building params programmatically with a wrong constant.","solutions":["Use a registered controller name — currently 'local' — check spelling","Verify the vitess version supports the controller type you intend","Inspect available factories via the RegisterControllerFactory call sites in schemamanager"],"exampleFix":"// before\nfactory, err := schemamanager.GetControllerFactory(\"lokal\")\n// after\nfactory, err := schemamanager.GetControllerFactory(\"local\")","handlingStrategy":"validation","validationCode":"const allowed = map[string]bool{\"local\": true}\nif !allowed[controllerName] {\n  return fmt.Errorf(\"unsupported controller %q; use 'local'\", controllerName)\n}","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Use schemamanager constants rather than raw strings for controller names","Pin vitess versions so controller types match config","List registered factories when diagnosing config errors"],"tags":["schemamanager","configuration","controller"],"backgroundTag":"unknown-config-value","analyzedSha":"01a25a7d176f94613b8d59d799f438380a8760e4","analyzedAt":"2026-09-01T17:28:30.605Z","contentChangedAt":null,"schemaVersion":2},"datasetVersion":"2026-09-08T10:18:20.063Z"}