Summary
Every submit on https://console.typesafe.ai/login fails with HTTP 500 (Internal Server Error, 21-byte text/plain body). Sign-in and sign-up are both impossible, so no API key can be obtained and Jev cannot be evaluated at all.
Reproducible 100% of the time across ~10 attempts over two days (2026-09-21 ~13:00 UTC → 2026-09-22 ~23:10 UTC). The API itself is healthy; only the console's server actions are broken.
Repro
GET https://console.typesafe.ai/login → 200, form renders normally
- Type any email → click Continue →
POST /login → 500 Internal Server Error
Same result with all three auth paths:
| Action |
Result |
| email + Continue |
500 |
| Email me a code instead |
500 |
| Continue with Google |
500 |
Two different addresses both 500 identically (<redacted>@126.com and nobody@example.com), so it fails before any email validation / disposable-domain logic.
Evidence that this is server-side (not client, not headless, not network)
- Captured the browser's exact action POST (652-byte
multipart/form-data, fields $ACTION_REF_4 / $ACTION_4:0..2) and replayed it byte-for-byte with Python urllib from a different client → same 500. Timings/headers identical.
- The 500 response is produced by your Next.js app, not by an edge proxy:
content-security-policy: ... nonce-..., vary: rsc, next-router-state-tree, next-router-prefetch, x-envoy-upstream-service-time: **8**, etag, content-type: text/plain, content-length: 21, body Internal Server Error. (8 ms upstream time suggests it throws very early, before any provider/network call.)
GET /login returns no Set-Cookie header at all — unusual for an auth page. If the action expects a session/CSRF cookie that is never issued, it would throw immediately.
- No captcha / turnstile / challenge in the markup.
Not the cause (ruled out)
- Network / region / bot detection — plain
GETs render fine, no Cloudflare interstitial; two different clients and two different source setups give the same 500.
- Email domain —
example.com fails identically to a real mailbox.
- The API —
POST https://api.typesafe.ai/v1/systemone without a key returns 403 {"error_type":"authentication_error","message":"Must supply an API key!"}, so the API is up and only the console is broken.
- Too-large request — the replayed body is 652 bytes.
Survives redeploy
- 2026-09-21: page referenced
dpl=cc6f6dca06537cc04123caaaf50ca5a76d506a92 → 500
- 2026-09-22 (after your SDK pushes around 21:00–23:00 UTC):
dpl=65151472c487a903db771106175ac5d5dee8252d → still 500
Suggestion: monitor the console
status.typesafe.ai reports "All services are online", but it only monitors api.typesafe.ai. The console is not monitored, so an outage like this is invisible on the status page. Adding console + auth to the status page would help users tell "it's us, not you" quickly.
Impact
With no way to sign in, there is no way to reach the keys page the docs point to ("Get your API key from the dashboard"), and there is currently no alternative route to a key.
Happy to provide the captured request/response dumps (headers + body) if that helps — just say the word.
Summary
Every submit on https://console.typesafe.ai/login fails with HTTP 500 (
Internal Server Error, 21-bytetext/plainbody). Sign-in and sign-up are both impossible, so no API key can be obtained and Jev cannot be evaluated at all.Reproducible 100% of the time across ~10 attempts over two days (2026-09-21 ~13:00 UTC → 2026-09-22 ~23:10 UTC). The API itself is healthy; only the console's server actions are broken.
Repro
GET https://console.typesafe.ai/login→ 200, form renders normallyPOST /login→ 500 Internal Server ErrorSame result with all three auth paths:
Two different addresses both 500 identically (
<redacted>@126.comandnobody@example.com), so it fails before any email validation / disposable-domain logic.Evidence that this is server-side (not client, not headless, not network)
multipart/form-data, fields$ACTION_REF_4/$ACTION_4:0..2) and replayed it byte-for-byte with Pythonurllibfrom a different client → same 500. Timings/headers identical.content-security-policy: ... nonce-...,vary: rsc, next-router-state-tree, next-router-prefetch,x-envoy-upstream-service-time: **8**,etag,content-type: text/plain,content-length: 21, bodyInternal Server Error. (8 ms upstream time suggests it throws very early, before any provider/network call.)GET /loginreturns noSet-Cookieheader at all — unusual for an auth page. If the action expects a session/CSRF cookie that is never issued, it would throw immediately.Not the cause (ruled out)
GETs render fine, no Cloudflare interstitial; two different clients and two different source setups give the same 500.example.comfails identically to a real mailbox.POST https://api.typesafe.ai/v1/systemonewithout a key returns403 {"error_type":"authentication_error","message":"Must supply an API key!"}, so the API is up and only the console is broken.Survives redeploy
dpl=cc6f6dca06537cc04123caaaf50ca5a76d506a92→ 500dpl=65151472c487a903db771106175ac5d5dee8252d→ still 500Suggestion: monitor the console
status.typesafe.aireports "All services are online", but it only monitorsapi.typesafe.ai. The console is not monitored, so an outage like this is invisible on the status page. Adding console + auth to the status page would help users tell "it's us, not you" quickly.Impact
With no way to sign in, there is no way to reach the keys page the docs point to ("Get your API key from the dashboard"), and there is currently no alternative route to a key.
Happy to provide the captured request/response dumps (headers + body) if that helps — just say the word.