When onError is triggered we should set watchingPosition to false, so then we can call startWatchingPosition again ( and try to fetch the location again ).
At the moment if i received a TIMEOUT error, it doesn't retry and it seems that the app will only update the position if you refresh the page, when you could actually just call watchPosition again and get onPosition callback called.