Formulus Troubleshooting
Common issues and solutions for the Formulus mobile application.
Quick Reference
| Issue | Solution | Section |
|---|---|---|
| App won't connect to server | Check server URL, network | Connection Issues |
| Forms don't appear | Sync app bundle | Sync Issues |
| Can't submit form | Check validation errors | Form Issues |
| Observations stuck pending | Check sync status | Sync Issues |
| App crashes | Check logs, reinstall | App Issues |
| GPS not working | Check permissions, signal | Permission Issues |
Connection Issues
Issue: "Connection failed"
Check:
- Server URL is correct (use IP, not localhost)
- Device has network access
- Server is running
- Same network as server
Solutions:
# Test server from device network
curl http://YOUR_SERVER_IP/health
# Check server is running
cd synkronus
docker compose ps
# Verify nginx is healthy
docker compose logs nginx
Issue: "Unable to reach server"
Check:
- Firewall allows port 80
- Server IP hasn't changed
- Device and server on same network
Solution:
# Find your server IP
hostname -I | awk '{print $1}' # Linux
ifconfig | grep "inet " | grep -v 127.0.0.1 # macOS
# Update server URL in app settings
Issue: "Authentication failed"
Check:
- Username and password are correct
- User exists on server
- Server authentication is working
Solution:
# Test login via API
curl -X POST http://localhost/auth/login \
-H "Content-Type: application/json" \
-d '{"username":"admin","password":"Password"}'
# If fails, check server logs
docker compose logs synkronus
Sync Issues
Issue: Forms don't appear
Try:
- Go to Sync screen
- Tap "Sync Now"
- Wait for app bundle download
- Check Forms screen again
If still not working:
# Check app bundle is uploaded
cd synkronus-cli
./bin/synk app-bundle versions
# Check bundle is activated
./bin/synk app-bundle manifest
# Re-upload if needed
./bin/synk app-bundle upload bundle.zip --activate
Issue: Observations stuck as "Pending"
Try:
- Check network connection
- Manual sync from Sync screen
- Check for sync errors
- Verify server is running
Check sync status:
# Check server is accessible
curl http://localhost/health
# Check server logs
docker compose logs synkronus | grep -i sync
Issue: Photo won't upload
Check:
- File size (may be too large)
- Network connection
- Server storage space
- Retry from Sync screen
Solution:
# Check server storage
docker compose exec synkronus df -h
# Check attachment size limits in server config
Issue: Sync fails with error
Check logs:
- Open app developer menu
- Check sync error message
- Review server logs
Common causes:
- Network timeout
- Server error
- Authentication expired
- File too large
Solution:
# Check server logs
docker compose logs synkronus --tail 50
# Restart sync from app
# Or restart server
docker compose restart synkronus
Form Issues
Issue: Can't submit form
Check:
- All required fields filled
- Validation errors shown
- Form is not read-only
Validation errors:
- Red highlight on invalid fields
- Error messages below fields
- Cannot submit until resolved
Issue: Form shows blank screen
Check:
- App bundle synced successfully
- Form schema is valid
- Check app logs
Solution:
# Check app logs
adb logcat | grep -i "formulus\|form"
# Re-sync app bundle
# Go to Sync screen → Sync Now
Issue: Field not showing
Check:
- Conditional logic - field may be hidden
- Form schema - field may not be defined
- UI schema - field may not be included
Solution:
- Check form schema and UI schema
- Verify conditional rules
- Test form in formplayer web app
App Issues
Issue: App crashes on startup
Try:
- Force close and reopen
- Clear app cache (Settings)
- Reinstall app (last resort)
- Check device storage space
Check logs:
# Android logs
adb logcat | grep -i "formulus\|crash"
# Check for errors
adb logcat *:E | grep formulus
Issue: App won't install
Check:
- Device has enough storage
- Unknown sources enabled (for APK)
- Android version compatible
Solution:
# Check device storage
adb shell df -h
# Check Android version
adb shell getprop ro.build.version.release
# Rebuild and install
cd formulus
npm run android
Issue: "Unable to resolve module"
Solution:
cd formulus
rm -rf node_modules
npm install
npm start -- --reset-cache
Permission Issues
Issue: GPS not working
Check:
- Location permission granted
- GPS enabled on device
- Good GPS signal (outdoors)
- Wait for accuracy to improve
Solution:
- Go to device Settings → Apps → Formulus → Permissions
- Enable Location permission
- Try again outdoors for better signal
Issue: Camera not working
Check:
- Camera permission granted
- Camera hardware available
- No other app using camera
Solution:
- Go to device Settings → Apps → Formulus → Permissions
- Enable Camera permission
- Close other camera apps
- Restart Formulus app
Issue: Microphone not working
Check:
- Microphone permission granted
- Microphone hardware available
- No other app using microphone
Solution:
- Go to device Settings → Apps → Formulus → Permissions
- Enable Microphone permission
- Test with device voice recorder first
Configuration Issues
Issue: QR code won't scan
Possible causes:
- Image too small
- Poor lighting
- Damaged/blurry print
Solutions:
- Display larger on screen
- Improve lighting
- Reprint at higher quality
- Use manual configuration instead
Issue: Settings won't save
Check:
- All fields filled correctly
- Connection test successful
- App has storage permission
Solution:
- Test connection first
- Save settings
- Restart app
- Verify settings persisted
Performance Issues
Issue: App is slow
Check:
- Device storage space
- Number of observations
- App cache size
Solution:
- Clear app cache (Settings)
- Sync and remove old observations
- Restart device
- Reinstall app if needed
Issue: Forms load slowly
Check:
- App bundle size
- Number of forms
- Device performance
Solution:
- Optimize app bundle size
- Reduce number of forms
- Use simpler form schemas
Getting Help
If you're still experiencing issues:
-
Check logs:
adb logcat | grep formulus -
Review documentation:
-
Report issues:
- Include error messages
- Device information
- Steps to reproduce
- Relevant logs