The sequence FTS uses is to get an access token (AT), then do an exchange for a refresh token (RT) then do a refresh using the RT to get both a new AT and RT. Ersatz clients should be refreshable after multiple exchanges. A bug found was that the exchange creates the ersatz client and forks it, but the refresh does not fully recover the newly formed ersatz client (which may inherit state from its provisioner).
I.e. after forking a flow, subsequent uses of the now forked client are fully initialized.
The sequence FTS uses is to get an access token (AT), then do an exchange for a refresh token (RT) then do a refresh using the RT to get both a new AT and RT. Ersatz clients should be refreshable after multiple exchanges. A bug found was that the exchange creates the ersatz client and forks it, but the refresh does not fully recover the newly formed ersatz client (which may inherit state from its provisioner).
I.e. after forking a flow, subsequent uses of the now forked client are fully initialized.