Thanks for the example, that is helpful! So the state value is present in the initial authorization URL, and it does not look like your integration is failing to generate it.
If it disappears only after Klaviyo redirects an unauthenticated user through the login step, that would be unexpected OAuth behavior.
At this point, I would recommend that you escalate this to the Klaviyo Support team as a reproducible issue and include the client ID, redirect URI, authorization URL with sensitive values redacted, the callback URL, timestamps, and the exact steps showing that the issue occurs only when the user is not already logged in. It would also be worth confirming that the URL is sent without any added spaces or line breaks and that the encoded state value is identical before the redirect.
Based on the example you shared, this now looks more like a problem in the login-to-authorization redirect flow than an issue with how your app stores the verifier.
Let me know if you have any trouble creating the ticket with Support!
Temi@Klaviyo