This really ressembles an issue that was previously resolved, but _*IS BACK_* and exists in the newer snapshots (20w17a, 20w18a, 20w19a), with a bit more specificity. My previous entry was marked as a duplicate of MC-150945 when in actuality MC-150945 has been a closed entry since 1.14, while this affects recent snapshots, meaning this isn't necessarily the same bug, but might have similar root causes.
N.B. For designated mod: I want to make it clear, I really don't post on here for fun; I'm reporting a game crashing bug affecting newer versions of the game. It's unclear if the bug's cause is identical to its previous iteration or if it returned due to a recent addition/bug fix. But in either case, same bug or different bug, it's affecting snapshots and will crash the game so long as it isn't patched, which wont happen if you shut off reopened issues like this one.
To replicate the bug:
Change of pages of a writable book that you aldready wrote into it. Going forwards in the book's pages doesn't always cause a crash, but going backwards too quickly always crashes the game client-side, probably due to data compression.
Crash message:
Error: java.lang.StringIndexOutOfBoundsException: String index out of range: (variable integer here).
My guess is that the unsigned written book recieves too many "go backwards" demands due to server-side lag. and tries to go to negative pages (or simply overflows).
The big problem is that the game crashes due to this, making it a real pain to write in a book. When reloading the game, all unsaved written data gets wiped, meaning you'd have to start all over again.
Only attempted in multiplayer, not sure if the bug can be replicated in singleplayer. The server keeps running, but client crashes.
Are you sure you are on 20w19a? This seems almost the excact same as MC-179868, which is different from the bugs you mentioned in your report, and this bug was fixed in 20w18a...