SuperPenguin Docs

Troubleshooting

Fix common SuperPenguin SDK, attribution, and provider-connection issues.

No rows appear after wrapping

  1. Confirm sp.init / init ran with a valid key, or that SP_API_KEY is set in the same process.
  2. Confirm the client you call is the wrapped client (or a tracked Vercel AI / batch helper).
  3. For TypeScript serverless, keep the default immediate flush mode, or await flush() before exit.
  4. For Python short scripts, call sp.flush() before process exit.
  5. Check that ingest errors are not being swallowed only in logs (throwOnError / onError in 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*Batch call 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() / spMetadata over 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 exact Authorization: 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: use application/json with 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.