### Context
We maintain a downstream fork of QField tailored for field vegetation
surveys in Poland (WorkField), so first of all: thank you for the new
in-app NTRIP client — it removes a whole layer of third-party mock-location
tooling for RTK workflows and has been working nicely in our tests.
### Current behaviour
Looking at
src/core/positioning/ntripclient.cpp
and
positioningsource.cpp
, when the caster connection drops or errors out,
NtripClient
emits
errorOccurred()
/
streamDisconnected()
and
PositioningSource
records the state — but no reconnection is attempted.
The client is only (re)started when the receiver connection state changes,
so after a transient network hiccup the user has to toggle NTRIP manually.
### Why it matters in the field
On cellular connections in rural areas, short drops (handover, coverage
gaps) are routine. Each one currently silently degrades the fix from RTK
back to autonomous until the surveyor notices and reconnects by hand —
easy to miss while collecting data.
### Suggested behaviour
Automatic retry with growing backoff (e.g. 1 s doubling up to ~30 s),
gated by the
isPermanent
flag that
errorOccurred(message, isPermanent)
already carries — permanent errors (bad credentials, unknown mountpoint)
would stop retrying and surface to the user, transient ones would retry
quietly.
We would be happy to prepare a PR along these lines if the approach
sounds right to you.