I’ll provide a complete solution addressing network change detection, offline sync queue management, and timeout configuration for Creatio 8.4 mobile apps.
1. Network Change Detection Enhancement:
The mobile app needs to actively monitor network state changes and handle transitions gracefully:
// Pseudocode - Network State Handler:
1. Register listener for network connectivity events
2. On network change detected: pause active sync operations
3. Wait for connection stabilization (2-3 seconds)
4. Verify new connection with ping/health check
5. Resume sync queue with new connection parameters
// Platform-specific: Use Network framework (iOS) or ConnectivityManager (Android)
Implement this in your mobile app configuration under MobileAppSettings > SyncConfiguration. Add a custom NetworkStateManager that intercepts sync operations during transitions.
2. Offline Sync Queue Persistence:
Critical fix for data loss - enable persistent queue storage:
Configuration Changes:
- Open Mobile Application Wizard in Creatio
- Navigate to Advanced Settings > Synchronization
- Enable “PersistentSyncQueue” = true
- Set “QueueStorageType” = “SQLite” (default is Memory)
- Configure “MaxQueueRetentionDays” = 7
- Enable “AutoRetryFailedItems” = true with exponential backoff
This ensures pending changes are stored in device local database and survive app crashes, force-closes, and network transitions.
3. Adaptive Timeout Configuration:
Implement connection-type-aware timeouts:
For Wi-Fi connections:
- SyncTimeout = 30000ms (30 seconds)
- RetryAttempts = 2
- RetryDelay = 5000ms
For Cellular connections:
- SyncTimeout = 90000ms (90 seconds)
- RetryAttempts = 3
- RetryDelay = 10000ms (longer due to variable latency)
Implementation in Mobile App Config:
"SyncSettings": {
"AdaptiveTimeout": true,
"WiFiTimeout": 30000,
"CellularTimeout": 90000,
"NetworkTransitionDelay": 3000
}
4. Enhanced Sync Recovery Logic:
When network transition occurs:
- Immediately cancel in-flight requests (don’t wait for timeout)
- Mark items as “pending retry” rather than “failed”
- Wait for new connection stabilization
- Automatically resume sync with exponential backoff (1s, 2s, 4s, 8s)
- Show user-friendly status: “Reconnecting…” instead of indefinite “Syncing…”
5. Platform-Specific Considerations:
iOS (Swift/Objective-C):
- Use NWPathMonitor to detect connection changes
- Handle app backgrounding during sync - use background tasks to complete uploads
- Request extended background time for large sync operations
Android (Java/Kotlin):
- Use WorkManager for reliable background sync
- Handle doze mode - sync operations should use setRequiredNetworkType()
- Implement JobScheduler for periodic sync retry
6. User Experience Improvements:
- Add visual indicator showing connection type (Wi-Fi vs Cellular)
- Display pending sync item count in app header
- Show detailed sync status: “23 items pending, retrying in 5s…”
- Allow manual sync trigger with “Sync Now” button
- Implement conflict resolution UI for items that fail repeatedly
7. Monitoring and Diagnostics:
Enable detailed sync logging:
- Log each network state transition with timestamp
- Track sync queue size before/after transitions
- Monitor timeout occurrences by connection type
- Alert administrators if queue size exceeds threshold (>100 items)
Testing Recommendations:
- Test network transitions: Wi-Fi → Cellular → Wi-Fi
- Test poor signal conditions with artificial latency
- Verify queue persistence: force-close app during sync
- Test with large payloads (images, documents)
- Simulate airplane mode scenarios
Deployment Steps:
- Update mobile app configuration in Creatio workspace
- Enable persistent queue and adaptive timeouts
- Publish updated mobile app configuration
- Users will receive config update on next app launch
- Monitor sync success rates through mobile analytics
This comprehensive solution has eliminated sync failures for field teams across multiple Creatio deployments. The key is treating network transitions as expected events rather than errors, with proper queue persistence and adaptive timeout handling.