Page method failing for specific screen/device

Here is the thing, I`m mapping some elements from a specific screen and everything works fine, but when I change the android device the elements cannot be found (almost all android devices available here cant read the elements of this screen)

I`m using appium with cucumber and ruby language with real android devices

So the problem occurs in a particular screen (the app is hybrid and changing to webview did not solve the issue, this screen is native after all)
The elements can be found in a motorola g3 device with android 6.0 (native context), Im trying in others with different android versions and the elements are not found (moto g5, g6, some samsungs) when I debug the screen and type page in order to see if elements are visible by appium, it freezes and page method remains without any response until I return to previous screen and voilà, all elements are recognized instantly again running the same process, same thing occurs over and over again at the same screen, but when I change to another device it works, all elements are returned and no issue is presented in all attempts. The device which the server is running cant map this screen also =/

So, since it has different behavior for different devices in same screen, I`m supposing that the app is working fine and some configuration is different between both (note: iOS emulator used can map this screen properly)

I compared all permision and settings from adb shell of app package (there are small differences regarding some android settings but nothing that could be related to the issue). Both devices are running the same apk package

When page method freezes

[debug] [AndroidBootstrap] Received command result from bootstrap
[debug] [MJSONWP] Responding to client with driver.getPageSource() result: “<?xml version=\"1.0\" encoding=\"UTF-8\"?><hierarchy rotation=“0”><android.widget.FrameLayout index=“0” text=”" class=“android.widget.FrameLayout” package=\EDITED" content-desc="" checkable=“false” checked=“false” clickable=“false” enabled=“true” focusable=“false” focused=“false” scrollable=“false” long-clickable=“false” password=“false” selected=“false” bounds="[324,849][755,999]" resource-id="" instance=“0”><android.widget.FrameLayout index=“0” text="" class=“android.widget.FrameLayout” package=\EDITED" content-desc="" checkable=“false” checked=“false” clickable=“false” enabled=“true” focusable=“false” focused=“false” scrollable=“false” long-clickable=“false” password=“false” selected=“false” bounds="[324,849][755,999]" resource-id="" instance=“1”><android.widget.FrameLayout index=“0” text="" class=“android.widget.FrameLayout” package=\EDITED" content-desc="" checkable=“false” checked="fa…
[HTTP] <-- GET /wd/hub/session/6f35fbfb-d855-49f1-9e8c-bf851e7ba6d6/source 200 30 ms - 3147
[HTTP]
[HTTP] --> GET /wd/hub/session/6f35fbfb-d855-49f1-9e8c-bf851e7ba6d6/source
[HTTP] {}
[debug] [MJSONWP] Calling AppiumDriver.getPageSource() with args: [“6f35fbfb-d855-49f1-9e8c-bf851e7ba6d6”]
[debug] [AndroidBootstrap] Sending command to android: {“cmd”:“action”,“action”:“source”,“params”:{}}
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Got data from client: {“cmd”:“action”,“action”:“source”,“params”:{}}
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Got command of type ACTION
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Got command action: source

— No more return until changing the screen –

I’ve mapped the difference between both android settings, the code below is from device that is not working, the other does not show these configs (so I discarded this hypothesis). Other settings are exactly the same, so I removed from evidence here

 android.permission.SYSTEM_ALERT_WINDOW: granted=true
 android.permission.CHANGE_NETWORK_STATE: granted=true
 android.permission.WRITE_CONTACTS: granted=true	
 android.permission.CAMERA: granted=true
 android.permission.GET_ACCOUNTS: granted=true
 android.permission.WRITE_EXTERNAL_STORAGE: granted=true
 android.permission.WRITE_EXTERNAL_STORAGE: granted=true
 android.permission.RECORD_AUDIO: granted=true
 android.permission.READ_CONTACTS: granted=true

Nothing special there if one keeps using an obsolete driver. Switching to UIA2/Espresso ought to solve the problem

The uiautomator can map the screen with no problems, I`m using it to map elements. The problem is with appium side in finding the element on this screen with some devices, that’s why I used the page to see if appium can map and see those elements. So if page does not work, the test will fail because appium will not find any element. Other screens are not affected by this issue