{"record":{"id":"5dea51a77412bfe6","repo":"Pumpkin-MC/Pumpkin","slug":"failed-to-read-game-profile-name-5dea51","errorCode":null,"errorMessage":"Failed to read game profile name","messagePattern":"Failed to read game profile name","errorType":"error_code","errorClass":"VineError","httpStatus":null,"severity":"error","filePath":"crates/pumpkin/src/net/proxy/vine.rs","lineNumber":50,"sourceCode":"    #[error(\"Invalid Ed25519 public key\")]\n    InvalidPublicKey,\n    #[error(\"Failed to verify Ed25519 signature\")]\n    InvalidSignature,\n    #[error(\"Failed to read forward version\")]\n    FailedReadForwardVersion,\n    #[error(\"Unsupported forwarding version {0}. Expected {1}\")]\n    UnsupportedForwardVersion(i32, i32),\n    #[error(\"Vine timestamp expired or desynchronized: skew of {0}s exceeds limit of {1}s\")]\n    TimestampExpired(i64, i64),\n    #[error(\"Vine challenge nonce mismatch\")]\n    ChallengeMismatch,\n    #[error(\"Missing expected challenge from pending connection\")]\n    MissingChallenge,\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\n/// Initiates Vine modern forwarding handshake by sending a `CLoginPluginRequest`\n/// with a unique 16-byte challenge nonce to protect against replay attacks.\npub async fn vine_login(connection: &mut PendingConnection) {\n    let message_id: i32 = rand::random();\n    let challenge: [u8; 16] = rand::random();\n\n    let mut buf = BytesMut::with_capacity(17);\n    buf.put_u8(VINE_FORWARDING_VERSION as u8);\n    buf.put_slice(&challenge);\n\n    connection.vine_challenge = Some(challenge);","sourceCodeStart":32,"sourceCodeEnd":68,"githubUrl":"https://github.com/Pumpkin-MC/Pumpkin/blob/8d4639e25a57c15e47448ec327c780d41bbf2356/crates/pumpkin/src/net/proxy/vine.rs#L32-L68","documentation":"This is the VineProxyError::FailedReadProfileName variant. It indicates the server failed while reading the game profile name field from the Vine proxy forwarding response. The library throws it because the forwarded login payload ended or was malformed at the name field, so the profile cannot be reconstructed.","triggerScenarios":"Raised when decoding the Vine forwarding response and the readable bytes run out before a complete profile name string, or the string length prefix is invalid.","commonSituations":"Proxy/server forwarding protocol mismatch; corrupted or truncated forwarding payload; buggy custom proxy implementations that omit or shorten the profile data.","solutions":["Ensure the proxy and server agree on the Vine modern forwarding format","Verify the proxy secret matches so the payload is not garbled","Update both proxy and Pumpkin to matching, current versions","If implementing a proxy, confirm you write the profile name string with the correct length-prefixed encoding"],"exampleFix":"null","handlingStrategy":"try-catch","validationCode":"null","typeGuard":"null","tryCatchPattern":"match result { Err(VineProxyError::FailedReadProfileName) => { warn!(\"truncated forwarding payload: no profile name\"); connection.disconnect(); }, Ok(v) => v, Err(e) => return Err(e) }","preventionTips":["Use maintained proxy software, not hand-rolled forwarding","Upgrade proxy and server together","Log raw payload lengths on failure to spot truncation"],"tags":["network","proxy","minecraft","vine-forwarding","malformed-payload"],"backgroundTag":"unexpected-response-shape","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"}