ProtocolError: ('Connection aborted.', error(54, 'Connection reset by peer'))

Hello !

I’m facing weird problem with Appium + Robot Framework combination. I have several test cases, which are run smooth by Android Emulator. I have flakiness with tests, because sometimes tests turn “ProtocolError: (‘Connection aborted.’, error(54, ‘Connection reset by peer’))” and that is frustrating. This is always happening with this specific element.

**MacOs: 10.14.5 **
Appium Desktop: v1.13.0
Pip freeze:
Appium-Python-Client==0.43
asn1crypto==0.24.0
certifi==2019.6.16
cffi==1.12.3
chardet==3.0.4
cryptography==2.7
decorator==4.4.0
docutils==0.14
enum34==1.1.6
idna==2.8
ipaddress==1.0.22
kitche==1.2.6
pycparser==2.19
pyOpenSSL==19.0.0
requests==2.22.0
robotframework==3.1.1
robotframework-appiumlibrary==1.5.0.4
selenium==3.141.0
six==1.12.0
urllib3==1.25.2

I have tried:
Use virtualenv Python 2.7
Use virtualenv Python 3.7

Watched this too: Stackoverflow

When this specific Connection aborted 54 comes, Appium log says:

[AndroidBootstrap] [BOOTSTRAP LOG] [debug] Using: UiSelector[RESOURCE_ID=com.xxxxx:id/1_button]
[AndroidBootstrap] [BOOTSTRAP LOG] [debug] getElements selector:UiSelector[RESOURCE_ID=xxx:id/1_button]
[AndroidBootstrap] [BOOTSTRAP LOG] [debug] Element[] is null: (0)
[AndroidBootstrap] [BOOTSTRAP LOG] [debug] getElements tmp selector:UiSelector[INSTANCE=0, RESOURCE_ID=xxxx:id/1_button]
[AndroidBootstrap] [BOOTSTRAP LOG] [debug] Element[] is null: (1)
[AndroidBootstrap] [BOOTSTRAP LOG] [debug] getElements tmp selector:UiSelector[INSTANCE=1, RESOURCE_ID=xxxxx:id/1_button]
[AndroidBootstrap] Received command result from bootstrap
[W3C (854b9fc8)] Responding to client with driver.findElements() result: [{"element-7777-11e5-a52e-4f735466cecf":"3","ELEMENT":"3"}]
[HTTP] <-- POST /wd/hub/session/123/elements 200 622 ms - 69
[HTTP] 
[AndroidBootstrap] [BOOTSTRAP LOG] [debug] Returning result: {"status":0,"value":[{"ELEMENT":"3"}]}

Any clues how to tackle this?

I also use appium+rf, and i encoutering the same issue, some times it seems like couldn’t find an element, what i do is get the element text and log it, make sure if the element i want, and sometims it seems the sleep time is too long, then i will decrease sleep time.

Hi there!
Is there any solution for this? I faceing with this issue with appium + RobotFrame on MacOS. My python version is 3.7.5

I have encountered also the same issue with RF+ appium on macOS.

python version = 3.7.4

Hi All,

I have found a solution for this specific issue . I had installed this commandpip install pyopenssl ndg-httpsclient pyasn1

Hope it helps.