Capabilities by runtime
What each runtime can send to Belvador: automatic, you call it, or not possible — and which ones a test proves.
On this page
What each runtime can send to Belvador, generated from the same list the SDK tests check. Automatic needs no code beyond setup; You call it needs a function call in your code; Not possible cannot work on that runtime. Tested means a test in Belvador's repository runs it; seen in production adds the date it was confirmed on a real customer app; untested means it follows the same protocol but nobody has run it here yet.
Errors and connection#
| Runtime | Uncaught errors | Errors you send | Connection check | Dropped-data counts |
|---|---|---|---|---|
Browser (@belvador/browser) | Automatic · tested | You call it · tested | You call it · tested | Automatic · tested |
React (@belvador/react) | Automatic · tested | You call it · tested | — | — |
| TanStack Start — browser | Automatic · tested | — | — | — |
| TanStack Start — server | Automatic · tested | You call it · tested | You call it · seen in production 2026-10-19 | — |
| Cloudflare Workers | Automatic · tested | You call it · tested | You call it · tested | — |
Node.js (@sentry/node) | Automatic · tested on a real node 2026-10-27 | You call it · tested | — | — |
Bun (@sentry/bun) | Automatic · tested on a real node 2026-10-27 | You call it · tested on a real node 2026-10-27 | — | — |
Supabase Edge Functions (@sentry/deno) | You call it · tested on a real node 2026-10-27 | You call it · tested on a real node 2026-10-27 | — | — |
Python (sentry-sdk) | Automatic · tested on a real node 2026-10-27 | You call it · tested | — | — |
| Other Sentry SDKs (Go, PHP, Ruby, Java, .NET) | — | You call it · untested, experimental | — | — |
Background work, traces, source maps#
| Runtime | Monitor check-ins | Trace headers | Source maps |
|---|---|---|---|
Browser (@belvador/browser) | Not possible | You call it · tested, experimental | You call it · tested |
React (@belvador/react) | Not possible | — | — |
| TanStack Start — browser | — | You call it · tested, experimental | — |
| TanStack Start — server | You call it · tested | — | — |
| Cloudflare Workers | You call it · tested | You call it · tested | — |
Node.js (@sentry/node) | You call it · tested | You call it · tested | — |
Python (sentry-sdk) | You call it · tested | You call it · tested | — |
Go (sentry-go) | — | You call it · tested | — |
Java (sentry-java) | — | You call it · tested | — |
HTTP (curl) | You call it · tested | — | — |
| Other Sentry SDKs (Go, PHP, Ruby, Java, .NET) | You call it · untested, experimental | — | — |
Traces and logs (OpenTelemetry)#
These rows come from Belvador's certification harness, which runs a real app on each runtime against a full local copy of the pipeline and reads every span and log back; the date and versions are those of the last passing run. Linked to traces means log records carried the request's trace id and span id. Setup for each runtime: OpenTelemetry.
| Runtime | Traces | Logs | Tested with |
|---|---|---|---|
| Node.js (OpenTelemetry, CJS + ESM) | Automatic · tested | Automatic · tested · linked to traces | node 22.23.4, @opentelemetry/sdk-node 0.300.0, @opentelemetry/auto-instrumentations-node 0.82.0, pino 10.4.0 (2026-10-24) |
| Python (OpenTelemetry) | Automatic · tested | Automatic · tested · linked to traces | python 3.12.15, opentelemetry-distro 0.66b1, opentelemetry-sdk 1.45.1, flask 3.1.3 (2026-10-25) |
| Go (OpenTelemetry) | You call it · tested | You call it · tested · linked to traces | go 1.27.3, go.opentelemetry.io/otel v1.47.0, otelhttp v0.72.0, otelslog v0.21.0 (2026-10-24) |
| Java (OpenTelemetry Java agent) | Automatic · tested | Automatic · tested · linked to traces | java 21.0.12.1, opentelemetry-javaagent 2.32.0 (2026-10-24) |
| Deno (built-in OpenTelemetry) | Automatic · tested · no retry on 429/503 | Automatic · tested · linked to traces · no retry on 429/503 | deno 2.6.10 (2026-10-24) |
| OpenTelemetry Collector | You call it · tested | You call it · tested | otelcol-contrib 0.163.1, telemetrygen v0.163.0 (2026-10-27) |
| Cloudflare Workers (built-in OTLP export) | Automatic · untested, planned | Automatic · untested, planned | — |
| Vercel (Trace Drains) | Automatic · untested, planned | Not possible | — |
| Supabase (OTLP log drain) | Not possible | Automatic · untested, planned | — |
Notes#
Monitor check-ins never come from browsers: Belvador refuses them, so a closed tab is never a failed job. Use a server, a worker or HTTP check-ins.
Trace headers in browsers are experimental: they work, but turn them on per API only after checking its CORS settings — see Link errors across tiers.
Dropped-data counts are the SDK's client reports: how many events it dropped and why (rate limit, offline, queue full). They feed the project's Connection tab.
Source maps are uploaded from CI, not sent by the SDK — see Source maps.
Rows marked untested are best effort. If one does not work, tell us at hello@belvador.dev.
For the data each Belvador package sends — and what it drops before anything leaves your app — see Choose the right SDK.
Spotted something wrong or missing? Tell us: hello@belvador.dev