Good Day, I\'ve done a number of searches on here and google and yet to find a solution that address this problem.
The scenario is:
I have a Python script (
This error message...
Message: failed to decode response from marionette
...implies that the communication between GeckoDriver and Marionette was interrupted/broken.
Some of the reasons and solution for this issue are as follows:
In the discussion Crash during command execution results in "Internal Server Error: Failed to decode response from marionette" @whimboo mentions, while executing your tests Selenium may force a crash of the parent process of Firefox with an error as:
DEBUG <- 500 Internal Server Error {"value":{"error":"unknown error","message":"Failed to decode response from marionette","stacktrace":...}...}
In the discussion Failed to decode response from marionette with Firefox >= 65 @rafagonc mentioned, this issue can occur when using GeckoDriver / FirefoxDriver or ChromeDriver in docker environment, due to presence of Zombie process that hangs even after invoking driver.quit(). At times, when you open many browsing instances one after another, your system may run out of memory or out of PIDs. See: Selenium using too much RAM with Firefox
As a solution @andreastt mentions, the following configuration should resolve the out of memory issue with Docker:
--memory 1024mb --shm-size 2g
Steps: Configure SHM size in the docker container
Similarly, while executing your test in your localhost, it is advisable to keep the following (minimum) configuration:
--memory 1024mb
This issue can also occur due to incompatibility between the version of the binaries you are using.
Solution:
Test as a non-root user.[e10s] Crash in libyuv::ARGBSetRow_X86
You can find a relevant detailed discussion in: