# Sentry: v11 SDK against old self-hosted silently misbehaves

## The error

You upgraded `@sentry/node` or `@sentry/browser` to v11 against a self-hosted Sentry older than 26.4.2. Symptoms are vague: traces incomplete, new span fields missing, odd ingestion errors. The docs say lower versions may continue to work, but are not supported, which in practice means partial breakage, not a clean failure.

## Why

v11 changed the wire format: span streaming sends spans in batches as they finish instead of one transaction payload at the end, `sendDefaultPii` became `dataCollection` with new categories, and attributes replaced tags on spans. An old server does not understand the new shapes.

## Confirmation

Check your self-hosted version (Admin > Stats or the install compose file) against the 26.4.2 floor. If the SDK is v11 and the server is older, that is the problem regardless of which symptom you saw first.

## Fix

Upgrade self-hosted to the latest release (the docs recommend latest, not just the floor). Until then, pin the SDK to v10.x, which the old server understands. Do not run a mixed fleet: v10 and v11 SDKs against the same old server produce inconsistent data that is painful to reconcile later.

## Related self-hosted trap

Self-hosted does not ship the lazy-loadable JS SDK bundles by default, so the Sentry loader snippet renders a noop stub. Either set `SETUP_JS_SDK_ASSETS=1` in your self-hosted `.env` (available since 24.10.0) and configure the loader URL, or ship the npm bundle instead of the loader.