Troubleshooting Guide
This guide helps you resolve common issues with the HardFOC ESP-IDF CI Tools.
🔍 Common Issues
Build Failures
ESP-IDF Not Found
Problem: Workflow fails with “ESP-IDF not found” error
Solutions:
- Check ESP-IDF version in workflow configuration
- Verify version availability in ESP-IDF releases
- Update to supported version (v4.4 or later)
1
2
3
4
5
# In .github/workflows/build.yml
- name: Build Application
uses: espressif/esp-idf-ci-action@v1
with:
esp_idf_version: "release/v5.5" # Use supported version
Configuration Errors
Problem: “Configuration file not found” or “Invalid configuration”
Solutions:
- Verify file exists: Check
/examples/esp32/app_config.yml
- Validate YAML syntax:
1
yq eval /examples/esp32/app_config.yml
- Check file permissions and location
Build Type Not Supported
Problem: “Build type not supported” error
Solutions:
- Check app configuration in
app_config.yml
- Verify build types are defined for the app
- Update configuration to include required build types
CI/CD Issues
Workflow Not Triggering
Problem: GitHub Actions workflow doesn’t run
Solutions:
- Check workflow file is in
.github/workflows/
- Verify YAML syntax is correct
- Check trigger conditions (branches, paths)
- Ensure workflow is enabled in repository settings
Matrix Build Failures
Problem: Some matrix combinations fail
Solutions:
- Check excluded combinations in workflow
- Verify ESP-IDF version compatibility
- Review app-specific requirements
- Add exclusions for incompatible combinations
Port Detection Issues
No ESP32 Devices Found
Problem: Port detection script finds no devices
Solutions:
- Check USB connection and drivers
- Verify device permissions on Linux
- Try different USB port or cable
- Check device manager for driver issues
Permission Denied
Problem: “Permission denied” when accessing serial ports
Solutions:
- Add user to dialout group (Linux):
1
sudo usermod -a -G dialout $USER
- Check device permissions:
1
ls -la /dev/ttyUSB*
- Restart terminal after group changes
🛠️ Debugging
Enable Debug Mode
Add debug output to workflows:
1
2
3
4
5
6
- name: Debug Information
run: |
echo "ESP32_PROJECT_PATH: $ESP32_PROJECT_PATH"
echo "App: $"
echo "Build Type: $"
echo "ESP-IDF Version: $"
Check Logs
- GitHub Actions logs - Check workflow execution logs
- Build logs - Look for specific error messages
- ESP-IDF logs - Check ESP-IDF build output
Local Testing
Test configurations locally:
1
2
3
4
5
6
7
8
9
# Test build configuration
cd /examples/esp32
./scripts/build_app.sh validate your_app Release
# Test port detection
./scripts/detect_ports.sh
# Test configuration loading
./scripts/config_loader.sh
📋 Diagnostic Checklist
Pre-Flight Checks
- ESP-IDF installed and accessible
- Project structure follows expected layout
- Configuration files exist and are valid
- Workflow files are in correct location
- GitHub Actions are enabled for repository
Build System Checks
- app_config.yml syntax is valid
- Applications are defined correctly
- Build types are supported
- ESP-IDF versions are available
- Source files exist and are accessible
CI/CD Checks
- Workflow syntax is correct
- Matrix strategy is valid
- Secrets are configured (if needed)
- Triggers are set up correctly
- Permissions are sufficient
🆘 Getting Help
Self-Service Resources
- Check this guide for common issues
- Review GitHub Actions logs for specific errors
- Test locally before pushing to CI
- Validate configuration files
Community Support
- GitHub Issues - Report bugs and request features
- Discussions - Ask questions and share solutions
- ESP-IDF Forum - ESP-IDF specific issues
Professional Support
For enterprise or complex issues:
- Contact maintainers via GitHub
- Request consultation for custom setups
- Submit feature requests for specific needs
📚 Additional Resources
- Build System - Detailed build documentation
- CI Pipeline - Workflow optimization
- Configuration - Configuration management
- Examples - Real-world usage examples
Still having issues? Check our GitHub Issues or create a new issue with detailed information about your problem.