clj-commons / etaoin

Pure Clojure Webdriver protocol implementation
https://cljdoc.org/d/etaoin
Eclipse Public License 1.0
909 stars 95 forks source link

Exception while starting driver in CI #678

Open dgr opened 3 days ago

dgr commented 3 days ago

Version [Please specify what version of Etaoin you are using. If you are referencing via :git/url, specify the :sha]

Platform CI environment, Windows, Chrome, Babashka

Symptom Exception during CI

Reproduction Not reproducible.

Actual behavior Exception thrown

[ TASK test:bb ]-----------------------------------------------------------------

[ Running tests ]----------------------------------------------------------------
suites: api
browsers: chrome
runner-args: ["--patterns" "etaoin.api.*-test$"]

Running tests in #{"test"}

Testing etaoin.api-test
Testing with browsers: [:chrome]

[ TASK test-server ]-------------------------------------------------------------
Serving assets at http://localhost:52529
Test server static dir: ./env/test/resources/static
Test server ready
----- Error --------------------------------------------------------------------
Type:     clojure.lang.ExceptionInfo
Message:  throw+: {:type :etaoin/http-ex, :driver {:args ("chromedriver" "--port=52531"), :capabilities {:goog:loggingPrefs {:browser "ALL"}, :goog:chromeOptions {:w3c true}}, :process {:proc #object[java.lang.ProcessImpl 0x650db365 "Process[pid=6948, exitValue=\"not exited\"]"], :exit nil, :in #object[java.io.BufferedOutputStream 0x37875479 "java.io.BufferedOutputStream@37875479"], :out #object[java.lang.ProcessBuilder$NullInputStream 0xbe120c2 "java.lang.ProcessBuilder$NullInputStream@be120c2"], :err #object[java.lang.ProcessBuilder$NullInputStream 0xbe120c2 "java.lang.ProcessBuilder$NullInputStream@be120c2"], :prev nil, :cmd ["C:\\SeleniumWebDrivers\\ChromeDriver\\chromedriver.exe" "--port=52531"]}, :locator "xpath", :type :chrome, :port 52531, :host "127.0.0.1", :url "http://127.0.0.1:52531/", :created-epoch-ms 1726502110058}, :webdriver-url nil, :host "127.0.0.1", :port 52531, :method :post, :path "session", :payload {:capabilities {:firstMatch [{:goog:loggingPrefs {:browser "ALL"}, :goog:chromeOptions {:w3c true}}]}}}
Data:     {:type :etaoin/http-ex, :driver {:args ("chromedriver" "--port=52531"), :capabilities {:goog:loggingPrefs {:browser "ALL"}, :goog:chromeOptions {:w3c true}}, :process {:proc #object[java.lang.ProcessImpl 0x650db365 "Process[pid=6948, exitValue=1]"], :exit nil, :in #object[java.io.BufferedOutputStream 0x37875479 "java.io.BufferedOutputStream@37875479"], :out #object[java.lang.ProcessBuilder$NullInputStream 0xbe120c2 "java.lang.ProcessBuilder$NullInputStream@be120c2"], :err #object[java.lang.ProcessBuilder$NullInputStream 0xbe120c2 "java.lang.ProcessBuilder$NullInputStream@be120c2"], :prev nil, :cmd ["C:\\SeleniumWebDrivers\\ChromeDriver\\chromedriver.exe" "--port=52531"]}, :locator "xpath", :type :chrome, :port 52531, :host "127.0.0.1", :url "http://127.0.0.1:52531/", :created-epoch-ms 1726502110058}, :webdriver-url nil, :host "127.0.0.1", :port 52531, :method :post, :path "session", :payload {:capabilities {:firstMatch [{:goog:loggingPrefs {:browser "ALL"}, :goog:chromeOptions {:w3c true}}]}}}
Location: /D:/a/etaoin/etaoin/src/etaoin/api.clj:3588:10

----- Context ------------------------------------------------------------------
3584:            (try
3585:              (quit driver)
3586:              ;; silently ignore failure to quit driver on cleanup
3587:              (catch Throwable _ex)))
3588:          (throw ex))))))
               ^--- throw+: {:type :etaoin/http-ex, :driver {:args ("chromedriver" "--port=52531"), :capabilities {:goog:loggingPrefs {:browser "ALL"}, :goog:chromeOptions {:w3c true}}, :process {:proc #object[java.lang.ProcessImpl 0x650db365 "Process[pid=6948, exitValue=\"not exited\"]"], :exit nil, :in #object[java.io.BufferedOutputStream 0x37875479 "java.io.BufferedOutputStream@37875479"], :out #object[java.lang.ProcessBuilder$NullInputStream 0xbe120c2 "java.lang.ProcessBuilder$NullInputStream@be120c2"], :err #object[java.lang.ProcessBuilder$NullInputStream 0xbe120c2 "java.lang.ProcessBuilder$NullInputStream@be120c2"], :prev nil, :cmd ["C:\\SeleniumWebDrivers\\ChromeDriver\\chromedriver.exe" "--port=52531"]}, :locator "xpath", :type :chrome, :port 52531, :host "127.0.0.1", :url "http://127.0.0.1:52531/", :created-epoch-ms 1726502110058}, :webdriver-url nil, :host "127.0.0.1", :port 52531, :method :post, :path "session", :payload {:capabilities {:firstMatch [{:goog:loggingPrefs {:browser "ALL"}, :goog:chromeOptions {:w3c true}}]}}}
3589: 
3590: (def ^{:arglists '([] [opts])} firefox
3591:   "Launch and return a Firefox driver.
3592: 
3593:   `opts` map is optionally, see [Driver Options](/doc/01-user-guide.adoc#driver-options)."

----- Stack trace --------------------------------------------------------------
etaoin.api/boot-driver                         - /D:/a/etaoin/etaoin/src/etaoin/api.clj:3588:10
etaoin.api/boot-driver                         - /D:/a/etaoin/etaoin/src/etaoin/api.clj:3556:1
etaoin.api-test/apply                          - /D:/a/etaoin/etaoin/test/etaoin/api_test.clj:123:7
etaoin.api-test/apply                          - /D:/a/etaoin/etaoin/test/etaoin/api_test.clj:108:5
etaoin.api-test                                - /D:/a/etaoin/etaoin/test/etaoin/api_test.clj:104:3
... (run with --debug to see elided elements)
test-shared/exec                               - /D:/a/etaoin/etaoin/build/test_shared.clj:20:31
test-shared                                    - /D:/a/etaoin/etaoin/build/test_shared.clj:20:4
exec-bf584ba7-3910-47cb-b0a8-a24453ce616c/exec - <expr>:24:1
exec-bf584ba7-3910-47cb-b0a8-a24453ce616c      - <expr>:4:1
user-7df3a42b-9bfb-49d3-9967-2f5027c5ee45      - <expr>:27:46

Expected behavior No exception.

Diagnosis None.

Action Monitor

dgr commented 3 days ago

Also seen on IDE test, Ubuntu Chrome, Babashka.

[ TASK test:bb ]-----------------------------------------------------------------

[ Launching virtual display ]----------------------------------------------------
Waiting for Xvfb process.
Xvfb process looks good.

[ Running tests ]----------------------------------------------------------------
suites: ide
browsers: chrome
runner-args: ["--nses" "etaoin.ide-test"]

Running tests in #{"test"}

Testing etaoin.ide-test
Testing with browsers: (:chrome)
----- Error --------------------------------------------------------------------
Type:     clojure.lang.ExceptionInfo
Message:  throw+: {:type :etaoin/http-ex, :driver {:args ("chromedriver" "--port=37633"), :capabilities {:goog:loggingPrefs {:browser "ALL"}, :goog:chromeOptions {:w3c true}}, :process {:proc #object[java.lang.ProcessImpl 0x75b15a91 "Process[pid=2540, exitValue=\"not exited\"]"], :exit nil, :in #object[java.lang.ProcessImpl$ProcessPipeOutputStream 0x1894acf2 "java.lang.ProcessImpl$ProcessPipeOutputStream@1894acf2"], :out #object[java.lang.ProcessBuilder$NullInputStream 0xe53ca03 "java.lang.ProcessBuilder$NullInputStream@e53ca03"], :err #object[java.lang.ProcessBuilder$NullInputStream 0xe53ca03 "java.lang.ProcessBuilder$NullInputStream@e53ca03"], :prev nil, :cmd ["chromedriver" "--port=37633"]}, :locator "xpath", :type :chrome, :port 37633, :host "127.0.0.1", :url "http://127.0.0.1:37633/", :created-epoch-ms 1725985241177, :session "bccad74ef2b1f15c4d2d2f58c2e340f4"}, :webdriver-url nil, :host "127.0.0.1", :port 37633, :method :delete, :path "session/bccad74ef2b1f15c4d2d2f58c2e340f4", :payload nil}
Data:     {:type :etaoin/http-ex, :driver {:args ("chromedriver" "--port=37633"), :capabilities {:goog:loggingPrefs {:browser "ALL"}, :goog:chromeOptions {:w3c true}}, :process {:proc #object[java.lang.ProcessImpl 0x75b15a91 "Process[pid=2540, exitValue=143]"], :exit nil, :in #object[java.lang.ProcessImpl$ProcessPipeOutputStream 0x1894acf2 "java.lang.ProcessImpl$ProcessPipeOutputStream@1894acf2"], :out #object[java.lang.ProcessBuilder$NullInputStream 0xe53ca03 "java.lang.ProcessBuilder$NullInputStream@e53ca03"], :err #object[java.lang.ProcessBuilder$NullInputStream 0xe53ca03 "java.lang.ProcessBuilder$NullInputStream@e53ca03"], :prev nil, :cmd ["chromedriver" "--port=37633"]}, :locator "xpath", :type :chrome, :port 37633, :host "127.0.0.1", :url "http://127.0.0.1:37633/", :created-epoch-ms 1725985241177, :session "bccad74ef2b1f15c4d2d2f58c2e340f4"}, :webdriver-url nil, :host "127.0.0.1", :port 37633, :method :delete, :path "session/bccad74ef2b1f15c4d2d2f58c2e340f4", :payload nil}
Location: /home/runner/work/etaoin/etaoin/src/etaoin/api.clj:3532:12

----- Context ------------------------------------------------------------------
3528:   (try (delete-session driver)
3529:        (catch Exception e
3530:          (when (not (= 404 (:status (ex-data e))))
3531:            ;; the exception was caused by something other than "session not found"
3532:            (throw e))))
                 ^--- throw+: {:type :etaoin/http-ex, :driver {:args ("chromedriver" "--port=37633"), :capabilities {:goog:loggingPrefs {:browser "ALL"}, :goog:chromeOptions {:w3c true}}, :process {:proc #object[java.lang.ProcessImpl 0x75b15a91 "Process[pid=2540, exitValue=\"not exited\"]"], :exit nil, :in #object[java.lang.ProcessImpl$ProcessPipeOutputStream 0x1894acf2 "java.lang.ProcessImpl$ProcessPipeOutputStream@1894acf2"], :out #object[java.lang.ProcessBuilder$NullInputStream 0xe53ca03 "java.lang.ProcessBuilder$NullInputStream@e53ca03"], :err #object[java.lang.ProcessBuilder$NullInputStream 0xe53ca03 "java.lang.ProcessBuilder$NullInputStream@e53ca03"], :prev nil, :cmd ["chromedriver" "--port=37633"]}, :locator "xpath", :type :chrome, :port 37633, :host "127.0.0.1", :url "http://127.0.0.1:37633/", :created-epoch-ms 1725985241177, :session "bccad74ef2b1f15c4d2d2f58c2e340f4"}, :webdriver-url nil, :host "127.0.0.1", :port 37633, :method :delete, :path "session/bccad74ef2b1f15c4d2d2f58c2e340f4", :payload nil}
3533: 
3534:   (dissoc driver :session))
3535: 
3536: (defn quit
3537:   "Have `driver` close the current session, then, if Etaoin launched it, kill the WebDriver process."

----- Stack trace --------------------------------------------------------------
etaoin.api/disconnect-driver                   - /home/runner/work/etaoin/etaoin/src/etaoin/api.clj:3532:12
etaoin.api/disconnect-driver                   - /home/runner/work/etaoin/etaoin/src/etaoin/api.clj:3522:1
etaoin.api/quit                                - /home/runner/work/etaoin/etaoin/src/etaoin/api.clj:3541:7
etaoin.api/quit                                - /home/runner/work/etaoin/etaoin/src/etaoin/api.clj:3536:1
etaoin.ide-test                                - /home/runner/work/etaoin/etaoin/test/etaoin/ide_test.clj:48:3
... (run with --debug to see elided elements)
test-shared/exec                               - /home/runner/work/etaoin/etaoin/build/test_shared.clj:20:31
test-shared                                    - /home/runner/work/etaoin/etaoin/build/test_shared.clj:20:4
exec-cbffa0ad-0693-47c1-8e77-e59d3f46b5ee/exec - <expr>:24:1
exec-cbffa0ad-0693-47c1-8e77-e59d3f46b5ee      - <expr>:4:1
user-861f331c-8c20-4424-9c40-f3f524a55393      - <expr>:27:46
dgr commented 3 days ago

Also one in API test, Ubuntu Firefox, also Babashka.

bb test:bb --suites api --browsers firefox --launch-virtual-display
  shell: /usr/bin/bash -e {0}
  env:
    JAVA_HOME: /opt/hostedtoolcache/Java_Temurin-Hotspot_jdk/21.0.4-7/x64
    JAVA_HOME_21_X64: /opt/hostedtoolcache/Java_Temurin-Hotspot_jdk/21.0.4-7/x64

[ TASK test:bb ]-----------------------------------------------------------------

[ Launching virtual display ]----------------------------------------------------
Waiting for Xvfb process.
Xvfb process looks good.

[ Running tests ]----------------------------------------------------------------
suites: api
browsers: firefox
runner-args: ["--patterns" "etaoin.api.*-test$"]

Running tests in #{"test"}

Testing etaoin.api-test
Testing with browsers: [:firefox]
- waiting for test-server to be ready at http://localhost:44627/test.html

[ TASK test-server ]-------------------------------------------------------------
Serving assets at http://localhost:44627
Test server static dir: ./env/test/resources/static
Test server ready
----- Error --------------------------------------------------------------------
Type:     clojure.lang.ExceptionInfo
Message:  throw+: {:type :etaoin/http-ex, :driver {:type :firefox, :host "127.0.0.1", :port 39493, :url "http://127.0.0.1:39493/", :locator "xpath", :args ("geckodriver" "--port" 39493), :process {:proc #object[java.lang.ProcessImpl 0x4d1a55be "Process[pid=2538, exitValue=\"not exited\"]"], :exit nil, :in #object[java.lang.ProcessImpl$ProcessPipeOutputStream 0x68639dfe "java.lang.ProcessImpl$ProcessPipeOutputStream@68639dfe"], :out #object[java.lang.ProcessBuilder$NullInputStream 0xe53ca03 "java.lang.ProcessBuilder$NullInputStream@e53ca03"], :err #object[java.lang.ProcessBuilder$NullInputStream 0xe53ca03 "java.lang.ProcessBuilder$NullInputStream@e53ca03"], :prev nil, :cmd ["geckodriver" "--port" "39493"]}, :created-epoch-ms 1725985228340}, :webdriver-url nil, :host "127.0.0.1", :port 39493, :method :post, :path "session", :payload {:capabilities {}}}
Data:     {:type :etaoin/http-ex, :driver {:type :firefox, :host "127.0.0.1", :port 39493, :url "http://127.0.0.1:39493/", :locator "xpath", :args ("geckodriver" "--port" 39493), :process {:proc #object[java.lang.ProcessImpl 0x4d1a55be "Process[pid=2538, exitValue=143]"], :exit nil, :in #object[java.lang.ProcessImpl$ProcessPipeOutputStream 0x68639dfe "java.lang.ProcessImpl$ProcessPipeOutputStream@68639dfe"], :out #object[java.lang.ProcessBuilder$NullInputStream 0xe53ca03 "java.lang.ProcessBuilder$NullInputStream@e53ca03"], :err #object[java.lang.ProcessBuilder$NullInputStream 0xe53ca03 "java.lang.ProcessBuilder$NullInputStream@e53ca03"], :prev nil, :cmd ["geckodriver" "--port" "39493"]}, :created-epoch-ms 1725985228340}, :webdriver-url nil, :host "127.0.0.1", :port 39493, :method :post, :path "session", :payload {:capabilities {}}}
Location: /home/runner/work/etaoin/etaoin/src/etaoin/api.clj:3578:10

----- Context ------------------------------------------------------------------
3574:            (try
3575:              (quit driver)
3576:              ;; silently ignore failure to quit driver on cleanup
3577:              (catch Throwable _ex)))
3578:          (throw ex))))))
               ^--- throw+: {:type :etaoin/http-ex, :driver {:type :firefox, :host "127.0.0.1", :port 39493, :url "http://127.0.0.1:39493/", :locator "xpath", :args ("geckodriver" "--port" 39493), :process {:proc #object[java.lang.ProcessImpl 0x4d1a55be "Process[pid=2538, exitValue=\"not exited\"]"], :exit nil, :in #object[java.lang.ProcessImpl$ProcessPipeOutputStream 0x68639dfe "java.lang.ProcessImpl$ProcessPipeOutputStream@68639dfe"], :out #object[java.lang.ProcessBuilder$NullInputStream 0xe53ca03 "java.lang.ProcessBuilder$NullInputStream@e53ca03"], :err #object[java.lang.ProcessBuilder$NullInputStream 0xe53ca03 "java.lang.ProcessBuilder$NullInputStream@e53ca03"], :prev nil, :cmd ["geckodriver" "--port" "39493"]}, :created-epoch-ms 1725985228340}, :webdriver-url nil, :host "127.0.0.1", :port 39493, :method :post, :path "session", :payload {:capabilities {}}}
3579: 
3580: (def ^{:arglists '([] [opts])} firefox
3581:   "Launch and return a Firefox driver.
3582: 
3583:   `opts` map is optionally, see [Driver Options](/doc/01-user-guide.adoc#driver-options)."

----- Stack trace --------------------------------------------------------------
etaoin.api/boot-driver                         - /home/runner/work/etaoin/etaoin/src/etaoin/api.clj:3578:10
etaoin.api/boot-driver                         - /home/runner/work/etaoin/etaoin/src/etaoin/api.clj:3546:1
etaoin.api-test/apply                          - /home/runner/work/etaoin/etaoin/test/etaoin/api_test.clj:122:7
etaoin.api-test/apply                          - /home/runner/work/etaoin/etaoin/test/etaoin/api_test.clj:107:5
etaoin.api-test                                - /home/runner/work/etaoin/etaoin/test/etaoin/api_test.clj:103:3
... (run with --debug to see elided elements)
test-shared/exec                               - /home/runner/work/etaoin/etaoin/build/test_shared.clj:20:31
test-shared                                    - /home/runner/work/etaoin/etaoin/build/test_shared.clj:20:4
exec-cd02c202-0b24-41e4-a14f-ba8b83ba3399/exec - <expr>:24:1
exec-cd02c202-0b24-41e4-a14f-ba8b83ba3399      - <expr>:4:1
user-c5eddc8c-1ea2-4df9-8860-b3275741fbd0      - <expr>:27:46
dgr commented 3 days ago

This happened on MacOS Edge, Babashka. Seems like it could not correctly start the driver in the API test fixture.

=== test-switch-window-next [bb][edge]
----- Error --------------------------------------------------------------------
Type:     clojure.lang.ExceptionInfo
Message:  throw+: {:type :etaoin/http-ex, :driver {:args ("msedgedriver" "--port=49763"), :capabilities {:goog:loggingPrefs {:browser "ALL"}, :ms:edgeOptions {:args ("--headless"), :w3c true}}, :process {:proc #object[java.lang.ProcessImpl 0x3544dee5 "Process[pid=7783, exitValue=\"not exited\"]"], :exit nil, :in #object[java.lang.ProcessImpl$ProcessPipeOutputStream 0x1d575f30 "java.lang.ProcessImpl$ProcessPipeOutputStream@1d575f30"], :out #object[java.lang.ProcessBuilder$NullInputStream 0x31d403c2 "java.lang.ProcessBuilder$NullInputStream@31d403c2"], :err #object[java.lang.ProcessBuilder$NullInputStream 0x31d403c2 "java.lang.ProcessBuilder$NullInputStream@31d403c2"], :prev nil, :cmd ["msedgedriver" "--port=49763"]}, :locator "xpath", :type :edge, :port 49763, :host "127.0.0.1", :url "http://127.0.0.1:49763/", :created-epoch-ms 1724363261072}, :webdriver-url nil, :host "127.0.0.1", :port 49763, :method :post, :path "session", :payload {:capabilities {:firstMatch [{:goog:loggingPrefs {:browser "ALL"}, :ms:edgeOptions {:args ("--headless"), :w3c true}}]}}}
Data:     {:type :etaoin/http-ex, :driver {:args ("msedgedriver" "--port=49763"), :capabilities {:goog:loggingPrefs {:browser "ALL"}, :ms:edgeOptions {:args ("--headless"), :w3c true}}, :process {:proc #object[java.lang.ProcessImpl 0x3544dee5 "Process[pid=7783, exitValue=143]"], :exit nil, :in #object[java.lang.ProcessImpl$ProcessPipeOutputStream 0x1d575f30 "java.lang.ProcessImpl$ProcessPipeOutputStream@1d575f30"], :out #object[java.lang.ProcessBuilder$NullInputStream 0x31d403c2 "java.lang.ProcessBuilder$NullInputStream@31d403c2"], :err #object[java.lang.ProcessBuilder$NullInputStream 0x31d403c2 "java.lang.ProcessBuilder$NullInputStream@31d403c2"], :prev nil, :cmd ["msedgedriver" "--port=49763"]}, :locator "xpath", :type :edge, :port 49763, :host "127.0.0.1", :url "http://127.0.0.1:49763/", :created-epoch-ms 1724363261072}, :webdriver-url nil, :host "127.0.0.1", :port 49763, :method :post, :path "session", :payload {:capabilities {:firstMatch [{:goog:loggingPrefs {:browser "ALL"}, :ms:edgeOptions {:args ("--headless"), :w3c true}}]}}}
Location: /Users/runner/work/etaoin/etaoin/src/etaoin/api.clj:3550:10

----- Context ------------------------------------------------------------------
3546:            (try
3547:              (quit driver)
3548:              ;; silently ignore failure to quit driver on cleanup
3549:              (catch Throwable _ex)))
3550:          (throw ex))))))
               ^--- throw+: {:type :etaoin/http-ex, :driver {:args ("msedgedriver" "--port=49763"), :capabilities {:goog:loggingPrefs {:browser "ALL"}, :ms:edgeOptions {:args ("--headless"), :w3c true}}, :process {:proc #object[java.lang.ProcessImpl 0x3544dee5 "Process[pid=7783, exitValue=\"not exited\"]"], :exit nil, :in #object[java.lang.ProcessImpl$ProcessPipeOutputStream 0x1d575f30 "java.lang.ProcessImpl$ProcessPipeOutputStream@1d575f30"], :out #object[java.lang.ProcessBuilder$NullInputStream 0x31d403c2 "java.lang.ProcessBuilder$NullInputStream@31d403c2"], :err #object[java.lang.ProcessBuilder$NullInputStream 0x31d403c2 "java.lang.ProcessBuilder$NullInputStream@31d403c2"], :prev nil, :cmd ["msedgedriver" "--port=49763"]}, :locator "xpath", :type :edge, :port 49763, :host "127.0.0.1", :url "http://127.0.0.1:49763/", :created-epoch-ms 1724363261072}, :webdriver-url nil, :host "127.0.0.1", :port 49763, :method :post, :path "session", :payload {:capabilities {:firstMatch [{:goog:loggingPrefs {:browser "ALL"}, :ms:edgeOptions {:args ("--headless"), :w3c true}}]}}}
3551: 
3552: (def ^{:arglists '([] [opts])} firefox
3553:   "Launch and return a Firefox driver.
3554: 
3555:   `opts` map is optionally, see [Driver Options](/doc/01-user-guide.adoc#driver-options)."

----- Stack trace --------------------------------------------------------------
etaoin.api/boot-driver                         - /Users/runner/work/etaoin/etaoin/src/etaoin/api.clj:3550:10
etaoin.api/boot-driver                         - /Users/runner/work/etaoin/etaoin/src/etaoin/api.clj:3518:1
etaoin.api-test/apply                          - /Users/runner/work/etaoin/etaoin/test/etaoin/api_test.clj:122:7
etaoin.api-test/apply                          - /Users/runner/work/etaoin/etaoin/test/etaoin/api_test.clj:107:5
etaoin.api-test                                - /Users/runner/work/etaoin/etaoin/test/etaoin/api_test.clj:103:3
... (run with --debug to see elided elements)
test-shared/exec                               - /Users/runner/work/etaoin/etaoin/build/test_shared.clj:20:31
test-shared                                    - /Users/runner/work/etaoin/etaoin/build/test_shared.clj:20:4
exec-5d39c4dc-468d-473a-8d54-c4602be1de35/exec - <expr>:24:1
exec-5d39c4dc-468d-473a-8d54-c4602be1de35      - <expr>:4:1
user-851c1409-c5c6-4c07-a7d8-178ceb50e7a6      - <expr>:27:46
dgr commented 3 days ago

This seems to be related to Babashka. It happens with Windows, Ubuntu, and MacOS and with Chrome, Firefox, and Edge.