WeaveScope

Troubleshooting

Diagnose rejected, missing, delayed, split, or incorrectly priced traces.

Start with the response returned by WeaveScope. It tells you whether the request was accepted, rejected, or limited.

Response Meaning What to do
202 Accepted At least one event was queued. Confirm the project and time range, then allow for processing.
400 Bad Request The request shape or every event was invalid. Inspect the itemized results and compare the payload with the Ingestion API .
401 Unauthorized The API key is missing, invalid, revoked, or expired. Replace or correct the project API key.
402 Payment Required The current accepted-event limit is exhausted. Review Limits and billing .
403 Forbidden The key is valid but cannot ingest. Use a key with ingest:write.
413 Content Too Large The body, decompressed body, or event count exceeds a request limit. Split or reduce the request.
429 Too Many Requests An hourly ingest limit or edge rate/concurrency limit was reached. Inspect the response, wait for its reset or retry interval, and back off.
503 Service Unavailable WeaveScope could not accept the payload. Retry with backoff.

If the client received no response, check connectivity to https://app.weavescope.com, proxy settings, timeouts, and exporter logs.

No trace appears

Check that:

  • The application uses a key from the project you are viewing.

  • The endpoint is https://app.weavescope.com.

  • WEAVESCOPE_API_KEY is present in the runtime environment.

  • The key has not been revoked or expired.

  • The selected time range includes the trace start time.

  • A short-lived process flushed its BeamWeaver export queue.

  • The ingestion response accepted at least one event.

Search for the exact trace ID and temporarily select All time. Remember that 202 Accepted means the request is queued; the trace may not be visible immediately.

401 Unauthorized

The API key is missing, empty, malformed, revoked, expired, or unknown.

  1. Create a replacement from Settings → API keys.

  2. Store the complete ws_... token.

  3. Deploy it as WEAVESCOPE_API_KEY.

  4. Send it as Authorization: Bearer ws_... or x-api-key: ws_....

Only the prefix remains visible after creation.

403 Forbidden

The key exists but does not have permission to ingest. Use a project API key with ingest:write.

400 Bad Request or rejected events

Common native-ingestion errors include:

  • Missing observation_id or id

  • Missing trace_id

  • Invalid operation, kind, or status

  • Invalid start_time or end_time

  • A negative, non-integer, or greater-than-18446744073709551615 event_version

  • A non-object custom_fields value

Read the itemized results array. Rejected items include a code and reason. If a batch contains accepted and rejected events, the accepted events are still queued.

402 Payment Required

The organization reached its accepted-event limit for the current billing cycle. Open Settings → Billing to review usage, change plans, or enable and fund balance overage on Pro or Scale.

413 Content Too Large

Requests are limited to 25 MiB and 1,000 events or spans. Selected payload fields also have a 4 MiB per-event limit. For compressed OpenTelemetry protobuf, both the transferred and decompressed bodies must fit the request limit.

An oversized request receives 413 and is rejected atomically. A payload field over 4 MiB rejects only that event with payload_too_large; valid events in the same batch can still be accepted.

See Payload size limits for the complete rules.

429 Too Many Requests

An application response for the hourly ingest-data limit includes hourly_ingest_reset_at. Wait until that time or reduce large payload fields.

The ingestion edge can also return 429 when request rate or concurrency is too high. That response may use a different body. Retry with exponential backoff and reduce parallel requests.

503 Service Unavailable

WeaveScope could not safely accept the request. Retry with backoff. Events from that request are not counted as accepted usage.

Cost is zero

Check that:

  • The event includes an explicit cost_usd, cost, or total_cost; or

  • It includes input and output token usage.

  • Provider and model metadata identify the model correctly.

  • Settings → Model pricing contains an exact matching model ID.

Add a custom pricing rule when the model is not included in the managed catalog.

A child run appears as a separate trace

Asynchronous work probably lost the active tracing context. BeamWeaver-managed graph nodes propagate context automatically. For application-owned tasks, use BeamWeaver.Tracing.async/3 or attach the captured context before calling a model or tool.

See Preserve trace context in tasks .

Trace views disagree briefly

Trace lists, trace details, and monitoring charts are updated asynchronously. One view can show new data before another has refreshed. Wait briefly and try again. If the mismatch persists, record the project ID and trace ID before contacting support.

Custom fields are missing

Custom fields must be flat values. WeaveScope ignores:

  • Blank values

  • Nested maps and lists

  • Keys beginning with __

  • Reserved framework keys

  • Secret-like keys containing api_key, token, secret, password, or authorization

Use fields for searchable dimensions and metadata for non-indexed context.