Getting "com.jacob.com.ComFailException cannot be found" error on Switch Window Action

Not sure what’s causing this, but I’m running a switch window in a While loop to determine when a certain Chrome window closes. It’s bringing my entire business process to a standstill.

Any ideas? Thanks in advance!

Error executing SwitchWindowAction
com.workfusion.studio.rpa.recorder.playback.PlaybackException: Error executing TemplateAction[templateName=SwitchWindowAction.ftl,id=121,name=Optional[SwitchWindowAction],parent=119,arguments=ActionArguments[modeType=[BY_TITLE],delay=[0],timeoutMs=[10000],xsi:type=[recorder:SwitchWindowAction, recorder:SwitchWindowAction],pollingInterval=[300],active=[true],actionDetails=[],title=[(?i).\QeRFP\E.],useRegexpTitle=[true],awaitTimeout=[5000]]]
at com.workfusion.studio.rpa.recorder.playback.flow.StandardControlFlow.execute(StandardControlFlow.java:54)
at com.workfusion.studio.rpa.recorder.playback.action.template.TemplateAction.execute(TemplateAction.java:30)
at com.workfusion.studio.rpa.recorder.playback.action.template.TemplateAction.execute(TemplateAction.java:17)
at com.workfusion.studio.rpa.recorder.playback.player.ActionPlayer.next(ActionPlayer.java:53)
at com.workfusion.studio.rpa.recorder.player.PlaybackLogic.playNextAction(PlaybackLogic.java:153)
at com.workfusion.studio.rpa.recorder.player.PlaybackLogic.run(PlaybackLogic.java:113)
at java.lang.Thread.run(Thread.java:745)
Caused by: org.openqa.selenium.WebDriverException: java.lang.ClassNotFoundException: com.jacob.com.ComFailException cannot be found by com.workfusion.studio.dependencies.rpa-api_9.0.0.3
Build info: version: ‘9.0.0.3’, revision: ‘1610cb545e’, time: ‘2018-05-24T16:45:36.185Z’
System info: host: ‘P10TBAUTOMATE01’, ip: ‘10.10.1.110’, os.name: ‘Windows NT (unknown)’, os.arch: ‘amd64’, os.version: ‘10.0’, java.version: ‘1.8.0_121’
Driver info: driver.version: RemoteWebDriver
at org.openqa.selenium.remote.internal.CustomWrapper.isCustomWrapperElement(CustomWrapper.java:44)
at org.openqa.selenium.remote.JsonToBeanConverter.convert(JsonToBeanConverter.java:218)
at org.openqa.selenium.remote.JsonToBeanConverter.convert(JsonToBeanConverter.java:48)
at org.openqa.selenium.remote.JsonToBeanConverter.convert(JsonToBeanConverter.java:149)
at org.openqa.selenium.remote.JsonToBeanConverter.convert(JsonToBeanConverter.java:48)
at org.openqa.selenium.remote.http.AbstractHttpResponseCodec.decode(AbstractHttpResponseCodec.java:82)
at org.openqa.selenium.remote.http.AbstractHttpResponseCodec.decode(AbstractHttpResponseCodec.java:45)
at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:164)
at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:656)
at org.openqa.selenium.remote.RemoteWebDriver$RemoteTargetLocator.window(RemoteWebDriver.java:1026)
at com.workfusion.rpa.helpers.RPA.switchToExistingWindow(RPA.java:204)
at sun.reflect.GeneratedMethodAccessor58.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:93)
at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325)
at org.codehaus.groovy.runtime.callsite.StaticMetaMethodSite$StaticMetaMethodSiteNoUnwrap.invoke(StaticMetaMethodSite.java:133)
at org.codehaus.groovy.runtime.callsite.StaticMetaMethodSite.callStatic(StaticMetaMethodSite.java:102)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallStatic(CallSiteArray.java:56)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callStatic(AbstractCallSite.java:194)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callStatic(AbstractCallSite.java:214)
at Script73.run(Script73.groovy:7)
at com.workfusion.studio.rpa.recorder.playback.shell.GroovyShellWrapper.executeScript(GroovyShellWrapper.java:90)
at com.workfusion.studio.rpa.recorder.playback.player.PlaybackContext.executeScript(PlaybackContext.java:65)
at com.workfusion.studio.rpa.recorder.playback.action.template.TemplateAction.executeBehavior(TemplateAction.java:35)
at com.workfusion.studio.rpa.recorder.playback.flow.StandardControlFlow.execute(StandardControlFlow.java:46)
at com.workfusion.studio.rpa.recorder.playback.action.template.TemplateAction.execute(TemplateAction.java:30)
at com.workfusion.studio.rpa.recorder.playback.action.template.TemplateAction.execute(TemplateAction.java:17)
at com.workfusion.studio.rpa.recorder.playback.player.ActionPlayer.next(ActionPlayer.java:53)
at com.workfusion.studio.rpa.recorder.player.PlaybackLogic.playNextAction(PlaybackLogic.java:153)
at com.workfusion.studio.rpa.recorder.player.PlaybackLogic.run(PlaybackLogic.java:113)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.ClassNotFoundException: com.jacob.com.ComFailException cannot be found by com.workfusion.studio.dependencies.rpa-api_9.0.0.3
at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:461)
at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:372)
at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:364)
at org.eclipse.osgi.internal.loader.ModuleClassLoader.loadClass(ModuleClassLoader.java:161)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:264)
at org.openqa.selenium.remote.internal.CustomWrapper.isCustomWrapperElement(CustomWrapper.java:42)
at org.openqa.selenium.remote.JsonToBeanConverter.convert(JsonToBeanConverter.java:218)
at org.openqa.selenium.remote.JsonToBeanConverter.convert(JsonToBeanConverter.java:48)
at org.openqa.selenium.remote.JsonToBeanConverter.convert(JsonToBeanConverter.java:149)
at org.openqa.selenium.remote.JsonToBeanConverter.convert(JsonToBeanConverter.java:48)
at org.openqa.selenium.remote.http.AbstractHttpResponseCodec.decode(AbstractHttpResponseCodec.java:82)
at org.openqa.selenium.remote.http.AbstractHttpResponseCodec.decode(AbstractHttpResponseCodec.java:45)
at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:164)
at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:656)
at org.openqa.selenium.remote.RemoteWebDriver$RemoteTargetLocator.window(RemoteWebDriver.java:1026)
at com.workfusion.rpa.helpers.RPA.switchToExistingWindow(RPA.java:204)
at sun.reflect.GeneratedMethodAccessor58.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:93)
at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325)
at org.codehaus.groovy.runtime.callsite.StaticMetaMethodSite$StaticMetaMethodSiteNoUnwrap.invoke(StaticMetaMethodSite.java:133)
at org.codehaus.groovy.runtime.callsite.StaticMetaMethodSite.callStatic(StaticMetaMethodSite.java:102)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallStatic(CallSiteArray.java:56)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callStatic(AbstractCallSite.java:194)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callStatic(AbstractCallSite.java:214)
at Script73.run(Script73.groovy:7)
at com.workfusion.studio.rpa.recorder.playback.shell.GroovyShellWrapper.executeScript(GroovyShellWrapper.java:90)
at com.workfusion.studio.rpa.recorder.playback.player.PlaybackContext.executeScript(PlaybackContext.java:65)
at com.workfusion.studio.rpa.recorder.playback.action.template.TemplateAction.executeBehavior(TemplateAction.java:35)
at com.workfusion.studio.rpa.recorder.playback.flow.StandardControlFlow.execute(StandardControlFlow.java:46)
at com.workfusion.studio.rpa.recorder.playback.action.template.TemplateAction.execute(TemplateAction.java:30)
at com.workfusion.studio.rpa.recorder.playback.action.template.TemplateAction.execute(TemplateAction.java:17)
at com.workfusion.studio.rpa.recorder.playback.player.ActionPlayer.next(ActionPlayer.java:53)
at com.workfusion.studio.rpa.recorder.player.PlaybackLogic.playNextAction(PlaybackLogic.java:153)
at com.workfusion.studio.rpa.recorder.player.PlaybackLogic.run(PlaybackLogic.java:113)
at java.lang.Thread.run(Thread.java:745)

Hi @sbeauchem, please share your recording and RPA logs from C:\RPAExpress\RPA\logs.

i’ll try to recreate this as well. what’s interesting that when i reduced the Wait action time in the While loop from a 60 seconds to 10 seconds, the problem went away. so now i’m just polling the page more frequently.

1 Like

@ashapkina even i got the same error but not in this case , but i need to wait for more that 60 secs. In workfusion do we have a max limit of only 60secs wait?

Thanks,
Abhaya

Hi @abhaya_jeyar

There is no 60-second limit for wait.

Could you please run the recording again to reproduce this error and send us the logs from C:\RPAExpress\RPA\logs? They will contain details about what causes it.

Thank you.

Hi ,
I was not able to send the log files, sorry.
But i found since it was idle for more time it showed error, i gave 35000msec wait and did an action like enter keystroke and gave wait for 35000msec more and it worked.