Pumpkin-MC/Pumpkin · error · VelocityError
No response data received
Error message
No response data received
What it means
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.
Solutions
- Reject the connection with a forwarding-error kick
- Check Velocity's forwarding setup and secret
- Log the empty response at debug level
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at crates/pumpkin/src/net/proxy/velocity.rs:31 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of Pumpkin-MC/Pumpkin@8d4639e25a (2026-09-09).
Data as JSON: /api/errors/42c0ed513d1cd43d.
Report an issue: GitHub.
Appendix: source
Thrown at crates/pumpkin/src/net/proxy/velocity.rs:31
/// Sadly, `PaperMC` does not care about 3rd parties providing support for Velocity. There is no documentation.
/// 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>
use std::{
io::Read,
net::{IpAddr, SocketAddr},
};
use thiserror::Error;
use tracing::debug;
use crate::net::{GameProfile, java::pending::PendingConnection};
type HmacSha256 = Hmac<Sha256>;
const MAX_SUPPORTED_FORWARDING_VERSION: u8 = 4;
const PLAYER_INFO_CHANNEL: &str = "velocity:player_info";
#[derive(Error, Debug)]
pub enum VelocityError {
#[error("No response data received")]
NoData,
#[error("Unable to verify player details")]
FailedVerifyIntegrity,
#[error("Failed to read forward version")]
FailedReadForwardVersion,
#[error("Unsupported forwarding version {0}. Maximum supported version is {1}")]
UnsupportedForwardVersion(u8, u8),
#[error("Failed to read address")]
FailedReadAddress,
#[error("Failed to parse address")]
FailedParseAddress,
#[error("Failed to read game profile name")]
FailedReadProfileName,
#[error("Failed to read game profile UUID")]
FailedReadProfileUUID,
#[error("Failed to read game profile properties")]
FailedReadProfileProperties,
}View on GitHub (pinned to 8d4639e25a)