selenium: [πŸ› Bug]: Remote login with basic authentication blocks jobs in the Grid

What happened?

The test opens a Chrome browser and needs to log in with basic authentication. At that specific moment the error comes in. I cannot determine if this is a chromedriver issue.

How can we reproduce the issue?

// Login code for basic authentication

                Platform remotePlatform = Platform.getCurrent();
                switch (getProperty("platform"))
                {
                case "WINDOWS":
                    remotePlatform = Platform.WINDOWS;
                    break;
                default:
                    remotePlatform = Platform.WINDOWS;
                }

                String seleniumGridHub = getProperty("seleniumGridHub");

                AtomicReference<DevTools> devToolsAtomicReference = new AtomicReference<>();

                driver = RemoteWebDriver.builder().augmentUsing(new Augmenter().addDriverAugmentation("chrome", HasAuthentication.class, (caps, exec) -> (whenThisMatches, useTheseCredentials) ->
                {
                    devToolsAtomicReference.get().createSessionIfThereIsNotOne();
                    devToolsAtomicReference.get().getDomains().network().addAuthHandler(whenThisMatches, useTheseCredentials);
                })).oneOf(chromeOptions).address(seleniumGridHub).build();

                devToolsAtomicReference.set(((HasDevTools) driver).getDevTools());

        LOG.info("Login in as Administrator");
        String userName = getProperty("username");
        String password = getProperty("password");

        // Register the driver with the given credentials.
        ((HasAuthentication) s_driver).register(UsernameAndPassword.of(userName, password));

        // Load the application url
        String currentURL = s_driver.getCurrentUrl();
        s_driver.get(currentURL);  // <<<< ---- The error happens at this line

Relevant log output

Oct 18, 2023 7:55:49 AM org.openqa.selenium.remote.http.WebSocket$Listener onError
WARNING: Unexpected frame CONTINUATION (fin=true)
java.net.ProtocolException
	at java.net.http/jdk.internal.net.http.websocket.WebSocketImpl$ReceiveTask.processError(WebSocketImpl.java:487)
	at java.net.http/jdk.internal.net.http.websocket.WebSocketImpl$ReceiveTask.run(WebSocketImpl.java:454)
	at java.net.http/jdk.internal.net.http.common.SequentialScheduler$CompleteRestartableTask.run(SequentialScheduler.java:147)
	at java.net.http/jdk.internal.net.http.common.SequentialScheduler$SchedulableTask.run(SequentialScheduler.java:198)
	at java.net.http/jdk.internal.net.http.common.SequentialScheduler.runOrSchedule(SequentialScheduler.java:271)
	at java.net.http/jdk.internal.net.http.common.SequentialScheduler.runOrSchedule(SequentialScheduler.java:224)
	at java.net.http/jdk.internal.net.http.websocket.WebSocketImpl.trySetState(WebSocketImpl.java:837)
	at java.net.http/jdk.internal.net.http.websocket.WebSocketImpl.signalError(WebSocketImpl.java:714)
	at java.net.http/jdk.internal.net.http.websocket.WebSocketImpl$SignallingMessageConsumer.onError(WebSocketImpl.java:825)
	at java.net.http/jdk.internal.net.http.websocket.TransportImpl$ReceiveTask.run(TransportImpl.java:671)
	at java.net.http/jdk.internal.net.http.common.SequentialScheduler$CompleteRestartableTask.run(SequentialScheduler.java:147)
	at java.net.http/jdk.internal.net.http.common.SequentialScheduler$SchedulableTask.run(SequentialScheduler.java:198)
	at java.net.http/jdk.internal.net.http.common.SequentialScheduler.runOrSchedule(SequentialScheduler.java:271)
	at java.net.http/jdk.internal.net.http.common.SequentialScheduler.runOrSchedule(SequentialScheduler.java:224)
	at java.net.http/jdk.internal.net.http.websocket.TransportImpl$ReadEvent.handle(TransportImpl.java:762)
	at java.net.http/jdk.internal.net.http.RawChannelTube$ReadSubscriber.checkEvents(RawChannelTube.java:174)
	at java.net.http/jdk.internal.net.http.RawChannelTube$ReadSubscriber.onNext(RawChannelTube.java:204)
	at java.net.http/jdk.internal.net.http.RawChannelTube$ReadSubscriber.onNext(RawChannelTube.java:157)
	at java.net.http/jdk.internal.net.http.SocketTube$InternalReadPublisher$InternalReadSubscription.read(SocketTube.java:844)
	at java.net.http/jdk.internal.net.http.SocketTube$SocketFlowTask.run(SocketTube.java:175)
	at java.net.http/jdk.internal.net.http.common.SequentialScheduler$SchedulableTask.run(SequentialScheduler.java:198)
	at java.net.http/jdk.internal.net.http.common.SequentialScheduler.runOrSchedule(SequentialScheduler.java:271)
	at java.net.http/jdk.internal.net.http.common.SequentialScheduler.runOrSchedule(SequentialScheduler.java:224)
	at java.net.http/jdk.internal.net.http.SocketTube$InternalReadPublisher$InternalReadSubscription.signalReadable(SocketTube.java:763)
	at java.net.http/jdk.internal.net.http.SocketTube$InternalReadPublisher$ReadEvent.signalEvent(SocketTube.java:941)
	at java.net.http/jdk.internal.net.http.SocketTube$SocketFlowEvent.handle(SocketTube.java:245)
	at java.net.http/jdk.internal.net.http.HttpClientImpl$SelectorManager.handleEvent(HttpClientImpl.java:957)
	at java.net.http/jdk.internal.net.http.HttpClientImpl$SelectorManager.lambda$run$3(HttpClientImpl.java:912)
	at java.base/java.util.ArrayList.forEach(ArrayList.java:1541)
	at java.net.http/jdk.internal.net.http.HttpClientImpl$SelectorManager.run(HttpClientImpl.java:912)
