Pumpkin-MC/Pumpkin · error · VelocityError
Failed to read game profile UUID
Error message
Failed to read game profile UUID
What it means
VelocityError sentinel while decoding the forwarded player profile: the player's UUID bytes could not be read from the modern forwarding payload. Fires when the payload is truncated at the UUID field — the input at fault is the 16-byte (or string) UUID portion of Velocity's forwarded player info.
Solutions
- Reject the connection
- Check for truncated or corrupted forwarding data
- Log the read failure at debug level
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at crates/pumpkin/src/net/proxy/velocity.rs:45 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/93b7f0419c986616.
Report an issue: GitHub.
Appendix: source
Thrown at crates/pumpkin/src/net/proxy/velocity.rs:45
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,
}
pub async fn velocity_login(connection: &mut PendingConnection) {
// TODO: Validate the packet transaction id from the plugin response with this
let velocity_message_id: i32 = rand::rng().random();
let mut buf = BytesMut::new();
buf.put_u8(MAX_SUPPORTED_FORWARDING_VERSION);
connection
.send_packet_now(&CLoginPluginRequest::new(
velocity_message_id.into(),
PLAYER_INFO_CHANNEL,
&buf,
))
.await;View on GitHub (pinned to 8d4639e25a)