b64encode returns a bytes object, meaning that SyncToken.build_sync_token returns something like b'eyrestOfToken'. When we later set it as a header, Flask (or something else internally) calls str on whatever was passed. A str'd bytes object wraps it in quotes in its repr'd form, so we get "b'eyrestOfToken" which is not base64-decodable.
This fixes an issue where sync tokens can never be read and endlessly loop, causing every sync to fail.
b64encode
returns abytes
object, meaning thatSyncToken.build_sync_token
returns something likeb'eyrestOfToken'
. When we later set it as a header, Flask (or something else internally) callsstr
on whatever was passed. Astr
'dbytes
object wraps it in quotes in its repr'd form, so we get"b'eyrestOfToken"
which is not base64-decodable.This fixes an issue where sync tokens can never be read and endlessly loop, causing every sync to fail.