Caused by: jdk.internal.net.http.websocket.FailWebSocketException: Unexpected frame CONTINUATION (fin=true)
	at java.net.http/jdk.internal.net.http.websocket.MessageDecoder.opcode(MessageDecoder.java:133)
	at java.net.http/jdk.internal.net.http.websocket.Frame$Reader.readFrame(Frame.java:391)
	at java.net.http/jdk.internal.net.http.websocket.TransportImpl$ReceiveTask.run(TransportImpl.java:665)
	... 20 more

Oct 18, 2023 7:55:59 AM org.openqa.selenium.devtools.Connection$Listener lambda$onText$0
WARNING: Unable to process: {"method":"Fetch.requestPaused","params":{"requestId":"interception-job-2.0","request":{"url":"http://nlbavwebui01.infor.com:24312/webui/gwtui/gwtui.nocache.js","method":"GET","headers":{"Accept":"*/*","Cookie":"JSESSIONID=B70DB6E511E48A25BF025A7D7DA5B91D","Referer":"http://nlbavwebui01.infor.com:24312/webui/servlet/admin","User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/118.0.0.0 Safari/537.36"},"initialPriority":"High","referrerPolicy":"strict-origin-when-cross-origin"},"frameId":"3022173EF8413AB9614DCF4830E2F348","resourceType":"Script"},"sessionId":"AA15CF1C62EDCA20B0F1A01BB6D9D5DC"}
org.openqa.selenium.TimeoutException: java.util.concurrent.TimeoutException
Build info: version: '4.14.1', revision: '03f8ede370'
System info: os.name: 'Windows 11', os.arch: 'amd64', os.version: '10.0', java.version: '11.0.20.1'
Driver info: driver.version: unknown
	at org.openqa.selenium.devtools.Connection.sendAndWait(Connection.java:183)
	at org.openqa.selenium.devtools.DevTools.send(DevTools.java:89)
	at org.openqa.selenium.devtools.idealized.Network.lambda$prepareToInterceptTraffic$5(Network.java:258)
	at org.openqa.selenium.devtools.Connection.lambda$handle$4(Connection.java:330)
	at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:183)
	at java.base/java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:177)
	at java.base/java.util.stream.ReferencePipeline$11$1.accept(ReferencePipeline.java:442)
	at java.base/java.util.HashMap$KeySpliterator.forEachRemaining(HashMap.java:1621)
	at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:484)
	at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474)
	at java.base/java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:150)
	at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:173)
	at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
	at java.base/java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:497)
	at org.openqa.selenium.devtools.Connection.handle(Connection.java:296)
	at org.openqa.selenium.devtools.Connection$Listener.lambda$onText$0(Connection.java:224)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
	at java.base/java.lang.Thread.run(Thread.java:829)
