{"record":{"id":"42c0ed513d1cd43d","repo":"Pumpkin-MC/Pumpkin","slug":"no-response-data-received","errorCode":null,"errorMessage":"No response data received","messagePattern":"No response data received","errorType":"error_code","errorClass":"VelocityError","httpStatus":null,"severity":"error","filePath":"crates/pumpkin/src/net/proxy/velocity.rs","lineNumber":31,"sourceCode":"/// Sadly, `PaperMC` does not care about 3rd parties providing support for Velocity. There is no documentation.\n/// I had to understand the code logic by looking at `PaperMC`'s Velocity implementation: <https://github.com/PaperMC/Paper/blob/0cf731589a3b6923542cdfc36dbcee9c47c51076/paper-server/src/main/java/com/destroystokyo/paper/proxy/VelocityProxy.java>\nuse std::{\n    io::Read,\n    net::{IpAddr, SocketAddr},\n};\nuse thiserror::Error;\nuse tracing::debug;\n\nuse crate::net::{GameProfile, java::pending::PendingConnection};\n\ntype HmacSha256 = Hmac<Sha256>;\n\nconst MAX_SUPPORTED_FORWARDING_VERSION: u8 = 4;\nconst PLAYER_INFO_CHANNEL: &str = \"velocity:player_info\";\n\n#[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}","sourceCodeStart":13,"sourceCodeEnd":49,"githubUrl":"https://github.com/Pumpkin-MC/Pumpkin/blob/8d4639e25a57c15e47448ec327c780d41bbf2356/crates/pumpkin/src/net/proxy/velocity.rs#L13-L49","documentation":"VelocityError state guard in the Velocity modern forwarding handshake: the server finished reading the login plugin response channel but received zero bytes of forwarding data. Fires when the client/proxy sends an empty response on the forwarding channel — indicating the connection is not actually going through a properly configured Velocity proxy.","triggerScenarios":"Thrown at crates/pumpkin/src/net/proxy/velocity.rs:31 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Reject the connection with a forwarding-error kick","Check Velocity's forwarding setup and secret","Log the empty response 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"}