{"record":{"id":"ba6ecdf05438435b","repo":"Pumpkin-MC/Pumpkin","slug":"invalid-url-scheme-for-player-texture-0","errorCode":null,"errorMessage":"Invalid URL scheme for player texture: {0}","messagePattern":"Invalid URL scheme for player texture: (.+?)","errorType":"exception","errorClass":"TextureError","httpStatus":null,"severity":"error","filePath":"crates/pumpkin/src/net/authentication.rs","lineNumber":415,"sourceCode":"    #[error(\"Failed to verify username\")]\n    UnverifiedUsername,\n    #[error(\"You are banned from Authentication servers\")]\n    Banned,\n    #[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#\"{","sourceCodeStart":397,"sourceCodeEnd":433,"githubUrl":"https://github.com/Pumpkin-MC/Pumpkin/blob/8d4639e25a57c15e47448ec327c780d41bbf2356/crates/pumpkin/src/net/authentication.rs#L397-L433","documentation":"Thrown while resolving a Minecraft player skin/cape texture when the texture URL's scheme (e.g. http, ftp) is not http/https. Wraps the offending scheme string; indicates a malformed or hostile profile property, not a network failure.","triggerScenarios":"Thrown at crates/pumpkin/src/net/authentication.rs:415 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Reject the texture property and fall back to the default skin","Log the scheme at debug level and continue login without the custom texture","Only accept http/https schemes before any URL fetch"],"exampleFix":null,"handlingStrategy":"validation","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"}