{"record":{"id":"d4f39870328ad36a","repo":"Pumpkin-MC/Pumpkin","slug":"failed-to-read-game-profile-properties","errorCode":null,"errorMessage":"Failed to read game profile properties","messagePattern":"Failed to read game profile properties","errorType":"error_code","errorClass":"VelocityError","httpStatus":null,"severity":"error","filePath":"crates/pumpkin/src/net/proxy/velocity.rs","lineNumber":47,"sourceCode":"#[derive(Error, Debug)]\npub enum VelocityError {\n    #[error(\"No response data received\")]\n    NoData,\n    #[error(\"Unable to verify player details\")]\n    FailedVerifyIntegrity,\n    #[error(\"Failed to read forward version\")]\n    FailedReadForwardVersion,\n    #[error(\"Unsupported forwarding version {0}. Maximum supported version is {1}\")]\n    UnsupportedForwardVersion(u8, u8),\n    #[error(\"Failed to read address\")]\n    FailedReadAddress,\n    #[error(\"Failed to parse address\")]\n    FailedParseAddress,\n    #[error(\"Failed to read game profile name\")]\n    FailedReadProfileName,\n    #[error(\"Failed to read game profile UUID\")]\n    FailedReadProfileUUID,\n    #[error(\"Failed to read game profile properties\")]\n    FailedReadProfileProperties,\n}\n\npub async fn velocity_login(connection: &mut PendingConnection) {\n    // TODO: Validate the packet transaction id from the plugin response with this\n    let velocity_message_id: i32 = rand::rng().random();\n\n    let mut buf = BytesMut::new();\n    buf.put_u8(MAX_SUPPORTED_FORWARDING_VERSION);\n    connection\n        .send_packet_now(&CLoginPluginRequest::new(\n            velocity_message_id.into(),\n            PLAYER_INFO_CHANNEL,\n            &buf,\n        ))\n        .await;\n}\n","sourceCodeStart":29,"sourceCodeEnd":65,"githubUrl":"https://github.com/Pumpkin-MC/Pumpkin/blob/8d4639e25a57c15e47448ec327c780d41bbf2356/crates/pumpkin/src/net/proxy/velocity.rs#L29-L65","documentation":"VelocityError sentinel while decoding the tail of the modern forwarding payload: the player's profile properties array could not be read or deserialized. Fires when the forwarding data ends early or the properties list is malformed, typically because the proxy forwarded a format this server build does not fully understand.","triggerScenarios":"Thrown at crates/pumpkin/src/net/proxy/velocity.rs:47 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Reject the connection","Validate the properties encoding in the payload","Log the read 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-16T04:17:20.429Z"}