gotify/server · error

missing GetGotifyPluginInfo symbol

Error message

missing GetGotifyPluginInfo symbol

What it means

Wrap() in plugin/compat/wrap.go rejects a Go plugin binary that does not export the required GetGotifyPluginInfo symbol. plugin.Plugin.Lookup returns an error when the compiled .so lacks that exported function, meaning the shared library is not a valid gotify plugin (wrong build, wrong package, or arbitrary .so file).

Source

Thrown at plugin/compat/wrap.go:15

package compat

import (
	"errors"
	"fmt"
	"plugin"

	papiv1 "github.com/gotify/plugin-api"
)

// Wrap wraps around a raw go plugin to provide typesafe access.
func Wrap(p *plugin.Plugin) (Plugin, error) {
	getInfoHandle, err := p.Lookup("GetGotifyPluginInfo")
	if err != nil {
		return nil, errors.New("missing GetGotifyPluginInfo symbol")
	}
	switch getInfoHandle := getInfoHandle.(type) {
	case func() papiv1.Info:
		v1 := PluginV1{}

		v1.Info = getInfoHandle()
		newInstanceHandle, err := p.Lookup("NewGotifyPluginInstance")
		if err != nil {
			return nil, errors.New("missing NewGotifyPluginInstance symbol")
		}
		constructor, ok := newInstanceHandle.(func(ctx papiv1.UserContext) papiv1.Plugin)
		if !ok {
			return nil, fmt.Errorf("NewGotifyPluginInstance signature mismatch, func(ctx plugin.UserContext) plugin.Plugin expected, got %T", newInstanceHandle)
		}
		v1.Constructor = constructor
		return v1, nil
	default:
		return nil, fmt.Errorf("unknown plugin version (unrecogninzed GetGotifyPluginInfo signature %T)", getInfoHandle)

View on GitHub (pinned to 14bfc25627)

Solutions

  1. Rebuild the plugin as a main package exposing func GetGotifyPluginInfo() papiv1.Info
  2. Ensure the plugin was compiled with the exact same Go version, GOOS and GOARCH as the gotify server
  3. Verify the file being loaded is actually a gotify plugin .so and not an unrelated shared library
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at plugin/compat/wrap.go:15 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of gotify/server@14bfc25627 (2026-09-05). Data as JSON: /api/errors/47305214a18009b3. Report an issue: GitHub.