A couple of small details usually cause the “empty state” response you’re seeing:
Same userID ‑ the string must be byte-for-byte identical in both calls • `/state/user/+15364967523` and `/state/user/%2B15364967523` are NOT the same to the API. Pick one representation and reuse it for every request (PUT, GET, POST…).
Same versionID ‑ state is stored separately for each version alias • If you left the header off on one call, Voiceflow defaults to the `production` alias. • Add the header on every call and keep it identical, e.g. `versionID: development`
Use PUT (not PATCH) when you update state • Example to set variables only:```httpPUT https://general-runtime.voiceflow.com/state/user/+15364967523Authorization: VF.DM.xxxxxversionID: developmentContent-Type: application/json
Both are in production. Both are exactly the same string. PUT doesn't work. I deleted state for both strings, but the old variables still get used. Something is not working.