{"record":{"id":"f9c5c97dc6871387","repo":"temporalio/temporal","slug":"translator-plugin-invalid-translator-plugin-reque","errorCode":null,"errorMessage":"translator_plugin: invalid translator plugin requested","messagePattern":"translator_plugin: invalid translator plugin requested","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"common/persistence/nosql/nosqlplugin/cassandra/translator/translator_plugin.go","lineNumber":11,"sourceCode":"package translator\n\nimport (\n\t\"errors\"\n\n\t\"github.com/gocql/gocql\"\n\t\"go.temporal.io/server/common/config\"\n)\n\nvar (\n\tErrInvalidTranslatorPluginName = errors.New(\"translator_plugin: invalid translator plugin requested\")\n\ttranslators                    = map[string]TranslatorPlugin{}\n)\n\ntype (\n\t// TranslatorPlugin interface for Cassandra address translation mechanism\n\tTranslatorPlugin interface {\n\t\tGetTranslator(*config.Cassandra) (gocql.AddressTranslator, error)\n\t}\n)\n\n// RegisterPlugin adds an auth plugin to the plugin registry\n// it is only safe to use from a package init function\nfunc RegisterTranslator(name string, plugin TranslatorPlugin) {\n\ttranslators[name] = plugin\n}\n\nfunc LookupTranslator(name string) (TranslatorPlugin, error) {\n\tplugin, ok := translators[name]","sourceCodeStart":1,"sourceCodeEnd":29,"githubUrl":"https://github.com/temporalio/temporal/blob/bde624efd13fbd3843654058db6d9c716166318b/common/persistence/nosql/nosqlplugin/cassandra/translator/translator_plugin.go#L1-L29","documentation":"ErrInvalidTranslatorPluginName is the sentinel error returned by translator.LookupTranslator when the requested plugin name has no registered TranslatorPlugin in the translators registry. Currently only the \"fixed\" plugin is registered, so any other name yields this error.","triggerScenarios":"Calling translator.LookupTranslator(name) with a name never registered via RegisterTranslator (e.g. \"fixed \" with whitespace, wrong casing, or an entirely unsupported plugin name in the config).","commonSituations":"Typo in cassandra config's addressTranslator type/name; expecting another translator implementation that does not exist in this fork/version; whitespace or case mismatch in config value.","solutions":["Use the registered plugin name, currently \"fixed\", exactly (lowercase, no whitespace)","Check available plugins via the translators registry or repo (fixed_address_translator.go's RegisterTranslator call)","If a custom translator is needed, implement TranslatorPlugin and call RegisterTranslator before LookupTranslator"],"exampleFix":"// before\ntrans, err := translator.LookupTranslator(\"FixedTranslator\")\n// after\ntrans, err := translator.LookupTranslator(\"fixed\")\n","handlingStrategy":"validation","validationCode":"name := strings.TrimSpace(cfgPluginName)\nif name != \"fixed\" { // only currently registered plugin\n    return fmt.Errorf(\"unsupported translator plugin %q; available: fixed\", cfgPluginName)\n}","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Use the literal registered name \"fixed\" in config","Check errors.Is(err, translator.ErrInvalidTranslatorPluginName) to distinguish this from other lookup failures","Trim whitespace/case-normalize config values before lookup"],"tags":["cassandra","address-translator","plugin-not-found"],"backgroundTag":"unknown-plugin-name","analyzedSha":"bde624efd13fbd3843654058db6d9c716166318b","analyzedAt":"2026-09-01T07:18:39.080Z","contentChangedAt":null,"schemaVersion":2},"datasetVersion":"2026-09-08T10:18:20.063Z"}