Pumpkin-MC/Pumpkin · error · LoaderError
Missing plugin entrypoint
Error message
Missing plugin entrypoint
What it means
This is LoaderError::EntrypointMissing. It means the plugin library loaded and metadata was found, but the expected plugin entrypoint symbol/function could not be resolved from the dynamic library. Without the entrypoint the loader cannot instantiate the plugin.
Solutions
- Define and export the entrypoint using the current Pumpkin plugin entrypoint macro
- Rebuild the plugin against the matching Pumpkin version (symbol names can change between versions)
- Ensure the entrypoint function is pub and not stripped (check build profile for LTO/strip settings)
- Verify with nm/objdump that the expected entrypoint symbol is present in the built library
Example fix
null
Defensive patterns
Strategy: validation
Validate before calling
// verify the entrypoint symbol exists in the built library // nm -D target/release/libmyplugin.so | grep <entrypoint_symbol>
Type guard
null
Try / catch
match loader.load(path) {
Err(LoaderError::EntrypointMissing) => eprintln!("plugin exports no entrypoint; check the #[plugin] entry macro"),
Ok(p) => enable(p),
Err(e) => return Err(e),
} Prevention
- Use the current entrypoint macro from pumpkin-plugin
- Avoid LTO/strip settings that remove exported symbols
- Verify built libraries with nm before shipping
When it happens
Trigger: Raised when the loader looks up the entrypoint symbol in the loaded library and it is absent — e.g. the plugin exports no entry function or it was renamed/not exported publicly.
Common situations: Plugin author forgot to mark the entrypoint with the required macro/export; plugin built for an older API where the entrypoint symbol name differed; LTO/stripping removing the symbol.
Understand the failure class
Background: "not installed", "pip install", "required for": how missing-dependency errors surface across open-source libraries — this error's family across 34 libraries.
Related errors
- Failed to load library
- Missing plugin metadata
- Plugin initialization failed
- Runtime error
- Invalid loader data
AI-assisted analysis of Pumpkin-MC/Pumpkin@8d4639e25a (2026-09-09).
Data as JSON: /api/errors/319b37593802cfd5.
Report an issue: GitHub.
Appendix: source
Thrown at crates/pumpkin/src/plugin/loader/mod.rs:45
/// Check if this loader can handle the given file
fn can_load(&self, path: &Path) -> bool;
fn unload(&self, data: Box<dyn Any + Send + Sync>) -> PluginUnloadFuture<'_>;
/// Checks if the plugin can be safely unloaded.
fn can_unload(&self) -> bool;
}
/// Unified loader error type
#[derive(Error, Debug)]
pub enum LoaderError {
#[error("Failed to load library: {0}")]
LibraryLoad(String),
#[error("Missing plugin metadata")]
MetadataMissing,
#[error("Missing plugin entrypoint")]
EntrypointMissing,
#[error("Plugin initialization failed: {0}")]
InitializationFailed(String),
#[error("Runtime error: {0}")]
RuntimeError(String),
#[error("Invalid loader data")]
InvalidLoaderData,
#[error(
"Plugin was built for an incompatible API version. Please rebuild it against this Pumpkin build."
)]
ApiVersionMissing,
#[error(
"Plugin API version mismatch (plugin {plugin_version}, server {server_version}). Please rebuild it against this Pumpkin build."View on GitHub (pinned to 8d4639e25a)