Jev unauthorized errors
Symptom: 401 Unauthorized or a platform 403 about a missing API key. No answers object.
TypeSafe’s API reference: 401 means missing or invalid API key — check the Authorization header. This site cannot mint a replacement. Independent unofficial notes. Official: docs.typesafe.ai.
Decision tree
Which door did you call?
├─ api.typesafe.ai or official SDK
│ ├─ header missing / TYPESAFE_API_KEY unset → export a console key
│ ├─ key revoked / typo / extra quotes → rotate in the dashboard
│ └─ Bearer scheme wrong → Authorization Bearer token
├─ Vercel AI Gateway / AI SDK
│ ├─ local OIDC stale (~12h per Vercel KB) → `vercel env pull` again
│ ├─ customer verification / billing hold → Vercel account, not Jev
│ └─ wrong provider (chat path) → evaluation model id typesafe-ai/jev
├─ OpenRouter
│ ├─ OPENROUTER_API_KEY missing → 401/403 from OpenRouter
│ └─ credit = 0 → 402 (billing), not 401
└─ Cloudflare Workers AI
├─ token lacks Workers AI permission
└─ env.AI binding missing in wrangler
Do not retry 401. Fix credentials. Official SDKs retry 429/529 only.
First-party checklist
- Key from console.typesafe.ai after waitlist — not from jev.pro.
- Env var name for official SDKs:
TYPESAFE_API_KEY. - curl:
-H "Authorization: Bearer $TYPESAFE_API_KEY". - Never commit the token.
Channel callouts
| Code / message | Whose problem |
|---|---|
TypeSafe 401 |
Their bearer |
| “Must supply an API key” 403 on a marketplace | That marketplace’s auth docs |
| Vercel customer verification | Vercel |
OpenRouter 402 |
OpenRouter wallet |
These stay callouts so we do not clone a rival per-status IA.
401 vs marketplace 403 / 402
First-party TypeSafe documents 401 / 422 / 429 / 529 on POST https://api.typesafe.ai/v1/systemone. A marketplace 403 (“must supply an API key”) or 402 (insufficient credit) is that vendor’s ledger, not a TypeSafe schema bug. Do not treat 402 as “rotate TYPESAFE_API_KEY.” Do not treat a stale Vercel OIDC 401 as a Jev criterion error — pull env again; see serverless channel.
Cause → fix (first-party 401): missing/invalid Authorization: Bearer. Export a console key you already have, or rotate a revoked token. We do not sell, issue, or proxy keys.
Cause → fix (marketplace 403/402): read that host’s auth and billing docs. OpenRouter 402 is wallet. Cloudflare 403 is often a token scope or missing env.AI. REST model ids are not portable — REST channel.
If you got JSON answers, this is not unauthorized. Look at confidence or invalid input (422 names the field). Envelope shape: error envelope.
A local script that prints “Unauthorized” after a weekend is usually a stale Vercel OIDC pull or an extra quote around TYPESAFE_API_KEY. Strip quotes, pull env again, and confirm you are not sending the Gateway model id to api.typesafe.ai. First-party 401 will not become 200 because you waited. Marketplace 402 will not become 200 because you rotated a TypeSafe key. Fix the door that answered.
FAQ
Does 401 mean my question schema is wrong? No. Schema issues are 422. See invalid input.
Can a waitlisted account get 401? If you have no key, you cannot authenticate. Join the official waitlist; we do not expedite.
Should the SDK retry 401? No. Official SDKs retry 429/529 only. Retrying 401 will not mint a key.
Is OpenRouter 402 a TypeSafe status? No. It is OpenRouter billing. TypeSafe’s table does not list 402.
Hub: Errors. Siblings: invalid input, API keys.
Disclaimer
This is an independent unofficial site and is not affiliated with TypeSafe AI; official documentation is available at https://docs.typesafe.ai. Never treat jev.pro as TypeSafe official documentation. We do not sell, issue, or proxy API keys.