{"record":{"id":"3556b69602b15ec1","repo":"Pumpkin-MC/Pumpkin","slug":"failed-to-decode-base64-player-texture-0","errorCode":null,"errorMessage":"Failed to decode base64 player texture: {0}","messagePattern":"Failed to decode base64 player texture: (.+?)","errorType":"exception","errorClass":"TextureError","httpStatus":null,"severity":"error","filePath":"crates/pumpkin/src/net/authentication.rs","lineNumber":419,"sourceCode":"    #[error(\"Texture Error {0}\")]\n    TextureError(TextureError),\n    #[error(\"You have disallowed actions from Authentication servers\")]\n    DisallowedAction,\n    #[error(\"Failed to parse JSON into Game Profile\")]\n    FailedParse,\n    #[error(\"Unknown Status Code {0}\")]\n    UnknownStatusCode(StatusCode),\n}\n\n#[derive(Error, Debug)]\npub enum TextureError {\n    #[error(\"Invalid URL\")]\n    InvalidURL,\n    #[error(\"Invalid URL scheme for player texture: {0}\")]\n    DisallowedUrlScheme(String),\n    #[error(\"Invalid URL domain for player texture: {0}\")]\n    DisallowedUrlDomain(String),\n    #[error(\"Failed to decode base64 player texture: {0}\")]\n    DecodeError(String),\n    #[error(\"Failed to parse JSON from player texture: {0}\")]\n    JSONError(String),\n}\n\n#[cfg(test)]\nmod tests {\n    use super::ProfileTextures;\n\n    // Third-party auth servers (drasl, Blessing Skin, littleskin.cn) don't send\n    // `signatureRequired`. The profile must still parse. See issue #301.\n    #[test]\n    fn parses_profile_without_signature_required() {\n        let json = r#\"{\n            \"timestamp\": 0,\n            \"profileId\": \"069a79f444e94726a5befca90e38aaf5\",\n            \"profileName\": \"Notch\",\n            \"textures\": {}","sourceCodeStart":401,"sourceCodeEnd":437,"githubUrl":"https://github.com/Pumpkin-MC/Pumpkin/blob/8d4639e25a57c15e47448ec327c780d41bbf2356/crates/pumpkin/src/net/authentication.rs#L401-L437","documentation":"The base64-encoded texture property value from the Mojang session API could not be base64-decoded. The decode error is embedded; the profile's textures property is corrupt or non-standard, so no texture data can be extracted.","triggerScenarios":"Thrown at crates/pumpkin/src/net/authentication.rs:419 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Treat the player as having no custom textures and continue","Log the decode failure and fall back to the default skin","Validate the textures payload is valid base64 before decoding"],"exampleFix":null,"handlingStrategy":"fallback","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-17T15:17:12.973Z"}