Troubleshooting
Fix common SuperPenguin SDK, attribution, and provider-connection issues.
No rows appear after wrapping
- Confirm
sp.init/initran with a valid key, or thatSP_API_KEYis set in the same process. - Confirm the client you call is the wrapped client (or a tracked Vercel AI / batch helper).
- For TypeScript serverless, keep the default immediate flush mode, or
await flush()before exit. - For Python short scripts, call
sp.flush()before process exit. - Check that ingest errors are not being swallowed only in logs (
throwOnError/onErrorin TypeScript).
Cost shows as $0
- The model may be missing from the pricing catalog (usage still tracks).
- Bedrock rows are priced server-side; client cost is intentionally
0. - Batch jobs need an explicit
track_*_batch/track*Batchcall after success.
Azure estimates look like Global rates
Azure region is not auto-captured. SDK estimates use Global Standard unless you pass wrap-level region (Azure location code such as eastus2, not East US 2 or us-east-2) and deployment_type ("regional" or "data-zone", with the hyphen). Connecting Azure for billed spend already uses invoice amounts. See Batch and service-tier pricing.
Metadata missing in the dashboard
- Prefer
sp.metadata()/spMetadataover provider-native fields that validators reject. - Remember precedence: per-call > trace/context > wrap defaults.
- Custom keys become tags; reserved pricing keys (
region,service_tier, ...) are first-class fields.
Content capture not appearing
Capture requires the org Settings opt-in (Pro/Enterprise), SDK allow not vetoing, and sampling. SDK configure helpers cannot enable capture by themselves. Set session_id / turn_id to group turns.
Provider connection sync issues
- Re-check credentials and scopes in the dashboard connection.
- Confirm the provider account has usage in the backfill window.
- For provider implementers, run the conformance runner against your sandbox.
Hosted OTLP / OpenRouter Broadcast
401: verify the dedicated source key and exactAuthorization: Bearer …header. A revoked API key cannot ingest.403: the key is valid but has no active Hosted OpenTelemetry source, or the workspace trial is read-only.413: reduce exporter batch size; the uncompressed JSON limit is 4 MiB.415: useapplication/jsonwith identity or gzip encoding; protobuf is not supported.503: retry; SuperPenguin does not return success until Pub/Sub acknowledges every accepted row.- Connection test is green but no rows: the empty test proves only endpoint/auth reachability. Make one model call and check First generation received.
- Totals are low: check the declared Broadcast sampling rate. SuperPenguin does not extrapolate sampled dollars.
- Totals are high: make sure the same OpenRouter traffic is not going through both an SDK wrapper and Broadcast without a shared generation ID.
See Hosted OpenTelemetry ingestion for the full response contract.
Still stuck?
Email [email protected] with your org name, SDK language/version, provider, and a non-secret description of the failing path.