{"record":{"id":"74193a1231ff60ec","repo":"golangci/golangci-lint","slug":"plugin-does-not-abide-by-analyzerplugin-interfac","errorCode":null,"errorMessage":"plugin does not abide by 'AnalyzerPlugin' interface: %T","messagePattern":"plugin does not abide by 'AnalyzerPlugin' interface: %T","errorType":"error_code","errorClass":null,"httpStatus":null,"severity":"error","filePath":"pkg/lint/lintersdb/builder_plugin_go.go","lineNumber":145,"sourceCode":"\t}\n\n\treturn constructor(settings)\n}\n\nfunc (b *PluginGoBuilder) lookupAnalyzerPlugin(plug *plugin.Plugin) ([]*analysis.Analyzer, error) {\n\t//nolint:staticcheck,nolintlint // Ignore because the implementation on Windows returns nil\n\tsymbol, err := plug.Lookup(\"AnalyzerPlugin\")\n\t//nolint:staticcheck,nolintlint // Ignore because the implementation on Windows returns nil\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tb.log.Warnf(\"plugin: 'AnalyzerPlugin' plugins are deprecated, please use the new plugin signature: \" +\n\t\t\"https://golangci-lint.run/docs/plugins/go-plugins#create-a-plugin\")\n\n\tanalyzerPlugin, ok := symbol.(AnalyzerPlugin)\n\tif !ok {\n\t\treturn nil, fmt.Errorf(\"plugin does not abide by 'AnalyzerPlugin' interface: %T\", symbol)\n\t}\n\n\treturn analyzerPlugin.GetAnalyzers(), nil\n}\n","sourceCodeStart":127,"sourceCodeEnd":150,"githubUrl":"https://github.com/golangci/golangci-lint/blob/ed7a235d2d771152056fdc142a9855567c5796a9/pkg/lint/lintersdb/builder_plugin_go.go#L127-L150","documentation":"Type-assertion guard in PluginGoBuilder.lookupAnalyzerPlugin: the plugin exports 'AnalyzerPlugin' but the symbol does not implement the expected AnalyzerPlugin interface, so the assertion fails and the concrete type is reported. This is the legacy plugin path, which also emits a deprecation warning.","triggerScenarios":"Thrown at pkg/lint/lintersdb/builder_plugin_go.go:145 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Make the exported AnalyzerPlugin value implement the expected interface (GetAnalyzers method)","Prefer migrating the plugin to the newer New-function signature"],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"ed7a235d2d771152056fdc142a9855567c5796a9","analyzedAt":"2026-09-02T18:47:33.865Z","contentChangedAt":null,"schemaVersion":2},"datasetVersion":"2026-09-08T10:18:20.063Z"}