Troubleshooting
Troubleshooting Guide
Section titled “Troubleshooting Guide”Solutions to common issues when using LeanJ.
CLI Issues
Section titled “CLI Issues”CLI Not Found
Section titled “CLI Not Found”Error: CLI not found or leanj: command not found
Solutions:
-
Verify CLI is built:
Terminal window ls dist/cli/leanj* -
Add to PATH:
- See Installation Guide
- Or use full path:
/path/to/leanj <command>
-
Set system property (for IDE):
-Dleanj.cli.path=C:\path\to\leanj.exe
Controller Not Starting
Section titled “Controller Not Starting”Error: Controller not running or controller fails to start
Solutions:
-
Check ports are available:
Terminal window # Windowsnetstat -ano | findstr :9876netstat -ano | findstr :9877# Linux/macOSlsof -i :9876lsof -i :9877 -
Use different ports:
Terminal window leanj controller start --port 8888 -
Check Java installation:
Terminal window java -version -
Verify controller JAR exists:
Terminal window ls dist/controller/controller-1.0.0-SNAPSHOT.jar -
Run system check:
Terminal window leanj doctor
JVM Not Found
Section titled “JVM Not Found”Error: No JVMs found or JVM not found
Solutions:
-
List all JVMs:
Terminal window leanj jvms -
Check Java processes:
Terminal window jps -l -v -
Verify JVM is running:
- Check process list
- Verify PID is correct
-
Docker JVMs:
- Ensure agent is configured in Dockerfile
- Check container is running
- Verify controller is accessible from container
Attach Failed
Section titled “Attach Failed”Error: Attach failed or Failed to attach agent
Solutions:
-
Run system check:
Terminal window leanj doctor -
Verify tools.jar:
- Check
leanj doctoroutput - Ensure JDK (not just JRE) is installed
- Check
-
Check JVM supports attach:
- Some JVMs don’t support attach API
- Try with different JVM
-
Verify PID:
Terminal window jps -l -v | grep <pid> -
Check permissions:
- On Linux, may need same user or sudo
- Check SELinux/AppArmor restrictions
Controller Issues
Section titled “Controller Issues”Controller Not Receiving Data
Section titled “Controller Not Receiving Data”Symptoms: No metrics in IDE, empty status
Solutions:
-
Check controller is running:
Terminal window leanj status -
Verify agent is attached:
Terminal window leanj status# Should show attached JVMs -
Check controller logs:
Terminal window # WindowsGet-Content logs/profiler-controller.log -Tail 50# Linux/macOStail -f logs/profiler-controller.log -
Verify agent configuration:
- Check VM options include agent
- Verify controller host/port
- Check package filter
Port Already in Use
Section titled “Port Already in Use”Error: Port already in use or Address already in use
Solutions:
-
Find process using port:
Terminal window # Windowsnetstat -ano | findstr :9876# Linux/macOSlsof -i :9876 -
Kill process (if safe):
Terminal window # Windowstaskkill /PID <pid> /F# Linux/macOSkill -9 <pid> -
Use different ports:
Terminal window leanj controller start --port 8888
Agent Issues
Section titled “Agent Issues”Agent Not Connecting
Section titled “Agent Not Connecting”Symptoms: No data from agent, connection errors in logs
Solutions:
-
Check controller host/port:
Terminal window # Verify in VM options-Dprofiler.controller.host=localhost-Dprofiler.controller.port=9876 -
Test network connectivity:
Terminal window # From container (if Docker)ping controller-hostcurl http://controller-host:9877/api/v1/status -
Check firewall rules:
- Ensure ports 9876/9877 are open
- Check Docker network configuration
-
Verify agent JAR:
Terminal window ls dist/agent/agent-core-1.0.0-SNAPSHOT.jar
No Metrics Collected
Section titled “No Metrics Collected”Symptoms: Agent connected but no metrics visible
Solutions:
-
Check package filter:
Terminal window # Verify package matches your code-javaagent:agent.jar=package=com.myapp -
Verify methods are being called:
- Ensure application is running
- Check methods match package filter
-
Check flush interval:
Terminal window -Dprofiler.flush.interval.ms=1000 -
Review controller logs:
- Look for incoming snapshots
- Check for errors
High Overhead
Section titled “High Overhead”Symptoms: Application performance degraded
Solutions:
-
Increase flush interval:
Terminal window -Dprofiler.flush.interval.ms=5000 -
Use CPU timer:
Terminal window -Dprofiler.timer=cpu -
Narrow package filter:
Terminal window # Instead of: package=com# Use: package=com.myapp.service -
Profile selectively:
- Only profile when needed
- Detach when not profiling
IntelliJ Plugin Issues
Section titled “IntelliJ Plugin Issues”CodeVision Not Showing
Section titled “CodeVision Not Showing”Symptoms: No inline hints in editor
Solutions:
-
Enable CodeVision:
- Settings → Editor → Inlay Hints
- Enable Code Vision
- Enable LeanJ
-
Check profiling is active:
- Run → Start LeanJ Profiling
- Verify status in tool window
-
Refresh IDE:
- File → Invalidate Caches / Restart
- Or restart IDE
-
Check agent is attached:
Terminal window leanj status
Plugin Not Starting
Section titled “Plugin Not Starting”Error: CLI not found or plugin fails to start
Solutions:
-
Set CLI path:
-Dleanj.cli.path=C:\path\to\leanj.exe -
Add CLI to PATH:
- Restart IDE after adding to PATH
-
Verify CLI works:
Terminal window leanj --version
Metrics Not Updating
Section titled “Metrics Not Updating”Symptoms: Metrics are stale or not refreshing
Solutions:
-
Check controller is receiving data:
Terminal window leanj status -
Restart profiling:
- Run → Start LeanJ Profiling
- Or detach/reattach agent
-
Check controller logs:
- Look for broadcast messages
- Verify IDE connection
-
Refresh IDE:
- Close and reopen files
- Or restart IDE
Docker Issues
Section titled “Docker Issues”Container Not Appearing
Section titled “Container Not Appearing”Symptoms: Docker JVM not in jvms list
Solutions:
-
Check agent configuration:
ENV JAVA_TOOL_OPTIONS="-javaagent:/agent/agent.jar=package=com.myapp"ENV LEANJ_PROJECT=my-service -
Verify controller accessibility:
Terminal window # From containercurl http://controller-host:9877/api/v1/status -
Check network:
- Use
host.docker.internal(Docker Desktop) - Or shared Docker network
- Or host IP address
- Use
-
Review container logs:
Terminal window docker logs <container>
Connection Refused
Section titled “Connection Refused”Error: Connection refused from container
Solutions:
-
Check controller host:
ENV LEANJ_CONTROLLER_HOST=host.docker.internal -
Verify controller is running:
Terminal window leanj status -
Test connectivity:
Terminal window docker exec <container> ping controller-host -
Check firewall:
- Ensure ports are open
- Check Docker network rules
License Issues
Section titled “License Issues”License Validation Failed
Section titled “License Validation Failed”Error: License validation failed or Network error
Solutions:
-
Check internet connection:
Terminal window ping license-api.leanj.com -
Verify license key:
Terminal window leanj license status -
Retry validation:
Terminal window leanj license validate -
Check API URL:
Terminal window echo $LEANJ_LICENSE_API_URL
Rate Limit Exceeded
Section titled “Rate Limit Exceeded”Error: Rate limit exceeded
Solutions:
-
Wait a few minutes:
- License validation is cached for 24 hours
- Wait before retrying
-
Use cached license:
- Offline mode uses cached data
- Check
~/.leanj/license.json
System Health Check
Section titled “System Health Check”Run comprehensive system check:
leanj doctorChecks:
- Java installation
- Go installation
- Controller JAR exists
- Agent JAR exists
- Tools.jar availability
- Controller running status
- Port availability
Getting Help
Section titled “Getting Help”If issues persist:
-
Check logs:
- Controller:
logs/profiler-controller.log - IntelliJ: Help → Show Log in Finder
- Controller:
-
Run diagnostics:
Terminal window leanj doctorleanj status -
Gather information:
- Error messages
- System configuration
- Steps to reproduce
-
Report issue:
- GitHub Issues: https://github.com/yyusufaslan/tiny-inline-profiler/issues
- Include logs and diagnostics
Next Steps
Section titled “Next Steps”- Review Configuration Guide
- Learn about How It Works
- See CLI Reference