Skip to Content
RiusSDKTroubleshooting

Troubleshooting

Symptoms first, causes second. Everything here assumes the Rius SDK (glassflow-ai) 0.6.0 or newer.

No traces are arriving

Check in this order:

  1. Is the SDK disabled? GLASSFLOW_DISABLED=1 (or true/yes/on) silently drops all spans in-process. Also check disabled=True in code.
  2. Is sampling set low? GLASSFLOW_SAMPLE_RATE=0.1 keeps one trace in ten; 0 keeps none. Sampling decides per whole trace, so a sampled-out trace is completely invisible, not partially.
  3. Did the process exit before the batch flushed? Batches flush every 5 seconds by default. Short scripts can exit between batches if the interpreter is killed rather than exiting cleanly; call client.flush() at the end. Serverless invocations should always flush explicitly.
  4. Endpoint and key. Verify GLASSFLOW_ENDPOINT and GLASSFLOW_API_KEY. Export failures are logged as warnings from the OpenTelemetry exporter, so raise your log level to see them; they never raise in your code.

”init() called again” warning

The global OpenTelemetry provider is write-once. A second init() returns the existing client unchanged and logs this warning. If you genuinely need to reconfigure, call client.shutdown() first; if you need a parallel pipeline, use init(set_global=False).

An instrumentation is not producing spans

  • The extra must be installed in the same environment (pip install "glassflow-ai[openai]"). A requested-but-missing integration logs a warning at init() time.
  • Scoped clients (set_global=False) do not auto-instrument; pass instruments=[...] explicitly.
  • If another OpenTelemetry setup already instrumented the library, the SDK leaves it alone by design; its spans go wherever that setup exports.

Content is missing from spans

  • capture_content=False (or GLASSFLOW_CAPTURE_CONTENT=false) strips prompt/response content at export while keeping metadata. See Privacy controls for exactly which attributes are covered.
  • A masking callable that raises or returns None drops the affected attribute entirely, by design (fail closed), with a warning log.

Values look truncated

Inputs, outputs, and serialized objects are capped at 8192 characters, with an explicit …(truncated) suffix. This is a fixed safety limit on attribute size.

Spans are dropped under load

The in-memory queue holds 2048 spans by default; overflow is dropped with a warning. Raise OTEL_BSP_MAX_QUEUE_SIZE, or lower the volume with sampling. See Reliability for all batching knobs.

Next steps

Last updated on