Why geolocation.getCurrentPosition hangs on some devices?

I have an Ionic 4 app that uses Geolocation.
On same Android devices (for example One Plus One with Android9) when I call the geolocation.getCurrentPosition() the device asks for the permission to use Geolocation, but when I click on “confirm” it seems that the plugin hangs.
Launching the app in debug mode on the device I can see that, with the following code, on the Chrome console only the first log “Print1”.

    const result = await this.geolocation.getCurrentPosition()
      .then((resp) => {
        console.log('@@@1 Print2', resp);
    }, (err) => {
      console.log('@@@ Err Print3');

The app doesn’t print the log “Print2” or the log “Prin3” or the log “Print4”.
On the device settings, I can see that the geolocation permission for the app is active.
I can’t see other errors on the Chrome console.

So what could be the problem?

Ionic version:

   Ionic CLI                     : 5.2.1 
   Ionic Framework               : @ionic/angular 4.3.0
   @angular-devkit/build-angular : 0.13.9
   @angular-devkit/schematics    : 7.2.4
   @angular/cli                  : 7.3.8
   @ionic/angular-toolkit        : 1.5.1
   Cordova CLI       : 9.0.0 (cordova-lib@9.0.1)
   Cordova Platforms : android 8.0.0, ios 5.0.1
   Cordova Plugins   : cordova-plugin-ionic-keyboard 2.1.3, cordova-plugin-ionic-webview 4.1.0, (and 11 other plugins)
   cordova-res : 0.6.0
   native-run  : 0.2.2
   Android SDK Tools : 26.1.1 
   NodeJS            : v10.15.3 
   npm               : 6.9.0
   OS                : Windows 10

Installed plugin:

C:\ProveElectron\bitsharingapp>cordova plugin list   
cordova-plugin-camera 4.0.3 "Camera"
cordova-plugin-geolocation 4.0.1 "Geolocation"
cordova-plugin-inappbrowser 3.0.0 "InAppBrowser"
cordova-plugin-insomnia 4.3.0 "Insomnia (prevent screen sleep)"
cordova-plugin-ionic-keyboard 2.1.3 "cordova-plugin-ionic-keyboard"
cordova-plugin-ionic-webview 4.1.0 "cordova-plugin-ionic-webview"
cordova-plugin-ios-disableshaketoedit 1.0.0 "iOS Disable Shake to Edit"
cordova-plugin-mauron85-background-geolocation 3.0.3 "CDVBackgroundGeolocation"
cordova-plugin-splashscreen 5.0.2 "Splashscreen"
cordova-plugin-statusbar 2.4.2 "StatusBar"
cordova-plugin-whitelist 1.3.3 "Whitelist"
phonegap-plugin-barcodescanner 8.0.1 "BarcodeScanner"
cordova-plugin-device 2.0.2 "Device"
cordova-plugin-file 6.0.1 "File"

Now I have seen that specifying these options the plugin returns after 20 seconds, but with this error:

PositionError {code: 3, message: "Timeout expired"}
code: 3
message: "Timeout expired"
__proto__: PositionError

So it seems that this plugin doesn’t work with this device.

Are there any other tests I can do to debug the problem?

const options = {
  enableHighAccuracy: true,
  timeout: 20000,
  maximumAge: 0

const result = await this.geolocation.getCurrentPosition(options)