Caused by: java.util.concurrent.TimeoutException
	at java.base/java.util.concurrent.CompletableFuture.timedGet(CompletableFuture.java:1886)
	at java.base/java.util.concurrent.CompletableFuture.get(CompletableFuture.java:2021)
	at org.openqa.selenium.devtools.Connection.sendAndWait(Connection.java:172)
	... 18 more

Exception in thread "CDP Connection" org.openqa.selenium.devtools.DevToolsException: java.util.concurrent.TimeoutException
Build info: version: '4.14.1', revision: '03f8ede370'
System info: os.name: 'Windows 11', os.arch: 'amd64', os.version: '10.0', java.version: '11.0.20.1'
Driver info: driver.version: unknown
	at org.openqa.selenium.devtools.Connection$Listener.lambda$onText$0(Connection.java:227)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
	at java.base/java.lang.Thread.run(Thread.java:829)
Caused by: org.openqa.selenium.TimeoutException: java.util.concurrent.TimeoutException
Build info: version: '4.14.1', revision: '03f8ede370'
System info: os.name: 'Windows 11', os.arch: 'amd64', os.version: '10.0', java.version: '11.0.20.1'
Driver info: driver.version: unknown
	at org.openqa.selenium.devtools.Connection.sendAndWait(Connection.java:183)
	at org.openqa.selenium.devtools.DevTools.send(DevTools.java:89)
	at org.openqa.selenium.devtools.idealized.Network.lambda$prepareToInterceptTraffic$5(Network.java:258)
	at org.openqa.selenium.devtools.Connection.lambda$handle$4(Connection.java:330)
	at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:183)
	at java.base/java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:177)
	at java.base/java.util.stream.ReferencePipeline$11$1.accept(ReferencePipeline.java:442)
	at java.base/java.util.HashMap$KeySpliterator.forEachRemaining(HashMap.java:1621)
	at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:484)
	at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474)
	at java.base/java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:150)
	at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:173)
	at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
	at java.base/java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:497)
	at org.openqa.selenium.devtools.Connection.handle(Connection.java:296)
	at org.openqa.selenium.devtools.Connection$Listener.lambda$onText$0(Connection.java:224)
	... 3 more
Caused by: java.util.concurrent.TimeoutException
	at java.base/java.util.concurrent.CompletableFuture.timedGet(CompletableFuture.java:1886)
	at java.base/java.util.concurrent.CompletableFuture.get(CompletableFuture.java:2021)
	at org.openqa.selenium.devtools.Connection.sendAndWait(Connection.java:172)
	... 18 more

Operating System

Windows Server 2022 Standard

Selenium version

Selenium Java 4.14.1

What are the browser(s) and version(s) where you see this issue?

Chrome 118.0.5993.71 (Official Build) (64-bit)

What are the browser driver(s) and version(s) where you see this issue?

Comes with Selenium Grid

Are you using Selenium Grid?

Selenium Grid 4.14.1

About this issue

  • Original URL
  • State: closed
  • Created 8 months ago
  • Comments: 23 (17 by maintainers)

Commits related to this issue

Most upvoted comments

That’s great. Thank you! Will try the fix out to see if it solves the issue at hand.

@MarcJagtInfor thanks for reporting the issue, it has been fixed now.

I’m looking for the minimum reproducible example so that it is easy to pinpoint the problem. Remove code that isn’t needed in case it did something weird to cause the problem.

For Unexpected frame CONTINUATION (fin=true) I think that might help https://github.com/SeleniumHQ/selenium/issues/11408#issuecomment-1345401948

The timeout looks similar to what I already reported https://github.com/SeleniumHQ/selenium/issues/12689 Is there any chance that You are using dynamic grid with docker?

Thank you for the details. If the test passes on IDE and does not pass otherwise, it seems unlikely that it is a Selenium bug. Did you see this error with other versions of the browser?