Skip to content
Back to news
finance9/14/2026

Fixed: Billing and Overview Pages No Longer Disagree on Your Plan

A bug that made the Billing and Overview pages show two different plans for the same workspace has been fixed — both now read from the same source.

financebugfixbilling

If you ever opened the Finance app and saw your plan listed as "Free" on one page while another page correctly showed your paid plan, that wasn't a caching glitch or a display quirk — it was a real bug, and it's now fixed.

What was actually wrong

The Billing page was sending its request for plan information with an authorization header built from a token read out of sessionStorage. The problem: nothing in the app ever wrote a token to that key. Workspace authentication in Finance runs through an HTTP-only cookie set by the app's own middleware, not through a bearer token stored in the browser. So every request the Billing page made for plan data was sent with a header that pointed at a value that didn't exist, the request failed its authorization check, and the page quietly fell back to a hard-coded default of "Free" — regardless of what plan the workspace was actually on.

Meanwhile, the Overview page's plan card made no such request with that header at all, so it kept showing your actual plan correctly the whole time. The result was two pages in the same app, looking at the same workspace, disagreeing with each other — one right, one silently wrong.

What's true now

Both pages have been moved onto a single shared plan hook that reads from the workspace-plan endpoint the correct way, with no dependency on a token that was never being written. Billing and Overview now read from the same source and will always agree on what your workspace is actually subscribed to.

Why we're calling this out plainly

A billing page that misreports your own plan is exactly the kind of bug that erodes trust fastest, even when it's "just" a display issue and not a charge issue — nobody wants to second-guess what they're paying for. This one is fixed, verified against the same code path both pages now share, and there's nothing further you need to do on your end.