Troubleshooting
This guide covers common issues encountered when developing, deploying, and operating the Lithosphere platform. Solutions are drawn from the infrastructure configuration (infra/README.md) and deployment secrets documentation (SECRETS.md).
Configuration Not Loading
If services are not picking up configuration changes, follow these diagnostic steps:
Check Docker Compose Configuration
# Validate the compose file syntax and merged configuration
docker compose config
# View container logs for a specific service
docker compose logs SERVICE_NAME
# View logs with timestamps and follow mode
docker compose logs -f --timestamps SERVICE_NAMEValidate Prometheus Configuration
# Check Prometheus config syntax inside the container
docker compose exec prometheus promtool check config /etc/prometheus/prometheus.ymlApply Configuration Updates
Dashboards Not Appearing in Grafana
If custom dashboards are not visible in Grafana after adding them:
Check the provisioning path is correct. Dashboard JSON files must be placed in the
infra/grafana/dashboards/directory.Validate JSON syntax:
Check Grafana logs for provisioning errors:
Restart Grafana to reload provisioned dashboards:
Pre-configured dashboards included with the Lithosphere infrastructure:
System Overview -- VPS health (CPU, RAM, Disk, Network)
API Monitoring -- Request rates, latencies, errors, logs
Container Metrics -- Docker container resource usage
Alerts Not Firing
If expected alerts are not being triggered in the monitoring stack:
Check alert rule syntax in the Prometheus UI at
http://localhost:9091/alerts.Verify Alertmanager is configured in
prometheus.yml:Check Alertmanager status and active alerts:
Verify alert rule file at
infra/prometheus/alerts/lithosphere-alerts.yml-- rules cover service health (API down, Indexer down, DB down), performance issues (high latency, error rates), resource usage (CPU, memory, disk), and container issues (restarts, high resource usage).
SSH Connection Failed
Cause: The SSH_PRIVATE_KEY GitHub secret is incorrectly formatted or the corresponding public key is not installed on the target server.
Solution:
Verify the
SSH_PRIVATE_KEYsecret includes the complete key withBEGINandENDlines:Verify the public key is authorized on the server:
Test the connection manually:
If generating a new key pair:
Health Check Failed
Cause: The API service did not start correctly or is not responding on the expected port.
Solution:
Check the API server logs:
Verify the API container is running:
Check that required environment variables are set:
DATABASE_URL-- PostgreSQL connection stringLITHO_RPC_URL-- Blockchain RPC endpointLITHO_CHAIN_ID-- Chain ID (should be61)
Test the health endpoint locally:
Build Failed
Cause: Syntax errors in a Dockerfile, missing dependencies, or incompatible base image versions.
Solution:
Check the build output for specific error messages.
Verify Dockerfile syntax for each service.
Ensure all referenced files and directories exist in the build context.
Check that base images are accessible (network issues with Docker Hub).
Try building a specific service in isolation:
Manual Deployment Steps
If the automated GitHub Actions deployment fails, deploy manually:
Performance Tuning
Reduce Disk Usage
Reduce retention periods for metrics and logs:
Reduce Memory Usage
Set memory limits on monitoring containers:
Optimize Scrape Intervals
Increase scrape intervals for less-critical metrics:
Common Environment Variables
Ensure these are set correctly in the .env file or exported before running Docker Compose:
Getting Help
If you are unable to resolve an issue using this guide:
Check the CI/CD Guide for pipeline-specific issues.
Review the infrastructure README at
Makalu/infra/README.mdfor detailed monitoring configuration.Review the secrets documentation at
.github/SECRETS.mdfor deployment credential setup.Open an issue on the GitHub repository with:
The error message or unexpected behavior
Steps to reproduce
Environment details (Local, Devnet, Staging, or Mainnet)
Relevant log output
Last updated