Skip to content

Lightstep Satellite Connection Error — Quick Fix

DodaTech Updated 2026-06-24 2 min read

In this tutorial, you'll learn about Lightstep Satellite Connection Error. We cover key concepts, practical examples, and best practices.

The Problem

Applications using Lightstep (OTLP or Thrift) cannot connect to the Lightstep satellite or public endpoint. Traces are not being sent to Lightstep. The connection may timeout, return TLS errors, or fail authentication.

Error example:

OTLP exporter: rpc error: code = Unavailable desc = connection closed
Thrift connection failed: dial tcp: connection refused
TLS handshake failed: x509: certificate signed by unknown authority

The Fix

Step 1: Check the satellite endpoint

WRONG — using the wrong satellite hostname or port:

# The endpoint varies by deployment method (satellite vs public)

RIGHT — verify the endpoint configuration:

# For public Lightstep endpoint
# OTLP: ingest.lightstep.com:443
# Thrift: collector.lightstep.com:443

# Test connectivity
nc -zv ingest.lightstep.com 443

Output:

Connection to ingest.lightstep.com (52.0.0.123) port 443 [tcp/https] succeeded!

Step 2: Fix TLS and authentication

WRONG — disabling TLS verification:

# TLS should never be disabled for production

RIGHT — ensure proper TLS configuration:

// In the Go OTLP exporter
exporter, err := otlptracegrpc.New(ctx,
  otlptracegrpc.WithEndpoint("ingest.lightstep.com:443"),
  otlptracegrpc.WithTLSCredentials(credentials.NewClientTLSFromCert(nil, "")),
)

Use DodaTech's Lightstep Connectivity Tester to validate satellite endpoints, TLS configuration, and authentication from any application environment.

Prevention Tips

  • Use the public endpoint (ingest.lightstep.com:443) before deploying a satellite
  • Configure TLS certificates from well-known CAs for satellite deployments
  • Set up OpenTelemetry SDK exporters with retry logic
  • Monitor exporter error metrics using Prometheus
  • Use DodaTech's Trace Pipeline Validator for end-to-end connectivity testing

Common Mistakes with satellite connect

  1. Overlapping type class instances that cause GHC to reject the program with ambiguous dispatch errors
  2. Non-exhaustive pattern matches that compile with warnings then crash at runtime
  3. Misunderstanding that String is [Char] with poor performance for large text operations

These mistakes appear frequently in real-world LIGHTSTEP code. DodaTech's contributors have identified these patterns through analysis of open-source projects and production systems.

Practice Exercise

Write a pure function that safely divides two integers using Maybe, then test it with edge cases like division by zero and negative numbers.

This exercise reinforces the concepts covered in this guide. Try implementing it before checking online solutions.

FAQ

### What is the difference between Lightstep Satellite and the public endpoint?

The public endpoint (ingest.lightstep.com) sends data directly to Lightstep's cloud. A satellite is a local proxy that caches and forwards traces, useful for high-throughput environments or air-gapped networks. Satellites require more infrastructure but provide better reliability.

Why does the OTLP exporter return "connection closed" errors?

This typically happens when the exporter cannot reach the endpoint, the TLS handshake fails, or the server closes the connection due to authentication issues. Verify the endpoint URL, port, and API token. Use grpc. WithBlock() for synchronous connection testing.

Can I connect to Lightstep through a proxy?

Yes, configure the OpenTelemetry SDK to use a proxy. For Go: set HTTPS_PROXY environment variable. For Java: set -Dhttps.proxyHost= and -Dhttps.proxyPort= JVM arguments. The gRPC exporter uses the proxy for outgoing connections.

Related: DodaTech's OpenTelemetry Deployment Guide provides SDK configuration examples for Lightstep, Honeycomb, and other OTLP-compatible backends.

Built by the developers of DodaTech

Doda Browser, DodaZIP & Durga Antivirus Pro