"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 querieslimit_hit: sources_quota— out of total source slots; delete some or upgradelimit_hit: vaults_quota— too many active vaults; archive onelimit_hit: scholarflow_quota_day— daily ScholarFlow ingest caplimit_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
- Bugs / wrong answers: [email protected]
- Billing questions: [email protected]
- Feature requests / everything else: [email protected]
- Security disclosure: [email protected]