{"record":{"id":"f02c761de2c71f0d","repo":"slint-ui/slint","slug":"winit-touch-id-out-of-i32-range","errorCode":null,"errorMessage":"winit touch id out of i32 range","messagePattern":"winit touch id out of i32 range","errorType":"panic","errorClass":null,"httpStatus":null,"severity":"error","filePath":"internal/backends/winit/event_loop.rs","lineNumber":474,"sourceCode":"                            position: self.cursor_pos,\n                            button,\n                            click_count: 0,\n                            touch_finger_id: 0,\n                        }\n                    }\n                };\n                window.window().dispatch_event(corelib::platform::WindowEvent::internal(ev));\n            }\n            WindowEvent::Touch(touch) => {\n                let location = touch.location.to_logical(runtime_window.scale_factor() as f64);\n                let position = euclid::point2(location.x, location.y);\n                // winit types the touch id as u64, but on all platforms except\n                // iOS it is in fact a small integer that fits in i32. Only iOS\n                // stores a UITouch pointer address in it, which\n                // TouchFingerIdAllocator maps to a small id instead.\n                #[cfg(not(target_os = \"ios\"))]\n                let finger_id =\n                    Some(i32::try_from(touch.id).expect(\"winit touch id out of i32 range\"));\n                #[cfg(target_os = \"ios\")]\n                let finger_id = match touch.phase {\n                    winit::event::TouchPhase::Started | winit::event::TouchPhase::Moved => {\n                        self.touch_finger_ids.id_for(touch.id)\n                    }\n                    winit::event::TouchPhase::Ended | winit::event::TouchPhase::Cancelled => {\n                        self.touch_finger_ids.take(touch.id)\n                    }\n                };\n                if let Some(finger_id) = finger_id {\n                    window.window().dispatch_event(corelib::platform::WindowEvent::internal(\n                        corelib::platform::InternalEvent::Touch {\n                            id: finger_id,\n                            position,\n                            phase: winit_touch_phase(touch.phase),\n                        },\n                    ));\n                }","sourceCodeStart":456,"sourceCodeEnd":492,"githubUrl":"https://github.com/slint-ui/slint/blob/3fd8f2ec03c2aa8a95d5f4b9daa299c7b8bf4016/internal/backends/winit/event_loop.rs#L456-L492","documentation":"Error \"winit touch id out of i32 range\" thrown in slint-ui/slint.","triggerScenarios":"Thrown at internal/backends/winit/event_loop.rs:474 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["This indicates a platform reporting an out-of-range touch id; update winit/Slint or report the bug.","Filter touch events with ids outside the i32 range if controlled by the application."],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"3fd8f2ec03c2aa8a95d5f4b9daa299c7b8bf4016","analyzedAt":"2026-08-19T23:23:16.610Z","contentChangedAt":null,"schemaVersion":2},"datasetVersion":"2026-09-14T00:17:10.932Z"}