Skip to main content

Fix IE driver crash during session creation

Sometimes, for an unknown reason, the Internet Explorer (IE) driver crashes while a session is created, which results in the RPA bot waiting for three hours. To avoid the long waiting, the rpa.timeouts.http.create-session timeout is introduced:

The default value is one minute. After the crash, an RPA bot waits for one minute and then throws the following exception:

Driver info: driver.version: UniversalDriver
org.openqa.selenium.SessionNotCreatedException: Faced SocketTimeoutException during session creation:
Build info: version: 'unknown', revision: 'unknown', time: 'unknown'
System info: host: 'EC2AMAZ-9VMAUJS', ip: '10.100.24.128', os.name: 'Windows Server 2016', os.arch: 'amd64', os.version: '10.0', java.version: '1.8.0_345'
Driver info: driver.version: UniversalDriver
at org.openqa.selenium.grid.session.remote.RemoteSession$Factory.performHandshake(RemoteSession.java:191) ~[rpa-selenium-server-10.1.0.20.jar!/:na]
at org.openqa.selenium.grid.session.remote.ServicedSession$Factory.apply(ServicedSession.java:203) ~[rpa-selenium-server-10.1.0.20.jar!/:na]
at org.openqa.selenium.remote.server.ActiveSessionFactory.lambda$apply$12(ActiveSessionFactory.java:180) [rpa-selenium-server-10.1.0.20.jar!/:na]
at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193) ~[na:1.8.0_345]
at java.util.stream.ReferencePipeline$11$1.accept(ReferencePipeline.java:440) ~[na:1.8.0_345]
at java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:175) ~[na:1.8.0_345]
at java.util.Spliterators$ArraySpliterator.tryAdvance(Spliterators.java:958) ~[na:1.8.0_345]
at java.util.stream.ReferencePipeline.forEachWithCancel(ReferencePipeline.java:126) ~[na:1.8.0_345]
at java.util.stream.AbstractPipeline.copyIntoWithCancel(AbstractPipeline.java:499) ~[na:1.8.0_345]
at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:486) ~[na:1.8.0_345]
at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:472) ~[na:1.8.0_345]
at java.util.stream.FindOps$FindOp.evaluateSequential(FindOps.java:152) ~[na:1.8.0_345]
at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) ~[na:1.8.0_345]
at java.util.stream.ReferencePipeline.findFirst(ReferencePipeline.java:531) ~[na:1.8.0_345]
at org.openqa.selenium.remote.server.ActiveSessionFactory.apply(ActiveSessionFactory.java:183) [rpa-selenium-server-10.1.0.20.jar!/:na]
at com.workfusion.universal.factory.UniversalDriverFactory.createDriverSession(UniversalDriverFactory.java:108) ~[rpa-desktop-10.2.6.8-RPA-785-SNAPSHOT.jar!/:na]
at com.workfusion.universal.factory.UniversalDriverFactory.createDriver(UniversalDriverFactory.java:53) ~[rpa-desktop-10.2.6.8-RPA-785-SNAPSHOT.jar!/:na]
at com.workfusion.universal.state.UniversalDriverState.lambda$createWebDriverIfNotExists$0(UniversalDriverState.java:120) ~[rpa-desktop-10.2.6.8-RPA-785-SNAPSHOT.jar!/:na]
at java.util.HashMap.computeIfAbsent(HashMap.java:1128) ~[na:1.8.0_345]
at com.workfusion.universal.state.UniversalDriverState.createWebDriverIfNotExists(UniversalDriverState.java:120) ~[rpa-desktop-10.2.6.8-RPA-785-SNAPSHOT.jar!/:na]
at com.workfusion.universal.state.UniversalDriverState.switchDriver(UniversalDriverState.java:141) ~[rpa-desktop-10.2.6.8-RPA-785-SNAPSHOT.jar!/:na]
at com.workfusion.universal.driver.UniversalDriver.switchDriver(UniversalDriver.java:65) ~[rpa-desktop-10.2.6.8-RPA-785-SNAPSHOT.jar!/:na]
at com.freedomoss.crowdcontrol.webharvest.selenium.wrapper.LocalDriverWrapper.<init>(LocalDriverWrapper.java:35) ~[rpa-api-10.2.6.8-RPA-785-SNAPSHOT.jar!/:na]
at com.freedomoss.crowdcontrol.webharvest.plugin.selenium.RobotPlugin.createSeleniumDriver(RobotPlugin.java:463) ~[bot-execution-api-provided-10.2.6.9-RPA-785-SNAPSHOT.jar!/:na]
at com.freedomoss.crowdcontrol.webharvest.plugin.selenium.RobotPlugin.createWebDriver(RobotPlugin.java:447) ~[bot-execution-api-provided-10.2.6.9-RPA-785-SNAPSHOT.jar!/:na]
at com.freedomoss.crowdcontrol.webharvest.plugin.selenium.RobotPlugin.initDriverWrapper(RobotPlugin.java:219) ~[bot-execution-api-provided-10.2.6.9-RPA-785-SNAPSHOT.jar!/:na]
at com.freedomoss.crowdcontrol.webharvest.plugin.selenium.RobotPlugin.initDriver(RobotPlugin.java:343) ~[bot-execution-api-provided-10.2.6.9-RPA-785-SNAPSHOT.jar!/:na]
at com.freedomoss.crowdcontrol.webharvest.plugin.selenium.RobotPlugin.executePlugin(RobotPlugin.java:140) ~[bot-execution-api-provided-10.2.6.9-RPA-785-SNAPSHOT.jar!/:na]
at org.webharvest.runtime.processors.WebHarvestPlugin.execute(WebHarvestPlugin.java:125) ~[workfusion-webharvest-core-1.6.117.jar!/:na]
at org.webharvest.runtime.processors.BaseProcessor.run(BaseProcessor.java:127) ~[workfusion-webharvest-core-1.6.117.jar!/:na]
at org.webharvest.runtime.processors.BodyProcessor.execute(BodyProcessor.java:27) ~[workfusion-webharvest-core-1.6.117.jar!/:na]
at org.webharvest.runtime.processors.WebHarvestPlugin.executeBody(WebHarvestPlugin.java:246) ~[workfusion-webharvest-core-1.6.117.jar!/:na]
at com.freedomoss.crowdcontrol.webharvest.plugin.selenium.RoboticsFlowPlugin.executePlugin(RoboticsFlowPlugin.java:110) ~[bot-execution-api-provided-10.2.6.9-RPA-785-SNAPSHOT.jar!/:na]
at org.webharvest.runtime.processors.WebHarvestPlugin.execute(WebHarvestPlugin.java:125) ~[workfusion-webharvest-core-1.6.117.jar!/:na]
at org.webharvest.runtime.processors.BaseProcessor.run(BaseProcessor.java:127) ~[workfusion-webharvest-core-1.6.117.jar!/:na]
at org.webharvest.runtime.Scraper.execute(Scraper.java:169) ~[workfusion-webharvest-core-1.6.117.jar!/:na]
at org.webharvest.runtime.CustomScraper.execute(CustomScraper.java:37) ~[bot-execution-core-10.2.6.9-RPA-785-SNAPSHOT.jar!/:na]
at org.webharvest.runtime.Scraper.execute(Scraper.java:182) ~[workfusion-webharvest-core-1.6.117.jar!/:na]
at com.freedomoss.crowdcontrol.webharvest.executor.LocalWebharvestTaskExecutor.executeWebHarvestTask(LocalWebharvestTaskExecutor.java:188) ~[bot-execution-core-10.2.6.9-RPA-785-SNAPSHOT.jar!/:na]
at com.freedomoss.crowdcontrol.webharvest.executor.LocalWebharvestTaskExecutor.executeWebHarvestTask(LocalWebharvestTaskExecutor.java:130) ~[bot-execution-core-10.2.6.9-RPA-785-SNAPSHOT.jar!/:na]
at com.workfusion.worker.ct.executors.WebharvestExecutorService.execute(WebharvestExecutorService.java:84) ~[classes!/:10.2.6.9-RPA-785-SNAPSHOT]
at com.workfusion.spa.core.execution.worker.router.ActiveTaskHandlerService.lambda$processAndTrackTask$0(ActiveTaskHandlerService.java:91) ~[execution-worker-10.2.6.3.jar!/:na]
at java.util.concurrent.FutureTask.run(FutureTask.java:266) ~[na:1.8.0_345]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) ~[na:1.8.0_345]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) ~[na:1.8.0_345]
at java.lang.Thread.run(Thread.java:750) ~[na:1.8.0_345]
Caused by: java.net.SocketTimeoutException: timeout

If SessionNotCreatedException is caused by SocketTimeoutException, the session re-tries creation up to three times. The following log appears:

Trying to re-create session. Attempts left {}