#
Extended FAQ
Frequently asked questions and detailed answers.
#
General Questions
#
What is Sonora?
Sonora is a full-featured, enterprise-grade Python Lavalink client for building high-performance Discord music bots. It provides advanced features like smart autoplay, intelligent queue management, and comprehensive security.
#
How does Sonora compare to other Lavalink clients?
Sonora offers:
- Enterprise features: Security, monitoring, enterprise SDKs
- Advanced AI: Smart autoplay with multiple strategies
- Intelligent queue: Adaptive reordering, skip fatigue detection
- Performance: Lock-free architecture, zero-copy routing
- Security: Plugin sandboxing, encrypted credentials
- Developer experience: Built-in profiling, comprehensive CLI
#
Is Sonora production-ready?
Yes, Sonora v1.2.8 is a stability patch release with enterprise-grade features suitable for production use.
#
Installation & Setup
#
Lavalink won't start
Problem: Lavalink server fails to start
Solutions:
- Check Java version:
java -version(requires Java 11+) - Verify application.yml configuration
- Check port availability:
netstat -tlnp | grep 2333 - Review logs:
tail -f lavalink.log
#
Connection refused errors
Problem: Cannot connect to Lavalink
Solutions:
- Verify Lavalink is running:
curl http://localhost:2333/version - Check firewall settings
- Confirm correct host/port in configuration
- Test network connectivity:
telnet localhost 2333
#
Import errors
Problem: ModuleNotFoundError when importing Sonora
Solutions:
- Install correctly:
pip install py-sonora - Check Python version (3.11+ required)
- Virtual environment issues:
source venv/bin/activate - Path issues:
python -c "import sys; print(sys.path)"
#
Usage Issues
#
Tracks not loading
Problem: play() returns None or raises exception
Causes & Solutions:
- Invalid query: Check URL format or search terms
- Lavalink source disabled: Enable sources in application.yml
- Rate limiting: Wait and retry
- Network issues: Check Lavalink connectivity
#
Audio quality problems
Problem: Poor audio quality or distortion
Solutions:
Adjust Lavalink settings:
lavalink: audio: opus: quality: 10- Check source quality
- Reduce active filters
- Verify bitrate settings
#
High CPU/memory usage
Problem: Sonora consumes excessive resources
Solutions:
- Enable performance mode:
performance_mode="overdrive" - Limit queue size:
player.queue.max_size = 1000 - Reduce filter usage
- Monitor with
sonoractl performance
#
Autoplay Issues
#
No recommendations generated
Problem: Autoplay doesn't suggest tracks
Solutions:
- Enable autoplay:
player.autoplay.enabled = True - Check strategy:
print(player.autoplay.strategy) - Verify history:
len(player.queue.history) > 0 - Test manually:
await player.autoplay.fetch_next_track(context)
#
Poor recommendation quality
Problem: Autoplay suggests irrelevant tracks
Solutions:
- Change strategy:
player.autoplay.strategy = "similar_genre" - Adjust history size:
player.autoplay.max_history = 20 - Clear history if corrupted
- Provide better context data
#
Queue Problems
#
Queue not advancing
Problem: Playback stops after current track
Solutions:
- Check loop mode:
player.queue.loop_mode - Enable autoplay if desired
- Verify tracks are valid
- Check for stuck operations
#
Queue desync
Problem: Queue state inconsistent between bot and users
Solutions:
- Use proper locking:
async with player.queue._lock - Avoid concurrent modifications
- Implement state validation
- Use snapshots for recovery
#
Plugin Issues
#
Plugin not loading
Problem: Plugin fails to load or register
Solutions:
- Check plugin code syntax
- Verify permissions are requested
- Review security validation logs
- Test plugin isolation
#
Plugin crashes
Problem: Plugin causes application instability
Solutions:
- Implement error boundaries in plugins
- Use timeouts for plugin operations
- Sandbox plugin execution
- Monitor plugin resource usage
#
Security Concerns
#
Credential storage
Question: How are credentials secured?
Answer: Sonora uses AES-encrypted vaults with PBKDF2 key derivation. Master keys are never stored and should be provided securely.
#
Plugin security
Question: Are plugins safe to run?
Answer: Plugins are sandboxed with code validation, restricted imports, and resource limits. Always review plugin code before installation.
#
Performance Tuning
#
Optimizing for high load
Recommendations:
- Use connection pooling
- Enable caching
- Implement rate limiting
- Monitor resource usage
- Scale horizontally
#
Memory optimization
Tips:
- Limit queue sizes
- Use object pooling
- Implement garbage collection
- Monitor memory patterns
- Use streaming for large data
#
Development Questions
#
Adding custom features
Question: How to extend Sonora?
Answer:
- Use plugins for isolated features
- Subclass existing classes
- Implement custom strategies
- Hook into event system
- Contribute upstream
#
Testing custom code
Question: How to test modifications?
Answer:
- Write unit tests with pytest
- Use fixtures for common setup
- Mock external dependencies
- Test edge cases
- Maintain coverage >90%
#
Troubleshooting Tools
#
Diagnostic commands
# System health
sonoractl doctor
# Performance metrics
sonoractl performance
# Plugin status
sonoractl plugin list
# Queue inspection
sonoractl queue inspect --guild-id 123
#
Debug logging
import logging
logging.basicConfig(level=logging.DEBUG)
# Enable verbose Lavalink logging
client = SonoraClient(..., log_level="DEBUG")
#
Profiling
import cProfile
profiler = cProfile.Profile()
profiler.enable()
# ... code to profile ...
profiler.disable()
profiler.print_stats(sort='cumulative')
#
Common Error Messages
#
"Node not connected"
Cause: Lavalink connection lost Solution: Check network, restart Lavalink, configure reconnection
#
"Track load failed"
Cause: Invalid URL or source disabled Solution: Verify URL, check Lavalink sources, try different source
#
"Permission denied"
Cause: Insufficient plugin permissions Solution: Request additional permissions in plugin manifest
#
"Memory limit exceeded"
Cause: Excessive memory usage Solution: Reduce queue size, limit concurrent operations, monitor usage
#
Getting Help
#
Community Support
- GitHub Issues: Bug reports and feature requests
- Discussions: General questions and community help
- Documentation: Comprehensive guides and API reference
#
Professional Support
- Enterprise Support: Available for commercial deployments
- Consulting: Custom development and optimization services
- Training: Workshops and onboarding sessions
This FAQ covers the most common questions and issues. For additional help, check the documentation or open a GitHub issue.