Synheart Wear Issues
Permission Denied
Problem: App cannot access health data from wearable device. Solutions:- iOS: Check
Info.plisthasNSHealthShareUsageDescriptionkey - Android: Verify Health Connect permissions are granted in system settings
- Ensure the user has granted permissions through the SDK’s
requestPermissions()method - Check device compatibility (some devices require specific Android/iOS versions)
No Data Received
Problem: SDK initializes but no biometric data is received. Solutions:- Verify wearable device is synced and has recent data
- Check device battery level (low battery may prevent syncing)
- Ensure device is within Bluetooth range (for direct connections)
- For cloud APIs (WHOOP, Garmin), verify OAuth tokens are valid
- Check network connection for cloud-based wearables
OAuth Flow Fails
Problem: Cannot complete OAuth authentication for cloud wearables. Solutions:- Verify OAuth credentials are correct in
.env.localor configuration - Check redirect URI matches vendor dashboard settings
- Ensure ngrok tunnel is active (for localhost development)
- Clear browser cookies and try again
- Check vendor API status page for outages
Data Format Mismatch
Problem: Received data doesn’t match expected schema. Solutions:- Verify SDK version compatibility
- Check device adapter version matches SDK version
- Review data normalization logs for warnings
- Ensure using latest SDK version
Synheart Emotion Issues
Low Confidence Scores
Problem: Emotion detection returns low confidence values (< 0.5). Solutions:- Ensure sufficient data window (minimum 60 seconds recommended)
- Check RR intervals are valid (not all zeros or identical values)
- Verify heart rate is within normal range (50-200 bpm)
- Increase window duration for more stable results
- Check for motion artifacts in biosignal data
No Results Returned
Problem:consumeReady() returns empty list.
Solutions:
- Ensure enough data has been pushed (minimum window duration)
- Check step duration hasn’t elapsed yet
- Verify data is being pushed correctly (check timestamps)
- Increase window size if data arrives slowly
- Check engine initialization was successful
High Memory Usage
Problem: SDK uses excessive memory. Solutions:- Reduce window duration if possible
- Clear old results regularly with
consumeReady() - Use smaller step duration to process more frequently
- Check for memory leaks in your integration code
- Ensure proper disposal of engine instances
Thread Safety Errors
Problem: Crashes or errors when using SDK from multiple threads. Solutions:- Ensure all SDK calls happen on the same thread/context
- Use proper synchronization mechanisms
- Check SDK documentation for thread-safety guarantees
- Consider using a single engine instance with proper locking
Platform-Specific Issues
Flutter/Dart
Problem: Build errors or missing dependencies. Solutions:- Verify
Info.plistentries are correct - Check HealthKit capability is enabled in Xcode
- Ensure app is signed with proper provisioning profile
Android/Kotlin
Problem: Health Connect not available. Solutions:- Verify Health Connect app is installed
- Check Android version (requires Android 9+)
- Ensure Health Connect is enabled in system settings
- Verify repository URL in
settings.gradle.kts - Check version tag exists on GitHub
- Clear Gradle cache:
./gradlew clean
iOS/Swift
Problem: Swift Package Manager cannot resolve dependencies. Solutions:- Verify package URL is correct
- Check minimum iOS version requirement
- Clear SPM cache:
rm -rf ~/Library/Developer/Xcode/DerivedData - Update Xcode to latest version
- Check
Info.plisthas proper usage descriptions - Verify HealthKit capability is enabled
- Reset permissions: Settings → Privacy → Health → [Your App]
Python
Problem: Import errors or missing dependencies. Solutions:- Verify internet connection for first-time download
- Check disk space availability
- Clear cache and reinstall:
pip uninstall synheart-emotion && pip install synheart-emotion
CLI Issues
Command Not Found
Problem:wear command not recognized.
Solutions:
ngrok Tunnel Fails
Problem: Cannot create ngrok tunnel for webhooks. Solutions:- Verify ngrok authtoken is configured:
ngrok config check - Check ngrok is installed:
ngrok version - Ensure port 8080 is not in use
- Try different port:
wear webhook start --port 8081
OAuth Redirect Fails
Problem: OAuth callback doesn’t reach local server. Solutions:- Verify ngrok URL matches vendor redirect URI
- Check firewall isn’t blocking localhost:8080
- Ensure local server is running before starting OAuth flow
- Try manual OAuth flow if automatic fails
Performance Issues
High CPU Usage
Problem: SDK causes high CPU usage. Solutions:- Reduce streaming frequency
- Increase step duration for emotion engine
- Use background threads for processing
- Profile your app to identify bottlenecks
Battery Drain
Problem: App drains device battery quickly. Solutions:- Reduce streaming frequency
- Use appropriate window sizes (not too small)
- Implement proper background/foreground handling
- Consider batching data processing
Getting Help
If you’re still experiencing issues:- Check Documentation: Review the relevant SDK guide
- GitHub Issues: Search existing issues on GitHub
- Community: Ask questions in Discussions
- Support: Contact support@synheart.ai
- SDK version
- Platform and version
- Device model
- Error messages or logs
- Steps to reproduce
Author: Israel Goytom