diff --git a/plugin/src/PatchTree.lua b/plugin/src/PatchTree.lua index c33255d1..5423beed 100644 --- a/plugin/src/PatchTree.lua +++ b/plugin/src/PatchTree.lua @@ -335,6 +335,11 @@ function PatchTree.build(patch, instanceMap, changeListHeaders) continue end + -- Skip TouchInterest (auto-created by Roblox when touch events are connected) + if instance.ClassName == "TouchInterest" then + continue + end + -- Gather ancestors from existing DOM -- (note that they may have no ID if they're being removed as unknown) local ancestryIds = {} diff --git a/plugin/src/Reconciler/applyPatch.lua b/plugin/src/Reconciler/applyPatch.lua index 8da223d1..f95b0b1b 100644 --- a/plugin/src/Reconciler/applyPatch.lua +++ b/plugin/src/Reconciler/applyPatch.lua @@ -27,6 +27,12 @@ local function applyPatch(instanceMap, patch) local deferredRefs = {} for _, removedIdOrInstance in ipairs(patch.removed) do + -- Skip TouchInterest (auto-created by Roblox when touch events are connected) + local instance = if Types.RbxId(removedIdOrInstance) then instanceMap.fromIds[removedIdOrInstance] else removedIdOrInstance + if instance and instance.ClassName == "TouchInterest" then + continue + end + local removeInstanceSuccess = pcall(function() if Types.RbxId(removedIdOrInstance) then instanceMap:destroyId(removedIdOrInstance)