Establish the deployment contract
Record the SDK version, device models, OS versions, transports, topology, enrollment policy and expected workload. Define retention, maximum offline duration, queue capacity and the application’s acceptance rules.Preserve identity and state
Keep the same application/profile namespace across normal restarts. Store MLS material and protocol state through the platform’s supported providers. Treat logout, reinstall, key loss and device replacement as explicit lifecycle operations. Do not delete state as a general troubleshooting step. On Android, process restart requires an application-owned receiving path. ReviewregisterMeshWakeTask and its manifest opt-in in the React Native integration guide. Register handlers before starting the protocol, including in background work.
Test the failure boundaries
- Internet disconnected while peers continue communicating.
- Peer partition, local work and later reconnection.
- Process termination and restart with pending records.
- Queue expiry and capacity exhaustion.
- Rejected or duplicate business operations.
- Backend outage, recovery and acceptance reconciliation.
- Provider disappearance during a request, including uncertain outcomes.

