Pumpkin-MC/Pumpkin · error · LoaderError

Runtime error

Error message

Runtime error: {0}

What it means

This is LoaderError::RuntimeError(String). It means a previously loaded and initialized plugin raised an error at runtime — during event handling, command execution, or another callback — and the loader surfaced it wrapped in this variant with the message payload.

Solutions

  1. Read the inner message to identify which plugin and operation failed
  2. Reproduce the trigger (specific command/event) and report it to the plugin author
  3. Update the plugin to a fixed version or remove/disable it
  4. Check server and plugin versions for compatibility

Example fix

null
Defensive patterns

Strategy: try-catch

Validate before calling

null

Type guard

null

Try / catch

// isolate plugin callbacks so a runtime error cannot take down the server
let result = std::panic::catch_unwind(|| plugin.on_event(evt));
if let Err(e) = result { warn!("plugin raised at runtime: {e:?}; disabling plugin"); }

Prevention

When it happens

Trigger: Raised when a plugin's event handler, command handler, or scheduled task returns an error (or the loader's plugin call wrapper catches one) while the server is running.

Common situations: Plugin bug triggered by a specific event or command; plugin state corrupted after server reload; plugin interacting with world/entity data in an unexpected way; concurrency issues in the plugin.

Related errors


AI-assisted analysis of Pumpkin-MC/Pumpkin@8d4639e25a (2026-09-09). Data as JSON: /api/errors/26dd062696a99679. Report an issue: GitHub.

Appendix: source

Thrown at crates/pumpkin/src/plugin/loader/mod.rs:51

    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."
    )]
    ApiVersionMismatch {
        plugin_version: u32,
        server_version: u32,
    },

View on GitHub (pinned to 8d4639e25a)