Troubleshooting Guide
Solutions to common issues and frequently asked questions
Data Not Appearing
If your logs, metrics, or traces aren't showing up in Qorrelate, follow these steps:
Ensure you're using the correct API key and Organization ID:
# Test your credentials
curl -X POST https://qorrelate.io/v1/logs \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "X-Organization-Id: YOUR_ORG_ID" \
-H "Content-Type: application/json" \
-d '{"resourceLogs":[{"resource":{"attributes":[{"key":"test","value":{"stringValue":"true"}}]},"scopeLogs":[{"logRecords":[{"body":{"stringValue":"Test log"}}]}]}]}'
You should get a 200 OK response. If you get 401 or 403, your credentials are incorrect.
Make sure you're using the correct endpoints:
- Logs:
https://qorrelate.io/v1/logs - Metrics:
https://qorrelate.io/v1/metrics - Traces:
https://qorrelate.io/v1/traces
Note: Don't include a trailing slash. Use /v1/logs not /v1/logs/
Verify your application can reach Qorrelate:
# Test connectivity
curl -v https://qorrelate.io/health
# If behind a proxy, check proxy settings
echo $HTTP_PROXY
echo $HTTPS_PROXY
Ensure outbound HTTPS (port 443) is allowed to qorrelate.io.
OpenTelemetry SDKs batch data before sending. In short-lived processes, data might not be flushed:
# Python - force flush before exit
from opentelemetry import trace
provider = trace.get_tracer_provider()
provider.force_flush() # Wait for data to be sent
// Node.js - shutdown gracefully
const { NodeSDK } = require('@opentelemetry/sdk-node');
process.on('SIGTERM', () => {
sdk.shutdown().then(() => process.exit(0));
});
In the Qorrelate dashboard, make sure your time picker is set to include when the data was sent. Try selecting "Last 1 hour" or "Last 24 hours" to cast a wider net.
Authentication Errors
401 Unauthorized
Your API key is invalid or missing.
- Check for typos in your API key
- Ensure the key hasn't been revoked
- Verify the
Authorizationheader format:Bearer YOUR_KEY
403 Forbidden
Your API key doesn't have permission for this action.
- Check the Organization ID matches your API key's organization
- Verify the key has the required permissions (read/write)
- API keys are scoped to organizations - you can't access another org's data
429 Too Many Requests
You've hit the rate limit.
- Ingestion: 10,000 requests/minute
- Queries: 1,000 requests/minute
- Implement exponential backoff in your retry logic
Missing or Incomplete Traces
If traces are partially missing or connections between services aren't showing:
Context Propagation Issues
Traces need context propagation headers to connect spans across services:
# Python - ensure propagation is configured
from opentelemetry.propagate import set_global_textmap
from opentelemetry.propagators.b3 import B3MultiFormat
# Use W3C Trace Context (default) or B3
set_global_textmap(B3MultiFormat()) # For B3 headers
Check these headers are being passed between services:
traceparent(W3C Trace Context)tracestate(W3C Trace Context)x-b3-traceid,x-b3-spanid(B3 format)
High Query Latency
If queries are slow, try these optimizations:
-
Narrow the time range: Querying smaller time windows is significantly faster.
-
Use indexed fields:
service.name,severity, andtrace_idare indexed and fast to filter on. -
Avoid wildcards at the start:
*erroris slow. Useerror*instead. -
Limit results: Use
limit=100instead of fetching thousands of records.
Python SDK Issues
Import errors with OpenTelemetry
# Make sure all packages are installed
pip install opentelemetry-api opentelemetry-sdk \
opentelemetry-exporter-otlp-proto-http \
opentelemetry-instrumentation
Auto-instrumentation not working
# Install all auto-instrumentation packages
opentelemetry-bootstrap -a install
# Run with auto-instrumentation
opentelemetry-instrument python app.py
Node.js SDK Issues
Tracing file must be loaded first
The tracing setup must run before any other imports:
// tracing.js must be required FIRST
require('./tracing'); // This line must be first!
const express = require('express');
const app = express();
// ...
Or use the -r flag: node -r ./tracing.js app.js
Kubernetes Issues
OTel Collector not receiving data
# Check collector logs
kubectl logs -n observability -l app.kubernetes.io/name=opentelemetry-collector
# Verify collector is running
kubectl get pods -n observability
# Test connectivity from app pod
kubectl exec -it your-app-pod -- curl -v http://otel-collector.observability.svc:4318/v1/traces
Secret not found
# Create the credentials secret
kubectl create secret generic qorrelate-credentials \
--namespace observability \
--from-literal=api-key=YOUR_API_KEY \
--from-literal=org-id=YOUR_ORG_ID
Frequently Asked Questions
How long is data retained?
By default, data is retained for 30 days. Enterprise plans can configure longer retention periods.
Can I delete specific data?
Contact support for data deletion requests. For ongoing exclusion, use Drop Filters.
What's the maximum payload size?
Individual requests are limited to 5MB. For larger payloads, split into multiple requests.
Do you support gzip compression?
Yes! Add Content-Encoding: gzip header to your requests. This is recommended for high-volume ingestion.
What regions do you support?
Qorrelate is currently hosted in US (us-east-1). EU region coming soon. For data residency requirements, consider self-hosting.
Still Need Help?
If you've tried the above solutions and still have issues, our support team is here to help.