This question is best asked in code…
import * as Y from 'yjs'
import { fromUint8Array, toUint8Array } from 'js-base64'
const doc1 = new Y.Doc()
const map = doc1.getMap('foo')
map.set('bar', 'baz')
console.log(doc1.get('foo').toJSON())
// {bar: 'baz'}
const update = Y.encodeStateAsUpdate(doc1)
const base64encoded = fromUint8Array(update)
console.log(base64encoded)
// AQGksM/gCwAoAQNmb28DYmFyAXcDYmF6AA==
const doc2 = new Y.Doc()
Y.applyUpdate(doc2, toUint8Array(base64encoded))
console.log(doc2.get('foo').toJSON())
// undefined
Why hasn’t doc2 synced? I’d expect the final console.log
output to be { bar: 'baz' }
to match doc1