Model Sandboxed property blocking RemoteEvent traffic

My module relies on talking between the server and client to replicate a player’s current data model and that is the thing which is broken in sandboxed mode at the moment. My module doesn’t error on this due to the client relying on the template data until the client handshake is completed and the actual data is replicated to the client but does display a warning if the Handshake times out or is stopped by the Sandboxed property (as is the case here).

The place which has the bug:
ScribeSandboxed.rbxl (356.0 KB)

Steps to reproduce:

  1. Download the above .rbxl file and open it
  2. Press Play in studio
  3. You should see the following warning appear in the output:

    This warning basically says that the Client couldn’t communicate with the server over the created remoteevent because of the Sandboxed property.

You are also able to see how I found out about this issue via a user who was using my module:
Scribe v1.3.2 - Persistent, typed, auto-replicated player data built on ProfileStore - #13 by ossuarys (the conversation started here)

I can confirm that multiple people have had this issue with my module.

Expected behavior

What should happen is the client handshake should succeed so the client and server are able to communicate with each other and ensure the data is replicated correctly to the client every time the server experiences an update in data.

hacky workaround is to sandbox all descendants including script from serverscriptservice, starterplayer and all replicatedstorage descendants

then it worked for me but your point is valid it should work without having to sandbox descendants

This is happening to a popular asset of mine which this has completely broken.

My script inserts a BindableEvent to recreate a rbxscriptconnection to have useable events you can connect to in my API.

https://create.roblox.com/store/asset/8314640895/CanvasDraw

After weeks of going insane with all sorts of methods to stop this even as far as using chat messages to communicate between server and client
I finally found out a temporary fix, I just set all Remote & Bindable Events to be Sandboxed and for anything that create a new BindableEvent as a connection, don’t do that, but rather insert it as an object somewhere you want, set it to Sandboxed = true as well, then Clone() it everytime you need one since Instance.new() does not set Sandboxed properly