{"record":{"id":"eb5047d8afe70294","repo":"Pumpkin-MC/Pumpkin","slug":"failed-to-parse-json-from-player-texture-0","errorCode":null,"errorMessage":"Failed to parse JSON from player texture: {0}","messagePattern":"Failed to parse JSON from player texture: (.+?)","errorType":"exception","errorClass":"TextureError","httpStatus":null,"severity":"error","filePath":"crates/pumpkin/src/net/authentication.rs","lineNumber":421,"sourceCode":"    #[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\": {}\n        }\"#;\n        let profile: ProfileTextures =","sourceCodeStart":403,"sourceCodeEnd":439,"githubUrl":"https://github.com/Pumpkin-MC/Pumpkin/blob/8d4639e25a57c15e47448ec327c780d41bbf2356/crates/pumpkin/src/net/authentication.rs#L403-L439","documentation":"Thrown by TextureError in the Mojang authentication flow when the base64-decoded player texture payload cannot be parsed as JSON, i.e. the textures property in the authenticated game profile is corrupt or not a valid JSON object.","triggerScenarios":"Thrown at crates/pumpkin/src/net/authentication.rs:421 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Continue login with default textures","Log the JSON parse error with the player name for diagnosis","Validate the decoded payload against the texture JSON schema"],"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"}