All Docs
FeaturesAgentOS WorkUpdated March 11, 2026

Fixing the Pricing Page Sign-Up Loop in v1.0.13

Fixing the Pricing Page Sign-Up Loop in v1.0.13

What Was Found

In v1.0.13 we identified a silent navigation loop affecting users who click any call-to-action on the pricing page — including the prominent "Get Started" button and individual plan CTAs.

The flow looked like this:

Pricing Page (/pricing)
  → User clicks "Get Started" or plan CTA
  → Navigates to /sign-up
  → /sign-up immediately redirects to /sign-in
  → User lands on the sign-in page with no explanation

A user who has never created an account and clicks "Get Started" reasonably expects to be taken through a registration flow. Instead, they end up on the sign-in screen — which implies they already have an account. This creates friction and confusion at one of the most critical conversion points in the product.

Why It Matters

  • New visitors arriving on the pricing page are among the highest-intent users. A broken or misleading registration path directly impacts activation.
  • No error is thrown — the redirect is silent, so the issue is easy to overlook in automated testing.
  • Both entry points are affected: the homepage (/) and the dedicated pricing page (/pricing) both contain CTAs that hit the same broken route.

Affected Files

FileRole
src/app/page.tsxHomepage — contains "Get Started" CTA pointing to /sign-up
src/app/pricing/page.tsxPricing page — contains per-plan CTAs pointing to /sign-up
src/app/sign-up/[[...sign-up]]/page.tsxSign-up route — currently redirects immediately to /sign-in

Recommended Fix

There are two valid remediation paths depending on product priorities:

Option A — Quick Fix: Redirect CTAs to /sign-in

Update the href on all affected CTA buttons from /sign-up to /sign-in. This aligns the UI with the current actual behaviour and eliminates the confusing bounce.

// Before
<Button href="/sign-up">Get Started</Button>

// After
<Button href="/sign-in">Get Started</Button>

Pros: Immediate, low-risk change.
Cons: Does not provide a dedicated registration experience; new and returning users share the same entry point.

Option B — Full Fix: Implement a Real Sign-Up Page

Replace the redirect in src/app/sign-up/[[...sign-up]]/page.tsx with an actual registration UI. At minimum this should include:

  • OAuth provider button(s) (e.g. Google, Microsoft)
  • Optional: email + password form
  • A link back to /sign-in for returning users
// src/app/sign-up/[[...sign-up]]/page.tsx
export default function SignUpPage() {
  return (
    <main>
      <h1>Create your account</h1>
      {/* OAuth buttons */}
      {/* Registration form */}
      <p>Already have an account? <a href="/sign-in">Sign in</a></p>
    </main>
  );
}

Pros: Delivers the expected UX; supports distinct onboarding analytics.
Cons: Requires more implementation effort.

Summary

This is a user-facing flow issue — not a runtime error — but it sits directly in the path of new user acquisition. Addressing it (via either option above) should be treated as a high-priority UX fix before any significant marketing or user growth activity.