Breaking Changes
- Some
reflex cloudcommands changed what they report: (#7207)- A refused request exits non-zero instead of printing a
"... failed: ..."line and exiting 0, and--jsonwrites no document. This includesvmtypesandregions, which answered a failed request with an empty listing, andapps stop,apps startandapps delete, which now report their own outcome rather than echoing the server's message. apps history --jsonreplaceshostnamewith the deployment'surl, reportsvm typeas the machine's name rather than an object, and reportstimestampas an ISO 8601 string with an offset.apps inspect --jsondropshostnamefromlatest_deployment.create-token --jsonreplacesexpires_in_dayswithexpires_at, an ISO 8601 string ornull, carrying the expiry the server applied.apps logsdrops its unused--cursoroption, and its--jsondocument returns every line in the window rather than one page.apps status --watch --jsonreports"success": nullwhen the watch stopped before the deployment finished.project role-permissionslists permission names rather than objects.reflex deployrequires a control plane that signs upload URLs; the multipart upload fallback for older ones, and its "payload is too large (over 100MB)" hint, are gone.
- A refused request exits non-zero instead of printing a
- Require Python 3.11 or newer; Python 3.10 is no longer supported. (#7449)
Bug Fixes
reflex cloudreports a refusal as the sentence the API wrote rather than a message of its own, and an expired token now says to runreflex loginwherever it turns up — not only where a command started by authenticating. (#7207)reflex cloud apps deletenow exits non-zero when the app ID is not found. (#7295)- With
--no-interactive, a rejected access token now fails right away with the same messagereflex cloud whoamigives, instead of starting the browser login. (#7298) - Preserve a different stored access token when authentication rejects an outdated or explicitly supplied token. (#7321)
reflex deploynow consistently shows the "Built with Reflex" badge on apps deployed on the free tier, including apps built with earlier reflex releases. Paid plans can still hide it withshow_built_with_reflex=False. (#7333)reflex cloud apps list,apps historyandapps inspectkeep app names and app and deployment IDs whole on one line, so you can copy them from a normal-width terminal.apps listandapps historyshow fewer columns;--jsonstill returns every field.apps inspectshows one field per row. Tables no longer draw cell borders. (#7351)reflex cloud secrets updatenow prints a success line naming the keys it set and whether the app is rebooting, likesecrets deletealready did. Only key names are printed; values are never logged. (#7352)- Fail
reflex deploybefore building when an explicitly requested project does not exist or does not own the selected app. Accept equivalent UUID spellings, including uppercase and unhyphenated project IDs. (#7355)
Miscellaneous
reflex-hosting-clinow talks to Reflex Build throughreflex-build-sdk, so every command shares the SDK's retries, timeouts and typed errors. While the SDK is pre-1.0, the CLI pins it to a single patch line, so upgradereflex-hosting-clito move to a newer SDK rather than upgrading the SDK on its own. (#7207)