This guide helps you diagnose and resolve common issues with CryptVault. Issues are organized by category with symptoms, causes, and solutions.
- Installation Issues
- Data Fetching Issues
- Analysis Issues
- Performance Issues
- Configuration Issues
- Display Issues
- ML Prediction Issues
- Debugging Tips
- FAQ
- Getting Help
Symptoms:
ERROR: Could not find a version that satisfies the requirement cryptvault
Causes:
- Python version too old
- pip not updated
- Network connectivity issues
Solutions:
- Check Python version:
python --version # Should be 3.8 or higher- Update pip:
python -m pip install --upgrade pip- Install from source:
git clone https://github.com/yourusername/cryptvault.git
cd cryptvault
pip install -e .Symptoms:
ModuleNotFoundError: No module named 'cryptvault'Causes:
- Wrong Python environment
- Installation incomplete
- Virtual environment not activated
Solutions:
- Verify installation:
pip list | grep cryptvault- Check Python path:
python -c "import sys; print(sys.path)"- Reinstall:
pip uninstall cryptvault
pip install cryptvaultSymptoms:
ERROR: pip's dependency resolver does not currently take into account all the packages that are installed
Causes:
- Conflicting package versions
- Outdated dependencies
Solutions:
- Create fresh virtual environment:
python -m venv fresh_env
source fresh_env/bin/activate # On Windows: fresh_env\Scripts\activate
pip install cryptvault- Use requirements file:
pip install -r requirements.txtSymptoms:
DataFetchError: Failed to fetch data for BTC from all sources
Causes:
- Invalid ticker symbol
- Network connectivity issues
- API rate limiting
- Data source unavailable
Solutions:
- Verify ticker symbol:
# List supported tickers
cryptvault list-tickers
# Try alternative symbol format
cryptvault analyze BTC-USD # Instead of BTC- Check network connectivity:
# Test internet connection
ping google.com
# Test specific data source
python -c "import yfinance as yf; print(yf.Ticker('BTC-USD').info)"- Check data source status:
from cryptvault.data.fetchers import DataFetcher
fetcher = DataFetcher()
sources = fetcher.get_available_sources()
print(sources) # Should show available sources- Wait and retry (rate limiting):
# Wait 60 seconds and try again
sleep 60
cryptvault analyze BTCSymptoms:
InsufficientDataError: Need at least 30 data points, got 15
Causes:
- Ticker too new
- Interval too large
- Data source limitations
Solutions:
- Reduce days or change interval:
# Try shorter period
cryptvault analyze NEWTICKER --days 7
# Try smaller interval
cryptvault analyze NEWTICKER --interval 1h- Check data availability:
from cryptvault.data.fetchers import DataFetcher
from datetime import datetime, timedelta
fetcher = DataFetcher()
data = fetcher.fetch('TICKER', days=365)
print(f"Available data points: {len(data)}")Symptoms:
RateLimitError: API rate limit exceeded
Causes:
- Too many requests in short time
- Free tier limitations
Solutions:
- Enable caching:
# In config/settings.yaml
data_sources:
cache_ttl: 600 # 10 minutes- Add delays between requests:
import time
for ticker in tickers:
result = analyzer.analyze_ticker(ticker)
time.sleep(5) # Wait 5 seconds between requests- Use API key (if available):
export CRYPTOCOMPARE_API_KEY=your_key_hereSymptoms:
Found 0 patterns
Causes:
- Sensitivity too high
- Insufficient data
- No clear patterns in data
- Pattern detection disabled
Solutions:
- Lower sensitivity:
cryptvault analyze BTC --sensitivity 0.3- Increase data range:
cryptvault analyze BTC --days 90- Check pattern configuration:
# In config/settings.yaml
patterns:
enabled_geometric: true
enabled_reversal: true
enabled_harmonic: true- Try different ticker:
# Some tickers have clearer patterns
cryptvault analyze ETH --days 60Symptoms:
- Analysis hangs or takes > 30 seconds
- No output for extended period
Causes:
- Too much data
- Slow network
- Resource constraints
Solutions:
- Reduce data points:
# In config/settings.yaml
analysis:
max_data_points: 500 # Reduce from 1000- Disable ML predictions:
ml:
enabled: false- Use faster interval:
cryptvault analyze BTC --days 30 --interval 1dSymptoms:
AnalysisError: Analysis failed
Causes:
- Data quality issues
- Configuration errors
- Component failures
Solutions:
- Enable debug logging:
export CRYPTVAULT_LOG_LEVEL=DEBUG
cryptvault analyze BTC --days 60- Check logs:
tail -f logs/cryptvault.log- Validate data:
from cryptvault.data.validators import DataValidator
from cryptvault.data.fetchers import DataFetcher
fetcher = DataFetcher()
data = fetcher.fetch('BTC', days=60)
validator = DataValidator()
result = validator.validate_price_dataframe(data)
print(result)Symptoms:
- System becomes slow
- Out of memory errors
- Swap usage increases
Causes:
- Too much data loaded
- Memory leaks
- Inefficient operations
Solutions:
- Limit data points:
analysis:
max_data_points: 500- Clear cache periodically:
from cryptvault.data.cache import DataCache
cache = DataCache()
cache.clear()- Process in batches:
tickers = ['BTC', 'ETH', 'ADA', 'SOL']
for ticker in tickers:
result = analyzer.analyze_ticker(ticker)
# Process result
del result # Free memorySymptoms:
- Indicator calculation takes > 5 seconds
- CPU usage spikes
Causes:
- Large datasets
- Inefficient calculations
- Missing NumPy
Solutions:
- Verify NumPy installed:
pip install numpy
python -c "import numpy; print(numpy.__version__)"- Reduce calculation complexity:
# Use shorter periods
rsi = calculate_rsi(prices, period=7) # Instead of 14- Profile performance:
import time
start = time.time()
result = analyzer.analyze_ticker('BTC')
print(f"Analysis took {time.time() - start:.2f}s")Symptoms:
ConfigurationError: Failed to load configuration
Causes:
- Missing config files
- Invalid YAML syntax
- Wrong file path
Solutions:
- Verify config files exist:
ls -la config/
cat config/settings.yaml- Validate YAML syntax:
python -c "import yaml; yaml.safe_load(open('config/settings.yaml'))"- Use default configuration:
from cryptvault.config.manager import ConfigManager
# Load default config
config = ConfigManager()Symptoms:
- Settings not applied
- Using wrong environment
Causes:
- Variables not exported
- Wrong variable names
- Shell issues
Solutions:
- Verify environment variables:
# Linux/macOS
echo $CRYPTVAULT_ENV
env | grep CRYPTVAULT
# Windows
echo %CRYPTVAULT_ENV%
set | findstr CRYPTVAULT- Export variables correctly:
# Linux/macOS
export CRYPTVAULT_ENV=production
# Windows
set CRYPTVAULT_ENV=production- Use .env file:
# Create .env file
cat > .env << EOF
CRYPTVAULT_ENV=production
CRYPTVAULT_LOG_LEVEL=INFO
EOFSymptoms:
- Output is plain text
- No color codes visible
Causes:
- Terminal doesn't support colors
- Colors disabled in config
- Windows console issues
Solutions:
- Enable colors:
# In config/settings.yaml
display:
enable_colors: true- Use color-capable terminal:
- Windows: Use Windows Terminal or PowerShell
- macOS: Use Terminal.app or iTerm2
- Linux: Most terminals support colors
- Force color output:
export FORCE_COLOR=1
cryptvault analyze BTCSymptoms:
- Chart is garbled
- Alignment issues
- Missing characters
Causes:
- Terminal size too small
- Unicode not supported
- Font issues
Solutions:
- Increase terminal size:
# Resize terminal to at least 120x40- Adjust chart dimensions:
display:
chart_width: 80 # Reduce if terminal is small
chart_height: 20- Disable Unicode:
display:
use_unicode: falseSymptoms:
- Too much information displayed
- Hard to read results
Causes:
- Debug logging enabled
- Verbose output mode
Solutions:
- Reduce log level:
export CRYPTVAULT_LOG_LEVEL=WARNING- Use quiet mode:
cryptvault analyze BTC --quiet- Output to file:
cryptvault analyze BTC > results.txtSymptoms:
ml_predictions: null
Causes:
- ML disabled
- Insufficient training data
- Model loading failed
Solutions:
- Enable ML:
ml:
enabled: true- Provide more data:
cryptvault analyze BTC --days 90 # More data for training- Check ML dependencies:
pip install scikit-learn tensorflowSymptoms:
ensemble_confidence: 0.35
Causes:
- Insufficient training data
- High market volatility
- Model not trained
Solutions:
- Increase training data:
cryptvault analyze BTC --days 180- This is normal for:
- Highly volatile markets
- Sideways price action
- Insufficient historical data
- Interpret with caution:
- Confidence < 0.4: Low confidence
- Confidence 0.4-0.6: Medium confidence
- Confidence > 0.6: High confidence
# Set environment variable
export CRYPTVAULT_LOG_LEVEL=DEBUG
# Run analysis
cryptvault analyze BTC --days 60
# Check logs
tail -f logs/cryptvault.logimport pdb
from cryptvault.core.analyzer import PatternAnalyzer
analyzer = PatternAnalyzer()
pdb.set_trace() # Breakpoint
result = analyzer.analyze_ticker('BTC')from cryptvault.core.analyzer import PatternAnalyzer
analyzer = PatternAnalyzer()
# Check data sources
print(analyzer.data_fetcher.get_available_sources())
# Check ML status
if analyzer.ml_predictor:
print(analyzer.ml_predictor.get_model_performance())from cryptvault.data.validators import DataValidator
from cryptvault.data.fetchers import DataFetcher
# Fetch data
fetcher = DataFetcher()
data = fetcher.fetch('BTC', days=60)
# Validate
validator = DataValidator()
result = validator.validate_price_dataframe(data)
print(f"Valid: {result['is_valid']}")
print(f"Errors: {result['errors']}")
print(f"Statistics: {result['statistics']}")import cProfile
import pstats
from cryptvault.core.analyzer import PatternAnalyzer
analyzer = PatternAnalyzer()
# Profile analysis
profiler = cProfile.Profile()
profiler.enable()
result = analyzer.analyze_ticker('BTC', days=60)
profiler.disable()
stats = pstats.Stats(profiler)
stats.sort_stats('cumulative')
stats.print_stats(20) # Top 20 slowest functionsA: Different tools use different algorithms, data sources, and parameters. CryptVault's results may vary due to:
- Pattern detection sensitivity settings
- Data source differences
- Indicator calculation methods
- ML model predictions
A: CryptVault is designed for educational and research purposes. It is NOT recommended for real-time trading without:
- Thorough backtesting
- Risk management
- Professional financial advice
- Understanding of limitations
A: ML predictions are probabilistic and should be used as one of many factors in analysis. Accuracy varies based on:
- Market conditions
- Available training data
- Prediction horizon
- Asset volatility
Typical accuracy ranges from 55-70% for short-term predictions.
A: Results may vary due to:
- New data points added
- Market conditions changed
- ML model retraining
- Random initialization in some algorithms
For consistent results, use the same data range and parameters.
A: Yes, CryptVault supports both:
cryptvault analyze AAPL --days 60 # Stock
cryptvault analyze BTC --days 60 # CryptoA: Report bugs on GitHub Issues with:
- Clear description
- Steps to reproduce
- Expected vs actual behavior
- Environment details
- Relevant logs
A: Currently, CryptVault is CLI-only. A web interface is planned for future releases.
A: Yes! See CONTRIBUTING.md for guidelines on:
- Adding new pattern detectors
- Writing tests
- Submitting pull requests
- README: Quick start and overview
- API Reference:
docs/API_REFERENCE.md - Architecture:
docs/ARCHITECTURE.md - Deployment:
docs/DEPLOYMENT.md
- GitHub Issues: Bug reports and feature requests
- GitHub Discussions: Questions and community support
- Email: support@cryptvault.io
- Documentation: https://cryptvault.readthedocs.io
- Check this troubleshooting guide
- Search existing GitHub issues
- Review documentation
- Enable debug logging
- Collect relevant information:
- CryptVault version
- Python version
- Operating system
- Error messages
- Log files
- Steps to reproduce
When asking for help, include:
**Environment**:
- OS: Windows 10 / macOS 12 / Ubuntu 20.04
- Python: 3.9.7
- CryptVault: 4.0.0
**Issue**:
Clear description of the problem
**Steps to Reproduce**:
1. Run command: cryptvault analyze BTC --days 60
2. See error: ...
**Expected Behavior**:
What should happen
**Actual Behavior**:
What actually happens
**Logs**:
Paste relevant logs here
**Additional Context**:
Any other relevant information
DataFetchError: Failed to fetch data for BTC from all sources
Solution: Check network, verify ticker, wait for rate limit reset
ValidationError: Insufficient data: 15 points (minimum 30 required)
Solution: Increase days or change interval
AnalysisError: Pattern detection failed
Solution: Check logs, validate data, reduce complexity
ConfigurationError: Invalid configuration value
Solution: Validate YAML syntax, check config values
MLPredictionError: Failed to generate predictions
Solution: Provide more data, check ML dependencies
If you've tried the solutions in this guide and still have issues:
- Enable debug logging and collect logs
- Search GitHub issues for similar problems
- Create a new issue with detailed information
- Join the community for help from other users
We're here to help! Don't hesitate to reach out.