{"record":{"id":"10bc0363b1da6c61","repo":"Pumpkin-MC/Pumpkin","slug":"failed-to-parse-properties","errorCode":null,"errorMessage":"Failed to parse properties","messagePattern":"Failed to parse properties","errorType":"exception","errorClass":"BungeeCordError","httpStatus":null,"severity":"error","filePath":"crates/pumpkin/src/net/proxy/bungeecord.rs","lineNumber":21,"sourceCode":"use std::sync::Arc;\nuse std::{net::IpAddr, net::SocketAddr};\nuse thiserror::Error;\nuse tracing::warn;\n\nuse crate::net::{GameProfile, offline_uuid};\nuse pumpkin_protocol::Property;\n\n/// The property name the `BungeeGuard` plugin uses to forward its shared\n/// secret inside the profile properties.\nconst BUNGEEGUARD_TOKEN_PROPERTY: &str = \"bungeeguard-token\";\n\n#[derive(Error, Debug)]\npub enum BungeeCordError {\n    #[error(\"Failed to parse address\")]\n    FailedParseAddress,\n    #[error(\"Failed to parse UUID\")]\n    FailedParseUUID,\n    #[error(\"Failed to parse properties\")]\n    FailedParseProperties,\n    #[error(\"Failed to make offline UUID\")]\n    FailedMakeOfflineUUID,\n    #[error(\"No BungeeGuard token in forwarded data\")]\n    MissingToken,\n    #[error(\"Invalid BungeeGuard token\")]\n    InvalidToken,\n}\n\n/// Attempts to login a player via `BungeeCord`.\n///\n/// This function should be called when receiving the `SLoginStart` packet.\n/// It utilizes the `server_address` received in the `SHandShake` packet,\n/// which may contain optional data about the client:\n///\n/// 1. IP address (if `ip_forward` is enabled on the `BungeeCord` server)\n/// 2. UUID (if `ip_forward` is enabled on the `BungeeCord` server)\n/// 3. Game profile properties (if `ip_forward` and `online_mode` are enabled on the `BungeeCord` server)","sourceCodeStart":3,"sourceCodeEnd":39,"githubUrl":"https://github.com/Pumpkin-MC/Pumpkin/blob/8d4639e25a57c15e47448ec327c780d41bbf2356/crates/pumpkin/src/net/proxy/bungeecord.rs#L3-L39","documentation":"BungeeCordError sentinel from BungeeCord IP-forwarding parsing: the profile properties array forwarded by the proxy failed to deserialize. The faulty input is the properties portion of the BungeeCord forwarding payload (which also carries the BungeeGuard token), typically malformed because of a proxy/plugin version mismatch.","triggerScenarios":"Thrown at crates/pumpkin/src/net/proxy/bungeecord.rs:21 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Reject the connection","Validate properties JSON shape before deserialization","Log the parse failure at debug level"],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"8d4639e25a57c15e47448ec327c780d41bbf2356","analyzedAt":"2026-09-09T15:32:22.916Z","contentChangedAt":"2026-09-09T15:32:22.916Z","schemaVersion":2},"datasetVersion":"2026-09-15T23:17:13.987Z"}