[Bug] Client only and server only triggers interact in preview mode

I have a trigger+script in a client context and a trigger+script in a sever context. I expect them to operate independently, and indeed that's what happens in multiplayer preview mode. However in singleplayer preview mode, when the triggers overlap the server trigger fires an event, causing the server script to try to access the client trigger, causing an error. Moreover I can't guard against this; just checking the 'isClientOnly' field triggers the error.

This means I can't use use triggers for both client and server logic without breaking singleplayer preview mode.

I constructed a minimal example like this:

ClientContext
|- Cylinder
  |- Trigger
  |- PrintOnTrigger
ServerContext
|- Cylinder (pos = (200, 0, 0))
  |- Trigger
  |- PrintOnTrigger

-- PrintOnTrigger.lua
script:GetCustomProperty("Trigger"):WaitForObject().beginOverlapEvent:Connect(
  function(a, b) print(a, b, script.isServerOnly) end
)
Task.Spawn(function() script.parent:SetPosition(Vector3.New(0, 0, 0)) end)

Hello! Sorry for the inconvenience, and for the delayed response. We released a patch this morning that should fix those errors. The client-only and server-only triggers should also ignore each other in single-player preview as they would in a normal game.
There will always be some differences in single-player preview inherent to the fact that the client and server are running in the same process, so we recommend doing at least some of your testing in multiplayer preview mode. But single-player is very convenient, so we try to make it function as accurately as possible. If you notice any other issues with single-player preview, please do let us know.