railway-troubleshooting
π―Skillfrom adaptationio/skrillz
Systematically diagnoses and resolves Railway.com deployment issues across builds, services, networking, and database problems using structured troubleshooting workflows.
Installation
npx skills add https://github.com/adaptationio/skrillz --skill railway-troubleshootingSkill Details
Railway debugging and issue resolution. Use when deployments fail, builds error, services crash, performance degrades, or networking issues occur.
Overview
# Railway Troubleshooting
Systematic debugging and issue resolution for Railway.com deployments.
Overview
This skill provides decision trees, diagnostic workflows, and recovery procedures for Railway platform issues. It covers build failures, runtime crashes, networking problems, database issues, and performance degradation.
Quick Start
Use this decision tree to diagnose and resolve Railway issues:
```
Railway Issue?
β
βββ Deployment Failed?
β βββ Build Error β Operation 1: Diagnose Build Failures
β βββ Deploy Error β Operation 1: Diagnose Deployment Failures
β βββ Health Check Failed β Check service health endpoint
β βββ Timeout β Check build/deploy timeouts in settings
β
βββ Service Crashing?
β βββ Immediate crash β Operation 2: Debug Runtime Crashes
β βββ Crash after time β Check memory limits, memory leaks
β βββ Restart loop β Check startup command, dependencies
β βββ Exit code errors β Check application logs for specifics
β
βββ Networking Issues?
β βββ Service unreachable β Operation 3: Troubleshoot Networking
β βββ Intermittent connectivity β Check DNS, service discovery
β βββ SSL errors β Check domain configuration, certificates
β βββ Timeout errors β Check port configuration, firewalls
β
βββ Build Issues?
β βββ Nixpacks detection wrong β Operation 4: Fix Build Errors
β βββ Dependencies failing β Check package.json, requirements.txt
β βββ Build commands failing β Verify build scripts
β βββ Cache issues β Clear build cache, force rebuild
β
βββ Database Problems?
βββ Connection refused β Operation 5: Resolve Database Issues
βββ Timeout errors β Check connection pools, query performance
βββ Performance slow β Check indices, query optimization
βββ Data corruption β Check backups, recovery procedures
```
Operations
Operation 1: Diagnose Deployment Failures
Identify and resolve deployment failures through systematic log analysis.
When to use: Deployment status shows failed, builds succeed but deploys fail, health checks failing.
Workflow:
- Check Deployment Status
```bash
# CLI approach
railway status
railway logs --deployment
# API approach (see references/debug-workflow.md for GraphQL)
# Query deployment status and recent deploys
```
- Analyze Deploy Logs
- Check for port binding issues (Railway expects PORT env var)
- Verify health check endpoint responding
- Check startup command execution
- Identify timeout issues
- Common Deploy Failures
- Port not bound: App must listen on process.env.PORT
- Health check timeout: Increase timeout or fix endpoint
- Missing environment variables: Check service variables
- Startup command wrong: Verify start command in settings
- Fix and Redeploy
- Apply fix to code/configuration
- Trigger new deployment
- Monitor deployment logs
- Verify service healthy
See: references/common-errors.md for specific error messages and solutions.
Operation 2: Debug Runtime Crashes
Investigate and resolve service crashes and restart loops.
When to use: Service shows restarting, exit codes in logs, OOM errors, crash reports.
Workflow:
- Gather Crash Information
```bash
# Get runtime logs
railway logs --tail 500
# Check service metrics
railway metrics
# Use diagnostic script
./scripts/diagnose.sh [service-id] --verbose
```
- Identify Crash Pattern
- Immediate crash: Startup issue (missing deps, config error)
- Crash after time: Memory leak, resource exhaustion
- Intermittent crash: Race condition, external dependency
- Exit code 137: Out of Memory (OOM) killed
- Check Resource Limits
- Memory usage trending up β Memory leak
- CPU at 100% β Infinite loop, CPU-intensive operation
- Disk full β Log rotation issue, temp files
- Connection limits β Database pool exhausted
- Common Crash Causes
- OOM: Increase memory limit or fix memory leak
- Missing dependencies: Check package installation
- Uncaught exceptions: Add error handling
- External service down: Add retry logic, circuit breakers
See: references/debug-workflow.md for systematic debugging steps.
Operation 3: Troubleshoot Networking
Resolve networking issues including service discovery, DNS, and connectivity.
When to use: Services can't reach each other, DNS resolution fails, external access issues, SSL errors.
Workflow:
- Verify Service Discovery
```bash
# Check private networking enabled
# Services use: [service-name].[project-name].railway.internal
# Test DNS resolution
railway run nslookup [service-name].[project-name].railway.internal
```
- Check Network Configuration
- Private networking enabled in project settings
- Service names correct (use Railway-provided names)
- Port configuration matches application
- Environment variables for service URLs set
- Debug External Access
- Domain configured correctly in service settings
- DNS records pointing to Railway
- SSL certificate provisioned (check domain settings)
- Generate domain option enabled for public access
- Common Network Issues
- Service discovery: Use full internal domain name
- Port mismatch: App must listen on PORT env var
- SSL not working: Allow time for cert provisioning (5-10 min)
- Timeout: Check for firewall rules, rate limiting
See: references/common-errors.md Network Errors section.
Operation 4: Fix Build Errors
Resolve build failures, nixpacks configuration issues, and dependency problems.
When to use: Build fails, wrong builder detected, dependencies not installing, build commands fail.
Workflow:
- Check Build Logs
```bash
railway logs --build
# Identify build phase failure:
# - Detection phase: Nixpacks provider detection
# - Install phase: Dependencies installation
# - Build phase: Build commands execution
```
- Verify Builder Configuration
- Check nixpacks.toml or railway.toml for custom config
- Verify build command in service settings
- Check for language version specification
- Ensure correct provider detected (Node, Python, Go, etc.)
- Fix Dependency Issues
- Lock file present (package-lock.json, yarn.lock, requirements.txt)
- Dependencies compatible with build environment
- Private packages have auth configured
- Build dependencies vs runtime dependencies separated
- Force Rebuild if Needed
```bash
# Clear cache and rebuild
./scripts/force-rebuild.sh [service-id] --no-cache
# Or via CLI
railway up --detach
```
Common Build Errors:
- Wrong nixpacks provider: Add nixpacks.toml with correct provider
- Dependency resolution: Update lock files, fix version conflicts
- Build timeout: Optimize build, increase timeout in settings
- Cache issues: Clear build cache with force rebuild
See: references/common-errors.md Build Errors section.
Operation 5: Resolve Database Issues
Debug database connection problems, timeouts, and performance issues.
When to use: Connection refused, database timeouts, slow queries, connection pool exhausted.
Workflow:
- Verify Database Connection
```bash
# Check database service status
railway status
# Test connection with database URL
railway run psql $DATABASE_URL -c "SELECT 1"
```
- Check Connection Configuration
- DATABASE_URL environment variable set correctly
- Connection pool size appropriate for service plan
- Connection timeout settings reasonable
- SSL mode configured if required
- Debug Connection Issues
- Connection refused: Database not started, wrong host/port
- Timeout: Network issue, slow queries, pool exhausted
- Auth failed: Wrong credentials, user permissions
- Too many connections: Pool size exceeded, connection leak
- Performance Troubleshooting
- Slow queries: Check query plans, add indices
- High CPU: Identify expensive queries, optimize
- Connection pool exhausted: Increase pool size or fix leaks
- Disk space: Clean up old data, increase storage
Emergency Recovery:
- Restart database service:
railway restart [service-id] - Check backups: Railway auto-backups available
- Scale vertically: Upgrade database plan if needed
- Connection leak: Restart application services
See: references/recovery-procedures.md for emergency procedures.
Related Skills
railway-auth: Authentication setup for Railway CLI/APIrailway-logs: Advanced log querying and analysisrailway-deployment: Deployment workflows and strategiesrailway-api: GraphQL API queries and operations
When to Use This Skill
Use railway-troubleshooting when you encounter:
- β Deployment failures or build errors
- π Service restart loops or crashes
- π Networking or connectivity issues
- π Runtime errors or performance problems
- πΎ Database connection or query issues
- β‘ Performance degradation
- π§ Configuration or environment issues
Quick Diagnostic
Run the diagnostic script for automated issue detection:
```bash
cd /mnt/c/data/github/skrillz/.claude/skills/railway-troubleshooting/scripts
./diagnose.sh [service-id] --verbose
```
The script will:
- Check service health status
- Analyze recent deployment logs
- Scan for common error patterns
- Check resource utilization
- Provide specific recommendations
Additional Resources
- Common Errors Guide:
references/common-errors.md- 20+ documented errors with solutions - Debug Workflow:
references/debug-workflow.md- Systematic debugging methodology - Recovery Procedures:
references/recovery-procedures.md- Emergency recovery steps - Diagnostic Script:
scripts/diagnose.sh- Automated diagnostics - Force Rebuild:
scripts/force-rebuild.sh- Clear cache and rebuild
Best Practices
- Always check logs first: Build logs, deploy logs, runtime logs
- Verify environment variables: Missing vars cause most deployment failures
- Check resource limits: Memory/CPU limits appropriate for workload
- Test locally first: Reproduce issues locally when possible
- Monitor metrics: Use Railway dashboard for trends
- Document solutions: Update common-errors.md with new patterns
- Use private networking: For inter-service communication
- Enable health checks: Catch deployment issues early
Support
For issues not covered by this skill:
- Railway Documentation: https://docs.railway.com
- Railway Discord: Active community support
- Railway Status: https://status.railway.com
- GitHub Issues: https://github.com/railwayapp/railway/issues
More from this repository10
Performs comprehensive analysis of code, skills, processes, and data to extract actionable insights, identify patterns, and drive data-driven improvements.
Automatically diagnoses and resolves Auto-Claude installation, configuration, and runtime issues across different platforms and environments.
Authenticates and configures xAI Grok API access using Twitter/X account credentials, enabling seamless integration with OpenAI-compatible SDK methods.
Retrieve and integrate xAI Grok sentiment with financial data APIs to generate comprehensive market insights and analysis.
xai-crypto-sentiment skill from adaptationio/skrillz
Retrieves comprehensive financial market data including stocks, forex, crypto, and technical indicators using the Twelve Data API.
Enables real-time Twitter/X searches using Grok API to extract insights, track trends, monitor accounts, and analyze social discussions.
Enables autonomous agents to search X, web, execute code, and analyze documents with server-side tool management.
Optimizes Claude AI performance by reducing token usage, managing API costs, and improving build speed through intelligent model and context selection.
Automates comprehensive installation and setup of Auto-Claude across Windows, macOS, Linux, and WSL with multi-platform support and dependency management.