Thanks @josh. I was first able to get in via Incognito window, and then finally in a new browser window but only after burning through 5 one-time codes, which I’m lucky I had stored.
In terms of process, when you say “waiting for a new token”, can you explain what you mean? As far as I can tell, Bubble’s 2FA process is that I need to already be logged into Bubble to use Authy to generate a set of a half-dozen one-time codes, which I then need to store offline, and then when prompted to enter a 2FA upon logging in, I need to dig up one of those “backup” codes to enter into the Bubble 2FA prompt, which seems wrong. But the continuously-regenerating code from Authy itself does not work when entered. Is this the correct protocol? (And what happens if one accidentally runs out of backup codes stored offline?)