{"record":{"id":"d203e427e783a55b","repo":"Pumpkin-MC/Pumpkin","slug":"got-a-guest-splitscreen-login-request-currently-u","errorCode":null,"errorMessage":"Got a guest/splitscreen login request. Currently unimplemented.","messagePattern":"Got a guest/splitscreen login request\\. Currently unimplemented\\.","errorType":"error_code","errorClass":"LoginError","httpStatus":null,"severity":"warning","filePath":"crates/pumpkin/src/net/bedrock/login/mod.rs","lineNumber":42,"sourceCode":"use serde_repr::Deserialize_repr;\nuse std::sync::Arc;\nuse thiserror::Error;\nuse tracing::debug;\nuse uuid::Uuid;\n\n#[derive(Debug, Error)]\npub enum LoginError {\n    #[error(\"Login packet data is not valid JSON\")]\n    InvalidTokenFormat(#[from] serde_json::Error),\n    #[error(\"JWT chain validation failed: {0}\")]\n    ChainValidationFailed(#[from] AuthError),\n    #[error(\"The validated username is invalid\")]\n    InvalidUsername,\n    #[error(\"Could not parse UUID from validated token\")]\n    InvalidUuid,\n    #[error(\"Cannot accept self-signed token. Authentication is enforced by server config.\")]\n    SelfSignedNotAllowed,\n    #[error(\"Got a guest/splitscreen login request. Currently unimplemented.\")]\n    GuestUnimplemented,\n    #[error(\"Failed to decode extra using decode_b64_url_nopad.\")]\n    DecodeExtraError,\n}\n\n#[derive(Deserialize_repr)]\n#[repr(u8)]\nenum AuthenticationType {\n    Full,\n    Guest,\n    SelfSigned,\n}\n\n#[derive(Deserialize)]\n#[serde(rename_all = \"PascalCase\")]\nstruct AuthPayload {\n    authentication_type: AuthenticationType,\n    token: String,","sourceCodeStart":24,"sourceCodeEnd":60,"githubUrl":"https://github.com/Pumpkin-MC/Pumpkin/blob/8d4639e25a57c15e47448ec327c780d41bbf2356/crates/pumpkin/src/net/bedrock/login/mod.rs#L24-L60","documentation":"This is the LoginError::GuestUnimplemented variant. The Bedrock protocol allows guest/split-screen players (additional local players on one console) to send login requests, but Pumpkin does not yet support handling them. The library throws this as an explicit unsupported-operation signal during the login handshake rather than admitting the player with undefined behavior.","triggerScenarios":"A Bedrock client sends a Login packet flagged as a guest or split-screen (second local) player; Pumpkin's login handler matches this case and returns GuestUnimplemented.","commonSituations":"A player on a console trying to join with a split-screen second account, or families sharing one device where a second local player attempts to connect.","solutions":["Have the second/guest player join from their own device with their own signed-in Xbox Live account instead of split-screen","Track Pumpkin's upstream repository for split-screen/guest support and update once implemented","If running a proxy/bridge, drop or convert guest login requests before forwarding to the server (unsupported until the feature lands)","Do not attempt a config workaround — this variant is hard-coded as unimplemented in the login handler"],"exampleFix":null,"handlingStrategy":"fallback","validationCode":"// Client-side: do not send guest/split-screen login flags to Pumpkin servers\nfn is_guest_login(login_flags: u32, guest_flag: u32) -> bool {\n    login_flags & guest_flag != 0\n}","typeGuard":"fn is_guest_unimplemented(e: &LoginError) -> bool {\n    matches!(e, LoginError::GuestUnimplemented)\n}","tryCatchPattern":"match login_result {\n    Err(LoginError::GuestUnimplemented) => {\n        info!(\"guest/split-screen logins are not supported by this server\");\n        disconnect_with(\"Split-screen players are not supported on this server\")\n    }\n    Err(e) => disconnect_with(&format!(\"Login failed: {e}\")),\n    Ok(p) => admit(p),\n}","preventionTips":["Have guest players join from their own devices with their own accounts","Do not enable split-screen when the target server is Pumpkin","Watch upstream releases for guest/split-screen support","Filter out guest login requests in any proxy layer"],"tags":["bedrock","minecraft","unsupported-feature","split-screen"],"backgroundTag":"method-not-implemented","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"}