I am working on a world that uses manual sync to store large amounts of data, potentially up to 16mb. This data is spread across 4*16 Behaviours, each syncing a max of ~260kB of data.
When a player joins an instance, they will receive any previously synced data on join, all at once.
When the amount of data reaches a certain threshold, about 6mb or so, it becomes too much for either the server or the client to handle, and the player is unable to join:
Debug - [Behaviour] Holding recovery payload until all bunches are received.
---------- Repeats 4500 times ------
Error - Got DisconnectMessage. Code: -11 Msg: "SendBufferFull". Debug Info: {}
Debug - [Behaviour] Holding recovery payload until all bunches are received.
---------- Repeats 500 times ------
Debug - [Behaviour] OnLeftRoom
Debug - [Behaviour] Cleaning up held messages
Debug - [Behaviour] OnPlayerLeft Roughy~ (usr_826b49cd-2e24-4a54-8435-3344dfe9512d)
Debug - Removed player Roughy~
Debug - [Behaviour] OnDisconnected: DisconnectByDisconnectMessage
A full log of multiple join attempts is attached.
The same problem was experienced by multiple users.
Separating the data into smaller objects ( ~64kb per object instead of 260kb ) yields the same results.
The "SendBufferFull" error itself appears to originate in Photon, and as the name suggests it's just trying to send too much data too fast. Players already in the instance do not appear to be affected in any way.
This effectively means there's a limit of about 5mb of synced data. Is this an intentional limit or a bug?