Troubleshooting — common errors and fixes

The errors you're most likely to hit and what to do about each one.

"Verification link expired" on signup

Verification links from Supabase expire after 24 hours. Go to /auth/verify-email and clickResend (one resend per 30 seconds). If your account is older than that and you still see the unverified screen, contact support — we can manually flip the verified flag.

"HTTP 402 upgrade_required" on a chat or upload

You've hit a per-user quota. The JSON body tells you which:

  • limit_hit: queries_quota_month — out of monthly chat queries
  • limit_hit: sources_quota — out of total source slots; delete some or upgrade
  • limit_hit: vaults_quota — too many active vaults; archive one
  • limit_hit: scholarflow_quota_day — daily ScholarFlow ingest cap
  • limit_hit: cost_cap_day_usd — you spent your daily Gemini budget

For all five, the fix is either wait for the reset (queries, scholarflow, cost = daily/monthly) or upgrade. See quotas.

"HTTP 429" on the public demo or signup

Anonymous demo: 5 questions per IP per day. Sign up to keep chatting. Signup: 5 attempts per IP per hour (anti-bot). Wait an hour or sign in from a different network.

Source uploaded but status stays "processing"

Ingestion usually takes 10-60s. If it's been >5 minutes:

  • Refresh the page (UI sometimes misses the websocket update)
  • Check the source detail — if status is "failed" with an error message, retry with the displayed reason in mind
  • Common failure: PDFs without OCR — extract text yourself and re-upload as .txt
  • YouTube without captions — try a different video or download captions and upload as .txt

"I can only answer questions about the documents in this vault"

Off-topic refusal (intentional). Try:

  • Adding more specific keywords (a peptide abbreviation, author name)
  • Asking about a more concrete aspect (mechanism, dosing, side effects)
  • Confirming the source is actually about your question — open the source PDF and search for the term first

If you're convinced the corpus DOES contain the answer and you still get refused, share the share link with [email protected].

Chat answer cites a page but the citation looks wrong

Click the citation card — it shows the snippet the model actually grounded on. If that snippet doesn't support the claim, that's a hallucination escape (rare but possible). Share the share link of the bad answer and we'll investigate.

Stripe checkout completed but I'm still on Free

Webhook delivery is async — usually 5-10 seconds but can take a minute. Refresh /billing after a beat. If still on Free after 5 minutes, email [email protected] with your Stripe receipt — we'll flip the tier manually and look at the webhook log.

I forgot my password / can't access my email

Password reset is at /auth/forgot-password and requires email access. If the account email is also lost, email support with any payment receipts or share-link URLs that prove account ownership — we'll work through manual recovery.

The site is just slow today

Check status.peptidesvault.local for the current health snapshot. Most slowdowns are Gemini API latency on our side; usually resolves within minutes.

Where to send everything else

Related articles