Large Array of Structs Not Replicating, Crashing Custom GameState

I am working on a board game project, and currently am representing each tile on the board with a struct which I store in an array called Board. When I scale the size up, the board generates perfectly fine on the server, but after about 700 tiles the Board variable (stored in a custom GameState) stops replicating, and the GameState class seemingly crashes with any subsequent casts to it failing completely. Or maybe it doesn’t even initialize, not sure.

Here’s the struct in question:

By default, the Road and Corner Tile arrays simply contain one empty struct with an int and GUID.

At first I thought the issue was with actor replication, but after removing all the board tile actors and simply trying to sync the board variable itself, it seems the size of the variable is directly related to the issue. After 700, it screws up the client, and after about 2000 it crashes the client back to the main menu. After 7000 it crashes the editor completely.

I disconnected all of the logic that was using the board variable, so now the variable isn’t even being used anywhere, just stored. Is there a max size for replicated variables? I saw somewhere that suggested using data actors instead of one large list, is that a better method? On the server, I have no problems performing any operation in linear time, though it does cause minor stutters when doing operations in quadratic time. So UE4 can definitely handle it, but the problem seems to be in getting that data to the client.

Here’s the crash report:

LoginId:a7aeaf364274582b5d119091427c2aeb
EpicAccountId:f2d2cafc7b6247e287fe9e5f8e83c4a8

Assertion failed: CmdIndexIterator->ChangelistIterator.ChangedIndex - OldChangedIndex <= ArrayChangedCount [File:D:/Build/++UE4/Sync/Engine/Source/Runtime/Engine/Private/RepLayout.cpp] [Line: 1662]

UE4Editor_Core
UE4Editor_Core
UE4Editor_Core
UE4Editor_Core
UE4Editor_Engine
UE4Editor_Engine
UE4Editor_Engine
UE4Editor_Engine
UE4Editor_Engine
UE4Editor_Engine
UE4Editor_Engine
UE4Editor_Engine
UE4Editor_Engine
UE4Editor_Engine
UE4Editor_Engine
UE4Editor_UnrealEd
UE4Editor_UnrealEd
UE4Editor
UE4Editor
UE4Editor
UE4Editor
UE4Editor
kernel32
ntdll

And stat net for a crash back to main menu:

and stat net for a working size (no crash):

I don’t know if I’m understanding this correctly, but it seems that it’s only transmitting 300 KB, which I don’t think is that bad, right? Especially if it’s just a one time thing.

Okay, sort of solved—got rid of the Board array and moved the struct containing the data to each board tile actor. Works fine and replicates to the client like it should. It stops replicating the actors before it runs into any issues, and that’s with absurd board sizes, so looks like I have nothing to worry about.

Still weird how large arrays of structs don’t replicate.