cypress icon indicating copy to clipboard operation
cypress copied to clipboard

XDG_RUNTIME_DIR error in Debian 12.x headless

Open MikeMcC399 opened this issue 1 year ago • 49 comments

Current behavior

Running Cypress default scaffolded tests on Debian 12.x in a headless environment (server with no GPU) may result in the error:

error: XDG_RUNTIME_DIR is invalid or not set in the environment

It may occur with Electron, Chrome, Edge for Firefox browsers and may be associated with a test failure or not. For example

  Running:  2-advanced-examples/files.cy.js                                                (8 of 20)
error: XDG_RUNTIME_DIR is invalid or not set in the environment.
error: XDG_RUNTIME_DIR is invalid or not set in the environment.

Timed out waiting for the browser to connect. Retrying...
Missing browserCriClient in connectToNewSpec
Error: Missing browserCriClient in connectToNewSpec
    at Object.connectToNewSpec (<embedded>:4413:48840)
    at Object.connectToNewSpec (<embedded>:4413:27125)
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
    at async v.relaunchBrowser (<embedded>:4498:37708)

Desired behavior

Cypress should run the default scaffolded tests reliably under Debian 12.5 and later on a server with no GPU.

The issue is not reproducible on Debian 12.5 where a GPU (graphics processing unit) is installed.

Test code to reproduce

This is a sporadic error, not a hard error. Check tests on https://app.circleci.com/pipelines/github/cypress-io/cypress-docker-images?branch=master for examples

Last example https://app.circleci.com/pipelines/github/cypress-io/cypress-docker-images/2248/workflows/3e0039cf-477d-45e9-b8b8-6c0e0ff35ca5/jobs/68749 Sep 10, 2024.

Cypress Version

First reported on 13.10.0 Also reproducible on 13.16.0

Node version

~~v20.13.1~~ v20.17.0

Operating System

Debian ~~12.5~~ 12.7 & 12.8

Debug Logs

See https://app.circleci.com/pipelines/github/cypress-io/cypress-docker-images

  • https://app.circleci.com/pipelines/github/cypress-io/cypress-docker-images/1855/workflows/9b625a91-82dd-4988-adca-82ecb66d5a5b/jobs/56406
  • https://app.circleci.com/pipelines/github/cypress-io/cypress-docker-images/1848/workflows/937828f7-f458-448a-8ad1-711df1edaa0f/jobs/56167
  • https://app.circleci.com/pipelines/github/cypress-io/cypress-docker-images/1856/workflows/446e2a08-6f0c-4460-b6e1-9d3ac1a737e9/jobs/56433

Other

MikeMcC399 avatar May 22 '24 07:05 MikeMcC399

any update on this error? thanks!

estefafdez avatar May 29 '24 14:05 estefafdez

@estefafdez

any update on this error? thanks!

Are you also seeing this error or are you just interested in the outcome?

MikeMcC399 avatar May 29 '24 14:05 MikeMcC399

@estefafdez

any update on this error? thanks!

Are you also seeing this error or are you just interested in the outcome?

I'm seeing the error on the logs at the moment with the latest version of cypress (13.10.0)

estefafdez avatar May 29 '24 16:05 estefafdez

@estefafdez

I'm seeing the error on the logs at the moment with the latest version of cypress (13.10.0)

Are you also running under Debian 12.5 or is it a different environment? Could you also explain whether this is in a local system or a CI system and if it's CI please give some details about the provider and the exact runner type. Also if you are running in Docker or not. All details will be helpful.

MikeMcC399 avatar May 29 '24 16:05 MikeMcC399

The error XDG_RUNTIME_DIR may be another garbage error resulting from Electron.

The fact that it is sometimes occurs with a test failure may or may not be coincidence.

MikeMcC399 avatar May 30 '24 13:05 MikeMcC399

Hi, we are also experiencing the same on issue on version 13.10.0 of cypress when a test is failing.

We run our test in a docker container that uses cypress/factory.

Tried with version 13.8.1 and the issue is also present

maximegheraille avatar Jun 05 '24 18:06 maximegheraille

@maximegheraille

Which version of cypress/factory are you basing your Docker container on?

What output does the following command yield?

docker run --entrypoint cat <your Docker image> /etc/debian_version

MikeMcC399 avatar Jun 05 '24 18:06 MikeMcC399

Hi @MikeMcC399

We use the latest version cypress/factory:latest and the debian version is 12.5

maximegheraille avatar Jun 05 '24 19:06 maximegheraille

@maximegheraille

If the failures are repeatable, then you may like to try with DEBUG=cypress:* to see if there are any other relatable errors.

In the test runs of the Docker repo https://github.com/cypress-io/cypress-docker-images I am seeing the error happening quite often, but without test failure:

error: XDG_RUNTIME_DIR

MikeMcC399 avatar Jun 07 '24 12:06 MikeMcC399

Hi @MikeMcC399

I did investigate a few non failing runs, and it is also showing it. This means that it is not related to failing test.

I will try with the debug option and see if I can find anything useful

maximegheraille avatar Jun 07 '24 19:06 maximegheraille

Also experiencing this issue (but with the cypress/browsers:latest docker image).

@MikeMcC399 Here are the logs surrounding the XDG_RUNTIME_DIR error. After the error, it only repeats the memory/cpu usage periodically, basically 'hanging' and not running any tests.

Difference with me: It's reproducible 100% of the time.


  │ Cypress:        13.11.0                                                                        │
  │ Browser:        Chrome 124 (headless)                                                          │
  │ Node Version:   v22.0.0 (/usr/local/bin/node)                                                  │
  cypress:https-proxy received error on client browserSocket { err: Error: write EPIPE     at afterWriteDispatched (node:internal/stream_base_commons:160:15)     at writeGeneric (node:internal/stream_base_commons:151:3)     at Socket._writeGeneric (node:net:931:11)     at Socket._write (node:net:943:8)     at writeOrBuffer (node:internal/streams/writable:392:12)     at _write (node:internal/streams/writable:333:10)     at Socket.write (node:internal/streams/writable:337:10)     at Socket.ondata (node:internal/streams/readable:766:22)     at Socket.emit (node:events:514:28)     at addChunk (node:internal/streams/readable:324:12)     at readableAddChunk (node:internal/streams/readable:297:9)     at Socket.push (node:internal/streams/readable:234:10)     at TCP.onStreamRead (node:internal/stream_base_commons:190:23) { errno: -32, code: 'EPIPE', syscall: 'write' }, url: 'optimizationguide-pa.googleapis.com:443' } +2s
  cypress:server:util:socket_allowed allowed socket closed, removing { localPort: 50262 } +299ms
  cypress:server:request received an error on request after response started { browserPreRequest: undefined, timeout: undefined, retryIntervals: [], url: '[https://optimizationguide-pa.googleapis.com/downloads?name=1689043206&target=OPTIMIZATION_TARGET_VISUAL_SEARCH_CLASSIFICATION'](https://optimizationguide-pa.googleapis.com/downloads?name=1689043206&target=OPTIMIZATION_TARGET_VISUAL_SEARCH_CLASSIFICATION%27), time: false, requestId: 'request150', retryOnNetworkFailure: true, retryOnStatusCodeFailure: false, delaysRemaining: [], err: Error: aborted     at connResetException (node:internal/errors:720:14)     at TLSSocket.socketCloseListener (node:_http_client:461:19)     at TLSSocket.emit (node:events:526:35)     at node:net:323:12     at TCP.done (node:_tls_wrap:588:7) { code: 'ECONNRESET' } } +1ms
  cypress:proxy:http:util:prerequests Never received pre-request or url without pre-request for request GET-https://optimizationguide-pa.googleapis.com/downloads?name=1689043206&target=OPTIMIZATION_TARGET_VISUAL_SEARCH_CLASSIFICATION after waiting 2000ms. Continuing without one. +61ms
  cypress:network:cors Parsed URL { port: '443', protocol: 'https:', subdomain: 'secure8', domain: 'datev', tld: 'de' } +40ms
  cypress:server:util:resource-type-and-credential credentials request received for request url https://optimizationguide-pa.googleapis.com/downloads?name=1689043206&target=OPTIMIZATION_TARGET_VISUAL_SEARCH_CLASSIFICATION, hashKey 57d076d8888ceb613df46a85d1778a12 +61ms
  cypress:network:cors Parsed URL { port: '443', protocol: 'https:', subdomain: 'secure8', domain: 'datev', tld: 'de' } +1ms
  cypress:network:cors Parsed URL { port: '443', protocol: 'https:', subdomain: 'secure8', domain: 'datev', tld: 'de' } +0ms
  cypress:network:cors Parsed URL { port: '443', protocol: 'https:', subdomain: null, domain: 'optimizationguide-pa', tld: 'googleapis.com' } +0ms
  cypress:network:cors Parsed URL { port: '443', protocol: 'https:', subdomain: 'secure8', domain: 'datev', tld: 'de' } +0ms
  cypress:network:cors Parsed URL { port: '443', protocol: 'https:', subdomain: null, domain: 'optimizationguide-pa', tld: 'googleapis.com' } +0ms
  cypress:network:cors Parsed URL { port: '443', protocol: 'https:', subdomain: null, domain: 'optimizationguide-pa', tld: 'googleapis.com' } +0ms
  cypress:server:remote-states getting remote state: undefined for: https://optimizationguide-pa.googleapis.com/downloads?name=1689043206&target=OPTIMIZATION_TARGET_VISUAL_SEARCH_CLASSIFICATION +41ms
  cypress:network:cors Parsed URL { port: '80', protocol: 'http:', subdomain: null, domain: '', tld: 'localhost' } +0ms
  cypress:server:remote-states getting remote state: { auth: null, origin: 'http://localhost'/, strategy: 'http', fileServer: null, domainName: 'localhost', props: { port: '80', protocol: 'http:', subdomain: null, domain: '', tld: 'localhost' } } for: http://localhost/ +0ms
  cypress:server:stream_buffer stream buffer writeable final called +61ms
  cypress:network:agent addRequest called { isHttps: true, href: '[https://optimizationguide-pa.googleapis.com/downloads?name=1689043206&target=OPTIMIZATION_TARGET_VISUAL_SEARCH_CLASSIFICATION'](https://optimizationguide-pa.googleapis.com/downloads?name=1689043206&target=OPTIMIZATION_TARGET_VISUAL_SEARCH_CLASSIFICATION%27) } +61ms
  cypress:network:agent got family { family: 4, href: '[https://optimizationguide-pa.googleapis.com/downloads?name=1689043206&target=OPTIMIZATION_TARGET_VISUAL_SEARCH_CLASSIFICATION'](https://optimizationguide-pa.googleapis.com/downloads?name=1689043206&target=OPTIMIZATION_TARGET_VISUAL_SEARCH_CLASSIFICATION%27) } +0ms
  cypress:server:request received status code & headers on request { requestId: 'request151', statusCode: 200, headers: { 'content-type': 'text/html; charset=UTF-8' } } +39ms
  cypress:server:request successful response received { requestId: 'request151' } +1ms
  cypress:net-stubbing:server:intercept-response InterceptResponse { req: { url: '/downloads?name=1689043206&target=OPTIMIZATION_TARGET_VISUAL_SEARCH_CLASSIFICATION' }, request: undefined } +46ms
  cypress:network:cors Parsed URL { port: '80', protocol: 'http:', subdomain: null, domain: '', tld: 'localhost' } +3ms
  cypress:server:remote-states getting remote state: { auth: null, origin: 'http://localhost'/, strategy: 'http', fileServer: null, domainName: 'localhost', props: { port: '80', protocol: 'http:', subdomain: null, domain: '', tld: 'localhost' } } for: http://localhost/ +3ms
  cypress:network:cors Parsed URL { port: '443', protocol: 'https:', subdomain: null, domain: 'optimizationguide-pa', tld: 'googleapis.com' } +0ms
  cypress:network:cors Parsed URL { port: '443', protocol: 'https:', subdomain: null, domain: 'optimizationguide-pa', tld: 'googleapis.com' } +0ms
  cypress:server:remote-states getting primary remote state: { auth: null, origin: 'http://localhost'/, strategy: 'http', fileServer: null, domainName: 'localhost', props: { port: '80', protocol: 'http:', subdomain: null, domain: '', tld: 'localhost' } } +0ms
  cypress:network:cors Parsed URL { port: '443', protocol: 'https:', subdomain: null, domain: 'optimizationguide-pa', tld: 'googleapis.com' } +0ms
  cypress:network:cors Parsed URL { port: '443', protocol: 'https:', subdomain: null, domain: 'optimizationguide-pa', tld: 'googleapis.com' } +1ms
  cypress:network:cors Parsed URL { port: '80', protocol: 'http:', subdomain: null, domain: '', tld: 'localhost' } +0ms
  cypress:server:remote-states getting remote state: { auth: null, origin: 'http://localhost'/, strategy: 'http', fileServer: null, domainName: 'localhost', props: { port: '80', protocol: 'http:', subdomain: null, domain: '', tld: 'localhost' } } for: http://localhost/ +1ms
  cypress:https-proxy received error on client browserSocket { err: Error: read ECONNRESET     at TCP.onStreamRead (node:internal/stream_base_commons:217:20) { errno: -104, code: 'ECONNRESET', syscall: 'read' }, url: 'optimizationguide-pa.googleapis.com:443' } +43ms
  cypress:server:request received status code & headers on request { requestId: 'request152', statusCode: 200, headers: { 'content-type': 'text/html; charset=UTF-8' } } +54ms
  cypress:server:request successful response received { requestId: 'request152' } +0ms
  cypress:net-stubbing:server:intercept-response InterceptResponse { req: { url: '/downloads?name=1689043206&target=OPTIMIZATION_TARGET_VISUAL_SEARCH_CLASSIFICATION' }, request: undefined } +54ms
  cypress:network:cors Parsed URL { port: '80', protocol: 'http:', subdomain: null, domain: '', tld: 'localhost' } +54ms
  cypress:server:remote-states getting remote state: { auth: null, origin: 'http://localhost'/, strategy: 'http', fileServer: null, domainName: 'localhost', props: { port: '80', protocol: 'http:', subdomain: null, domain: '', tld: 'localhost' } } for: http://localhost/ +54ms
  cypress:network:cors Parsed URL { port: '443', protocol: 'https:', subdomain: null, domain: 'optimizationguide-pa', tld: 'googleapis.com' } +0ms
  cypress:network:cors Parsed URL { port: '443', protocol: 'https:', subdomain: null, domain: 'optimizationguide-pa', tld: 'googleapis.com' } +0ms
  cypress:server:remote-states getting primary remote state: { auth: null, origin: 'http://localhost'/, strategy: 'http', fileServer: null, domainName: 'localhost', props: { port: '80', protocol: 'http:', subdomain: null, domain: '', tld: 'localhost' } } +0ms
  cypress:network:cors Parsed URL { port: '443', protocol: 'https:', subdomain: null, domain: 'optimizationguide-pa', tld: 'googleapis.com' } +0ms
  cypress:network:cors Parsed URL { port: '443', protocol: 'https:', subdomain: null, domain: 'optimizationguide-pa', tld: 'googleapis.com' } +0ms
  cypress:network:cors Parsed URL { port: '80', protocol: 'http:', subdomain: null, domain: '', tld: 'localhost' } +0ms
  cypress:server:remote-states getting remote state: { auth: null, origin: 'http://localhost'/, strategy: 'http', fileServer: null, domainName: 'localhost', props: { port: '80', protocol: 'http:', subdomain: null, domain: '', tld: 'localhost' } } for: http://localhost/ +0ms
  cypress:https-proxy received error on client browserSocket { err: Error: write EPIPE     at afterWriteDispatched (node:internal/stream_base_commons:160:15)     at writeGeneric (node:internal/stream_base_commons:151:3)     at Socket._writeGeneric (node:net:931:11)     at Socket._write (node:net:943:8)     at writeOrBuffer (node:internal/streams/writable:392:12)     at _write (node:internal/streams/writable:333:10)     at Socket.write (node:internal/streams/writable:337:10)     at Socket.ondata (node:internal/streams/readable:766:22)     at Socket.emit (node:events:514:28)     at addChunk (node:internal/streams/readable:324:12)     at readableAddChunk (node:internal/streams/readable:297:9)     at Socket.push (node:internal/streams/readable:234:10)     at TCP.onStreamRead (node:internal/stream_base_commons:190:23) { errno: -32, code: 'EPIPE', syscall: 'write' }, url: 'optimizationguide-pa.googleapis.com:443' } +56ms
  cypress:server:util:socket_allowed allowed socket closed, removing { localPort: 50274 } +99ms
  cypress:server:request aborting { requestId: 'request152' } +5ms
  cypress:server:request aborting { requestId: 'request152' } +0ms
  cypress:server:request received an error on request after response started { browserPreRequest: undefined, timeout: undefined, retryIntervals: [], url: '[https://optimizationguide-pa.googleapis.com/downloads?name=1689043206&target=OPTIMIZATION_TARGET_VISUAL_SEARCH_CLASSIFICATION'](https://optimizationguide-pa.googleapis.com/downloads?name=1689043206&target=OPTIMIZATION_TARGET_VISUAL_SEARCH_CLASSIFICATION%27), time: false, requestId: 'request152', retryOnNetworkFailure: true, retryOnStatusCodeFailure: false, delaysRemaining: [], err: Error: aborted     at connResetException (node:internal/errors:720:14)     at TLSSocket.socketCloseListener (node:_http_client:461:19)     at TLSSocket.emit (node:events:526:35)     at node:net:323:12     at TCP.done (node:_tls_wrap:588:7) { code: 'ECONNRESET' } } +1ms
  cypress:server:util:process_profiler current & mean memory and CPU usage by process group:
  cypress:server:util:process_profiler ┌─────────┬───────────────────┬──────────────┬───────────────────────────────────────────────────────┬────────────┬────────────────┬──────────┬──────────────┬─────────────┐
  cypress:server:util:process_profiler │ (index) │       group       │ processCount │                         pids                          │ cpuPercent │ meanCpuPercent │ memRssMb │ meanMemRssMb │ maxMemRssMb │
  cypress:server:util:process_profiler ├─────────┼───────────────────┼──────────────┼───────────────────────────────────────────────────────┼────────────┼────────────────┼──────────┼──────────────┼─────────────┤
  cypress:server:util:process_profiler │    0    │     'Chrome'      │      9       │ '1215, 1219, 1220, 1229, 1248, 1230 ... 3 more items' │    2.6     │      11.8      │  882.63  │    890.72    │    898.8    │
  cypress:server:util:process_profiler │    1    │     'cypress'     │      1       │                         '906'                         │    2.58    │     10.16      │  474.3   │    450.31    │   508.84    │
  cypress:server:util:process_profiler │    2    │ 'electron-shared' │      4       │                '910, 1062, 911, 1068'                 │     0      │       0        │  245.65  │    294.84    │   591.35    │
  cypress:server:util:process_profiler │    3    │     'plugin'      │      1       │                        '1112'                         │    0.85    │      1.56      │  126.32  │    130.73    │   169.17    │
  cypress:server:util:process_profiler │    4    │      'other'      │      2       │                     '1503, 1504'                      │     50     │      62.5      │   5.2    │    41.91     │   152.41    │
  cypress:server:util:process_profiler │    5    │      'TOTAL'      │      17      │                          '-'                          │   56.03    │     79.73      │  1734.1  │   1350.59    │   1779.67   │
  cypress:server:util:process_profiler └─────────┴───────────────────┴──────────────┴───────────────────────────────────────────────────────┴────────────┴────────────────┴──────────┴──────────────┴─────────────┘ +10s
  cypress:server:util:socket_allowed allowed socket closed, removing { localPort: 50250 } +5s
  cypress:server:server-base Got CONNECT request from safebrowsingohttpgateway.googleapis.com:443 +12s
  cypress:https-proxy Writing browserSocket connection headers { url: 'safebrowsingohttpgateway.googleapis.com:443', headLength: 0, headers: { host: 'safebrowsingohttpgateway.googleapis.com:443', 'proxy-connection': 'keep-alive', 'user-agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/125.0.0.0 Safari/537.36' } } +10s
  cypress:https-proxy Got first head bytes { url: 'safebrowsingohttpgateway.googleapis.com:443', head: '\x16\x03\x01\x070\x01\x00\x07,\x03\x03IU[_\x07�f\x1E��Ѫ��Q��G싏��^��+��\x06\x1A9 Yb�$�\x06���Gd��Fd\\�\x15U�d�\f' } +0ms
  cypress:https-proxy Making intercepted connection to 41673 +54ms
  cypress:network:connect successfully connected { opts: { port: 41673, host: 'localhost', getDelayMsForRetry: [Function: h] }, iteration: 0 } +12s
  cypress:https-proxy received upstreamSocket callback for request { port: 41673, hostname: 'localhost', err: undefined } +2ms
  cypress:server:util:socket_allowed allowing socket { localPort: 33752 } +5s
  cypress:launcher:browsers chrome stderr: [1215:1233:0611/105732.491350:ERROR:cert_verify_proc_builtin.cc(1051)] CertVerifyProcBuiltin for safebrowsingohttpgateway.googleapis.com failed:
----- Certificate i=0 (OU=Cypress Proxy Server Certificate,O=Cypress Proxy CA,L=Internet,ST=Internet,C=Internet,CN=safebrowsingohttpgateway.googleapis.com) -----
ERROR: No matching issuer found +22s
  cypress:server:util:process_profiler current & mean memory and CPU usage by process group:
  cypress:server:util:process_profiler ┌─────────┬───────────────────┬──────────────┬───────────────────────────────────────────────────────┬────────────┬────────────────┬──────────┬──────────────┬─────────────┐
  cypress:server:util:process_profiler │ (index) │       group       │ processCount │                         pids                          │ cpuPercent │ meanCpuPercent │ memRssMb │ meanMemRssMb │ maxMemRssMb │
  cypress:server:util:process_profiler ├─────────┼───────────────────┼──────────────┼───────────────────────────────────────────────────────┼────────────┼────────────────┼──────────┼──────────────┼─────────────┤
  cypress:server:util:process_profiler │    0    │     'Chrome'      │      9       │ '1215, 1219, 1220, 1229, 1248, 1230 ... 3 more items' │    2.46    │      8.69      │  876.91  │    886.11    │    898.8    │
  cypress:server:util:process_profiler │    1    │     'cypress'     │      1       │                         '906'                         │    0.35    │      8.2       │  449.23  │    450.09    │   508.84    │
  cypress:server:util:process_profiler │    2    │ 'electron-shared' │      4       │                '910, 1062, 911, 1068'                 │     0      │       0        │  247.23  │    285.32    │   591.35    │
  cypress:server:util:process_profiler │    3    │     'plugin'      │      1       │                        '1112'                         │     0      │      1.17      │  126.32  │    129.63    │   169.17    │
  cypress:server:util:process_profiler │    4    │      'other'      │      2       │                     '1539, 1540'                      │     50     │       60       │   5.18   │    34.56     │   152.41    │
  cypress:server:util:process_profiler │    5    │      'TOTAL'      │      17      │                          '-'                          │    52.8    │     74.35      │ 1704.88  │   1421.45    │   1779.67   │
  cypress:server:util:process_profiler └─────────┴───────────────────┴──────────────┴───────────────────────────────────────────────────────┴────────────┴────────────────┴──────────┴──────────────┴─────────────┘ +10s
  cypress:proxy:http:util:prerequests Never received pre-request or url without pre-request for request GET-https://safebrowsingohttpgateway.googleapis.com/v1/ohttp/hpkekeyconfig?key=AIzaSyBOti4mM-6x9WDnZIjIeyEU21OpBXqWBgw after waiting 2000ms. Continuing without one. +12s
  cypress:network:cors Parsed URL { port: '443', protocol: 'https:', subdomain: 'secure8', domain: 'datev', tld: 'de' } +12s
  cypress:server:util:resource-type-and-credential credentials request received for request url https://safebrowsingohttpgateway.googleapis.com/v1/ohttp/hpkekeyconfig?key=AIzaSyBOti4mM-6x9WDnZIjIeyEU21OpBXqWBgw, hashKey 3dd49b057297dc81ebe26a7a54700525 +12s
  cypress:network:cors Parsed URL { port: '443', protocol: 'https:', subdomain: 'secure8', domain: 'datev', tld: 'de' } +0ms
  cypress:network:cors Parsed URL { port: '443', protocol: 'https:', subdomain: 'secure8', domain: 'datev', tld: 'de' } +0ms
  cypress:network:cors Parsed URL { port: '443', protocol: 'https:', subdomain: null, domain: 'safebrowsingohttpgateway', tld: 'googleapis.com' } +0ms
  cypress:network:cors Parsed URL { port: '443', protocol: 'https:', subdomain: 'secure8', domain: 'datev', tld: 'de' } +0ms
  cypress:network:cors Parsed URL { port: '443', protocol: 'https:', subdomain: null, domain: 'safebrowsingohttpgateway', tld: 'googleapis.com' } +0ms
  cypress:network:cors Parsed URL { port: '443', protocol: 'https:', subdomain: null, domain: 'safebrowsingohttpgateway', tld: 'googleapis.com' } +1ms
  cypress:server:remote-states getting remote state: undefined for: https://safebrowsingohttpgateway.googleapis.com/v1/ohttp/hpkekeyconfig?key=AIzaSyBOti4mM-6x9WDnZIjIeyEU21OpBXqWBgw +12s
  cypress:network:cors Parsed URL { port: '80', protocol: 'http:', subdomain: null, domain: '', tld: 'localhost' } +0ms
  cypress:server:remote-states getting remote state: { auth: null, origin: 'http://localhost'/, strategy: 'http', fileServer: null, domainName: 'localhost', props: { port: '80', protocol: 'http:', subdomain: null, domain: '', tld: 'localhost' } } for: http://localhost/ +0ms
  cypress:server:stream_buffer stream buffer writeable final called +12s
  cypress:network:agent addRequest called { isHttps: true, href: '[https://safebrowsingohttpgateway.googleapis.com/v1/ohttp/hpkekeyconfig?key=AIzaSyBOti4mM-6x9WDnZIjIeyEU21OpBXqWBgw'](https://safebrowsingohttpgateway.googleapis.com/v1/ohttp/hpkekeyconfig?key=AIzaSyBOti4mM-6x9WDnZIjIeyEU21OpBXqWBgw%27) } +12s
  cypress:network:connect beginning getAddress { hostname: 'safebrowsingohttpgateway.googleapis.com', port: 443 } +2s
  cypress:network:connect got addresses { hostname: 'safebrowsingohttpgateway.googleapis.com', port: 443, addresses: [ { address: '142.250.181.202', family: 4 }, { address: '172.217.16.74', family: 4 }, { address: '142.251.209.138', family: 4 }, { address: '172.217.19.74', family: 4 }, { address: '2a00:1450:4005:801::200a', family: 6 }, { address: '2a00:1450:4005:80b::200a', family: 6 }, { address: '2a00:1450:4005:802::200a', family: 6 } ] } +33ms
  cypress:network:agent got family { family: 4, href: '[https://safebrowsingohttpgateway.googleapis.com/v1/ohttp/hpkekeyconfig?key=AIzaSyBOti4mM-6x9WDnZIjIeyEU21OpBXqWBgw'](https://safebrowsingohttpgateway.googleapis.com/v1/ohttp/hpkekeyconfig?key=AIzaSyBOti4mM-6x9WDnZIjIeyEU21OpBXqWBgw%27) } +37ms
  cypress:server:request received status code & headers on request { requestId: 'request153', statusCode: 200, headers: { 'content-type': 'application/ohttp-keys' } } +12s
  cypress:server:request successful response received { requestId: 'request153' } +0ms
  cypress:net-stubbing:server:intercept-response InterceptResponse { req: { url: '/v1/ohttp/hpkekeyconfig?key=AIzaSyBOti4mM-6x9WDnZIjIeyEU21OpBXqWBgw' }, request: undefined } +12s
  cypress:network:cors Parsed URL { port: '80', protocol: 'http:', subdomain: null, domain: '', tld: 'localhost' } +68ms
  cypress:server:remote-states getting remote state: { auth: null, origin: 'http://localhost'/, strategy: 'http', fileServer: null, domainName: 'localhost', props: { port: '80', protocol: 'http:', subdomain: null, domain: '', tld: 'localhost' } } for: http://localhost/ +68ms
  cypress:network:cors Parsed URL { port: '443', protocol: 'https:', subdomain: null, domain: 'safebrowsingohttpgateway', tld: 'googleapis.com' } +0ms
  cypress:network:cors Parsed URL { port: '443', protocol: 'https:', subdomain: null, domain: 'safebrowsingohttpgateway', tld: 'googleapis.com' } +0ms
  cypress:server:remote-states getting primary remote state: { auth: null, origin: 'http://localhost'/, strategy: 'http', fileServer: null, domainName: 'localhost', props: { port: '80', protocol: 'http:', subdomain: null, domain: '', tld: 'localhost' } } +0ms
  cypress:network:cors Parsed URL { port: '443', protocol: 'https:', subdomain: null, domain: 'safebrowsingohttpgateway', tld: 'googleapis.com' } +0ms
  cypress:network:cors Parsed URL { port: '443', protocol: 'https:', subdomain: null, domain: 'safebrowsingohttpgateway', tld: 'googleapis.com' } +0ms
  cypress:network:cors Parsed URL { port: '80', protocol: 'http:', subdomain: null, domain: '', tld: 'localhost' } +1ms
  cypress:server:remote-states getting remote state: { auth: null, origin: 'http://localhost'/, strategy: 'http', fileServer: null, domainName: 'localhost', props: { port: '80', protocol: 'http:', subdomain: null, domain: '', tld: 'localhost' } } for: http://localhost/ +1ms
  cypress:server:util:socket_allowed allowed socket closed, removing { localPort: 33752 } +7s
  cypress:server:util:process_profiler current & mean memory and CPU usage by process group:
  cypress:server:util:process_profiler ┌─────────┬───────────────────┬──────────────┬───────────────────────────────────────────────────────┬────────────┬────────────────┬──────────┬──────────────┬─────────────┐
  cypress:server:util:process_profiler │ (index) │       group       │ processCount │                         pids                          │ cpuPercent │ meanCpuPercent │ memRssMb │ meanMemRssMb │ maxMemRssMb │
  cypress:server:util:process_profiler ├─────────┼───────────────────┼──────────────┼───────────────────────────────────────────────────────┼────────────┼────────────────┼──────────┼──────────────┼─────────────┤
  cypress:server:util:process_profiler │    0    │     'Chrome'      │      9       │ '1215, 1219, 1220, 1229, 1248, 1230 ... 3 more items' │    2.84    │      7.22      │  831.93  │    872.57    │    898.8    │
  cypress:server:util:process_profiler │    1    │     'cypress'     │      1       │                         '906'                         │    1.37    │      7.06      │  437.47  │    447.99    │   508.84    │
  cypress:server:util:process_profiler │    2    │ 'electron-shared' │      4       │                '910, 1062, 911, 1068'                 │     0      │       0        │  247.23  │    278.97    │   591.35    │
  cypress:server:util:process_profiler │    3    │     'plugin'      │      1       │                        '1112'                         │     0      │      0.94      │  126.32  │    128.97    │   169.17    │
  cypress:server:util:process_profiler │    4    │      'other'      │      2       │                     '1575, 1576'                      │     0      │       50       │   5.19   │    29.67     │   152.41    │
  cypress:server:util:process_profiler │    5    │      'TOTAL'      │      17      │                          '-'                          │    4.21    │     62.66      │ 1648.15  │   1459.23    │   1779.67   │
  cypress:server:util:process_profiler └─────────┴───────────────────┴──────────────┴───────────────────────────────────────────────────────┴────────────┴────────────────┴──────────┴──────────────┴─────────────┘ +10s
  cypress:server:util:process_profiler current & mean memory and CPU usage by process group:
  cypress:server:util:process_profiler ┌─────────┬───────────────────┬──────────────┬───────────────────────────────────────────────────────┬────────────┬────────────────┬──────────┬──────────────┬─────────────┐
  cypress:server:util:process_profiler │ (index) │       group       │ processCount │                         pids                          │ cpuPercent │ meanCpuPercent │ memRssMb │ meanMemRssMb │ maxMemRssMb │
  cypress:server:util:process_profiler ├─────────┼───────────────────┼──────────────┼───────────────────────────────────────────────────────┼────────────┼────────────────┼──────────┼──────────────┼─────────────┤
  cypress:server:util:process_profiler │    0    │     'Chrome'      │      9       │ '1215, 1219, 1220, 1229, 1248, 1230 ... 3 more items' │    2.2     │      6.22      │  837.3   │    865.51    │    898.8    │
  cypress:server:util:process_profiler │    1    │     'cypress'     │      1       │                         '906'                         │    0.2     │      6.08      │  438.21  │    446.59    │   508.84    │
  cypress:server:util:process_profiler │    2    │ 'electron-shared' │      4       │                '910, 1062, 911, 1068'                 │     0      │       0        │  247.23  │    274.43    │   591.35    │
  cypress:server:util:process_profiler │    3    │     'plugin'      │      1       │                        '1112'                         │     0      │      0.78      │  126.32  │    128.53    │   169.17    │
  cypress:server:util:process_profiler │    4    │      'other'      │      2       │                     '1611, 1612'                      │    100     │     57.14      │   5.13   │    26.16     │   152.41    │
  cypress:server:util:process_profiler │    5    │      'TOTAL'      │      17      │                          '-'                          │   102.4    │     68.34      │  1654.2  │   1487.09    │   1779.67   │
  cypress:server:util:process_profiler └─────────┴───────────────────┴──────────────┴───────────────────────────────────────────────────────┴────────────┴────────────────┴──────────┴──────────────┴─────────────┘ +10s
  cypress:server:util:process_profiler current & mean memory and CPU usage by process group:
  cypress:server:util:process_profiler ┌─────────┬───────────────────┬──────────────┬───────────────────────────────────────────────────────┬────────────┬────────────────┬──────────┬──────────────┬─────────────┐
  cypress:server:util:process_profiler │ (index) │       group       │ processCount │                         pids                          │ cpuPercent │ meanCpuPercent │ memRssMb │ meanMemRssMb │ maxMemRssMb │
  cypress:server:util:process_profiler ├─────────┼───────────────────┼──────────────┼───────────────────────────────────────────────────────┼────────────┼────────────────┼──────────┼──────────────┼─────────────┤
  cypress:server:util:process_profiler │    0    │     'Chrome'      │      9       │ '1215, 1219, 1220, 1229, 1248, 1230 ... 3 more items' │    2.51    │      5.6       │  838.23  │    860.97    │    898.8    │
  cypress:server:util:process_profiler │    1    │     'cypress'     │      1       │                         '906'                         │    0.2     │      5.35      │  437.87  │    445.5     │   508.84    │
  cypress:server:util:process_profiler │    2    │ 'electron-shared' │      4       │                '910, 1062, 911, 1068'                 │     0      │       0        │  247.23  │    271.03    │   591.35    │
  cypress:server:util:process_profiler │    3    │     'plugin'      │      1       │                        '1112'                         │     0      │      0.67      │  126.32  │    128.21    │   169.17    │
  cypress:server:util:process_profiler │    4    │      'other'      │      2       │                     '1647, 1648'                      │     0      │       50       │   5.24   │    23.55     │   152.41    │
  cypress:server:util:process_profiler │    5    │      'TOTAL'      │      17      │                          '-'                          │    2.71    │     60.13      │  1654.9  │   1508.06    │   1779.67   │
  cypress:server:util:process_profiler └─────────┴───────────────────┴──────────────┴───────────────────────────────────────────────────────┴────────────┴────────────────┴──────────┴──────────────┴─────────────┘ +10s
  cypress:server:util:process_profiler current & mean memory and CPU usage by process group:
  cypress:server:util:process_profiler ┌─────────┬───────────────────┬──────────────┬───────────────────────────────────────────────────────┬────────────┬────────────────┬──────────┬──────────────┬─────────────┐
  cypress:server:util:process_profiler │ (index) │       group       │ processCount │                         pids                          │ cpuPercent │ meanCpuPercent │ memRssMb │ meanMemRssMb │ maxMemRssMb │
  cypress:server:util:process_profiler ├─────────┼───────────────────┼──────────────┼───────────────────────────────────────────────────────┼────────────┼────────────────┼──────────┼──────────────┼─────────────┤
  cypress:server:util:process_profiler │    0    │     'Chrome'      │      9       │ '1215, 1219, 1220, 1229, 1248, 1230 ... 3 more items' │    6.09    │      5.67      │  792.82  │    851.23    │    898.8    │
  cypress:server:util:process_profiler │    1    │     'cypress'     │      1       │                         '906'                         │    0.17    │      4.77      │  437.9   │    444.66    │   508.84    │
  cypress:server:util:process_profiler │    2    │ 'electron-shared' │      4       │                '910, 1062, 911, 1068'                 │     0      │       0        │  247.23  │    268.39    │   591.35    │
  cypress:server:util:process_profiler │    3    │     'plugin'      │      1       │                        '1112'                         │     0      │      0.59      │  126.32  │    127.98    │   169.17    │
  cypress:server:util:process_profiler │    4    │      'other'      │      2       │                     '1683, 1684'                      │     0      │     44.44      │   5.21   │    21.51     │   152.41    │
  cypress:server:util:process_profiler │    5    │      'TOTAL'      │      17      │                          '-'                          │    6.27    │     54.15      │ 1609.49  │   1519.33    │   1779.67   │
  cypress:server:util:process_profiler └─────────┴───────────────────┴──────────────┴───────────────────────────────────────────────────────┴────────────┴────────────────┴──────────┴──────────────┴─────────────┘ +10s
  cypress:server:util:process_profiler current & mean memory and CPU usage by process group:
  cypress:server:util:process_profiler ┌─────────┬───────────────────┬──────────────┬───────────────────────────────────────────────────────┬────────────┬────────────────┬──────────┬──────────────┬─────────────┐
  cypress:server:util:process_profiler │ (index) │       group       │ processCount │                         pids                          │ cpuPercent │ meanCpuPercent │ memRssMb │ meanMemRssMb │ maxMemRssMb │
  cypress:server:util:process_profiler ├─────────┼───────────────────┼──────────────┼───────────────────────────────────────────────────────┼────────────┼────────────────┼──────────┼──────────────┼─────────────┤
  cypress:server:util:process_profiler │    0    │     'Chrome'      │      9       │ '1215, 1219, 1220, 1229, 1248, 1230 ... 3 more items' │    1.88    │      5.2       │  775.97  │    841.82    │    898.8    │
  cypress:server:util:process_profiler │    1    │     'cypress'     │      1       │                         '906'                         │    0.17    │      4.31      │   438    │    443.99    │   508.84    │
  cypress:server:util:process_profiler │    2    │ 'electron-shared' │      4       │                '910, 1062, 911, 1068'                 │     0      │       0        │  247.23  │    266.27    │   591.35    │
  cypress:server:util:process_profiler │    3    │     'plugin'      │      1       │                        '1112'                         │     0      │      0.52      │  126.32  │    127.79    │   169.17    │
  cypress:server:util:process_profiler │    4    │      'other'      │      2       │                     '1720, 1721'                      │     0      │       40       │   5.21   │    19.88     │   152.41    │
  cypress:server:util:process_profiler │    5    │      'TOTAL'      │      17      │                          '-'                          │    2.05    │     48.94      │ 1592.74  │   1526.67    │   1779.67   │
  cypress:server:util:process_profiler └─────────┴───────────────────┴──────────────┴───────────────────────────────────────────────────────┴────────────┴────────────────┴──────────┴──────────────┴─────────────┘ +10s
error: XDG_RUNTIME_DIR is invalid or not set in the environment.
error: XDG_RUNTIME_DIR is invalid or not set in the environment.
  cypress:server:util:process_profiler current & mean memory and CPU usage by process group:
  cypress:server:util:process_profiler ┌─────────┬───────────────────┬──────────────┬───────────────────────────────────────────────────────┬────────────┬────────────────┬──────────┬──────────────┬─────────────┐
  cypress:server:util:process_profiler │ (index) │       group       │ processCount │                         pids                          │ cpuPercent │ meanCpuPercent │ memRssMb │ meanMemRssMb │ maxMemRssMb │
  cypress:server:util:process_profiler ├─────────┼───────────────────┼──────────────┼───────────────────────────────────────────────────────┼────────────┼────────────────┼──────────┼──────────────┼─────────────┤
  cypress:server:util:process_profiler │    0    │     'Chrome'      │      9       │ '1215, 1219, 1220, 1229, 1248, 1230 ... 3 more items' │    2.46    │      4.89      │  776.21  │    834.53    │    898.8    │
  cypress:server:util:process_profiler │    1    │     'cypress'     │      1       │                         '906'                         │    0.22    │      3.94      │  438.96  │    443.53    │   508.84    │
  cypress:server:util:process_profiler │    2    │ 'electron-shared' │      4       │                '910, 1062, 911, 1068'                 │    0.12    │      0.01      │  248.74  │    264.68    │   591.35    │
  cypress:server:util:process_profiler │    3    │     'plugin'      │      1       │                        '1112'                         │     0      │      0.47      │  126.32  │    127.64    │   169.17    │
  cypress:server:util:process_profiler │    4    │      'other'      │      2       │                     '1756, 1757'                      │     50     │     40.91      │   5.26   │    18.55     │   152.41    │
  cypress:server:util:process_profiler │    5    │      'TOTAL'      │      17      │                          '-'                          │   52.81    │     49.29      │  1595.5  │   1532.93    │   1779.67   │
  cypress:server:util:process_profiler └─────────┴───────────────────┴──────────────┴───────────────────────────────────────────────────────┴────────────┴────────────────┴──────────┴──────────────┴─────────────┘ +10s

EtienneBruines avatar Jun 11 '24 11:06 EtienneBruines

@EtienneBruines

I suspect that these are two different errors. This is however just "gut feel". It needs more investigation to find out.

MikeMcC399 avatar Jun 11 '24 13:06 MikeMcC399

Hey is there any update on this issue? Cheers !

AndyClifford avatar Jun 17 '24 00:06 AndyClifford

The https://github.com/cypress-io/cypress/labels/browser%3A%20chromium label can be removed, as this issue also occurs with Electron.

See https://app.circleci.com/pipelines/github/cypress-io/cypress-docker-images/2035/workflows/0b0791df-55ea-4811-a494-1111e289d282/jobs/61974

MikeMcC399 avatar Jun 17 '24 13:06 MikeMcC399

I can also say that I am seeing this reliably with certain tests in my GitLab CI pipeline using cypress/included:13.11.0. It's using chrome 125.

craigmiller160 avatar Jun 19 '24 18:06 craigmiller160

We see the error error: XDG_RUNTIME_DIR is invalid or not set in the environment. in our pipelines too. We use the docker image cypress/factory with

NODE_VERSION=20.14.0
CHROME_VERSION=118.0.5993.70-1

pitgrap avatar Jun 26 '24 09:06 pitgrap

Also seeing this issue.

error: XDG_RUNTIME_DIR is invalid or not set in the environment.

Running: Cypress: 13.12.0
Browser: Chrome 126 (headless) │ Node Version: v20.14.0

jimmigit avatar Jun 27 '24 14:06 jimmigit

Having the same issue on Azure Pipelines: Docker Image: cypress/base:latest Cypress version: 13.12.0 Browser: Chrome 126 (headless)
Node Version: v20.14.0

 Running:  Tests.spec.js                                                        (1 of 5)
  Tests
    (Attempt 1 of 3) test one
    (Attempt 2 of 3) test one
    1) test one
    (Attempt 1 of 3) test two
    (Attempt 2 of 3) test two
    2) test two
error: XDG_RUNTIME_DIR is invalid or not set in the environment.
error: XDG_RUNTIME_DIR is invalid or not set in the environment.
    (Attempt 1 of 3) test three
    (Attempt 2 of 3) test three
    3) test three


  0 passing (2m)
  3 failing
...
...
...
##[error]error: XDG_RUNTIME_DIR is invalid or not set in the environment.
##[error]error: XDG_RUNTIME_DIR is invalid or not set in the environment.
##[error]The process '/usr/bin/docker' failed with exit code 7
Finishing: Start Container

Dockerfile

# Use the cypress/base image as the base
FROM cypress/base:latest AS base

ARG environment_group_arg
ENV ENV_GROUP_ARG=$environment_group_arg
ARG CYPRESS_TESTRAIL_PASSWORD
ENV CYPRESS_TESTRAIL_PASSWORD=$CYPRESS_TESTRAIL_PASSWORD

# Install necessary dependencies
RUN apt-get update
RUN apt-get -y install libgtk2.0-0 libgtk-3-0 libgbm-dev libnotify-dev libgconf-2-4 libnss3 libxss1 libasound2 libxtst6 xauth xvfb libu2f-udev libvulkan1
RUN wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
RUN apt-get -y install fonts-liberation xdg-utils man-db
RUN dpkg -i google-chrome-stable_current_amd64.deb

# Copy your application's files into the container
WORKDIR /app
COPY package.json package-lock.json* ./
RUN npm ci && npm cache clean --force
COPY . .

# Copy the entrypoint script
COPY entrypoint.sh /entrypoint.sh
RUN chmod +x /entrypoint.sh

# Specify the entrypoint script
ENTRYPOINT ["/entrypoint.sh"]

RUN echo "Environment group: ${environment_group_arg} is built. {Legend:[1: Dev, 2: Stage, 3: Prod, 4: feature environment 5: feature env. in ci] }"

serhatgemici avatar Jul 01 '24 11:07 serhatgemici

@serhatgemici

It's difficult to know if Cypress failures are related to the XDG_RUNTIME_DIR or not.

Just as a comment on the way you are building your Docker image: you might find it easier to use cypress/factory which already adds the Linux prerequisites for Cypress and makes it easy to just add a selected version of Chrome. This comment is however off-topic for the current issue 🙂 If you want to discuss, then Discord chat (click on button) is a better place.

MikeMcC399 avatar Jul 01 '24 11:07 MikeMcC399

Just updated to 13.13.0 and seeing the error error: XDG_RUNTIME_DIR is invalid or not set in the environment.

Cypress: 13.13.0
Browser: Chrome 126 (headless)
Node Version: v20.14.0

theTestingApproach avatar Jul 09 '24 09:07 theTestingApproach

@theTestingApproach

  • The issue hasn't been addressed so far and it looks like it may just be a "garbage error". It's possible it may go away (or be replaced by a different garbage error) when Cypress updates Electron (see PR https://github.com/cypress-io/cypress/pull/28959).

MikeMcC399 avatar Jul 09 '24 09:07 MikeMcC399

I am seeing error: XDG_RUNTIME_DIR is invalid or not set in the environment. I have this problem on both cypress/included:cypress-13.13.0-node-20.15.1-chrome-126.0.6478.114-1-ff-128.0-edge-126.0.2592.61-1 also cypress/included:cypress-13.12.0-node-20.14.0-chrome-126.0.6478.114-1-ff-127.0.1-edge-126.0.2592.61-1 - I have not attempted using other images but happy to try if it will help solve the problem.

I specify 2 spec files via --spec and I only see the problem with the second of the 2 files. If I use Chrome browser for testing, it seems that there's a problem initiating the browser properly and the whole spec file goes on to fail. If I use the Electron browser, the test runs successfully but throws 2 of the XDG errors halfway thru the run. If I run just one spec file then it completes with no XDG error.

I am specifying the arguments to Cypress in a Jenkinsfile which may be relevant. Dockerfile is just set up to build and copy. It may be that there is a more optimal setup I could use.

alextesttesttest avatar Jul 12 '24 17:07 alextesttesttest

Also observed under test-factory-cypress-included-edge in https://app.circleci.com/pipelines/github/cypress-io/cypress-docker-images/2161/workflows/274bfadc-347c-43e1-818c-41fb4079d996/jobs/65984 with

  ┌────────────────────────────────────────────────────────────────────────────────────────────────┐
  │ Cypress:        13.13.1                                                                        │
  │ Browser:        Edge 126 (headless)                                                            │
  │ Node Version:   v20.15.1 (/usr/local/bin/node)                                                 │
  │ Specs:          20 found (1-getting-started/todo.cy.js, 2-advanced-examples/actions.cy.js, 2-a │
  │                 dvanced-examples/aliasing.cy.js, 2-advanced-examples/assertions.cy.js, 2-advan │
  │                 ced-examples/connectors.cy.js, 2-advanced-examples/cookies.cy.js, 2-advanced-e │
  │                 xamples/cypress_api.cy....)                                                    │
  │ Searched:       cypress/e2e/**/*.cy.{js,jsx,ts,tsx}                                            │
  └────────────────────────────────────────────────────────────────────────────────────────────────┘
  Running:  2-advanced-examples/aliasing.cy.js                                             (3 of 20)


  Aliasing
error: XDG_RUNTIME_DIR is invalid or not set in the environment.
error: XDG_RUNTIME_DIR is invalid or not set in the environment.

Too long with no output (exceeded 10m0s): context deadline exceeded

It could be coincidence that the two errors appear together. It is difficult to tell.

This issue has happened again.

MikeMcC399 avatar Jul 21 '24 09:07 MikeMcC399

I'm also facing this issue with cypress 13.13.1

Browsers : Electron 118 Operating systems: Linux Debian Node Version: v20.15.1 Docker Image: cypress/included:13.13.1 Parallel Machines: 2

07:34:51  error: XDG_RUNTIME_DIR is invalid or not set in the environment.
07:34:51  error: XDG_RUNTIME_DIR is invalid or not set in the environment.
07:34:55  error: XDG_RUNTIME_DIR is invalid or not set in the environment.
07:34:55  error: XDG_RUNTIME_DIR is invalid or not set in the environment.
07:41:25  Cancelling nested steps due to timeout
07:41:25  Sending interrupt signal to process
07:41:25  Sending interrupt signal to process

cport93 avatar Jul 25 '24 14:07 cport93

I'm also seeing the same issue with docker image cypress/included:13.13.0 with electron. I believe the test may be failing due to a network intercept which is never happening but instead of the typical timeout error message I'm seeing the XDG_RUNTIME_DIR messages and in some cases it seems almost to hang indefinitely.

What is the earliest known version that does not have this issue? If there is not a fix then we would at least like to be able to revert to an older version until this addressed. Previously we were on v12 but had updated a few weeks ago and didn't notice this issue until we got around to running things through docker.

jpierson-at-riis avatar Jul 26 '24 12:07 jpierson-at-riis

According to https://github.com/cypress-io/cypress/issues/29554#issuecomment-2150699188, version 13.8.1 seems to be the earliest reported version where this has been reproduced. Is there any indication from the CI/CD logs which may indicate when this issue was introduced?

jpierson-at-riis avatar Jul 26 '24 13:07 jpierson-at-riis

After testing with 13.6.4, which appears to be the last time electron was upgraded, I'm no longer seeing the XDG_RUNTIME_DIR related errors but I'm still getting the indefinite hanging in one of my failing tests. I'm guessing that the failing test issue is just a problem in our codebase at the moment though. I'm going to continue with 13.6.4 as an attempted workaround for now.

jpierson-at-riis avatar Jul 26 '24 13:07 jpierson-at-riis

@jpierson-at-riis

Due to the nature of this issue there are different root causes emerging which are difficult to split out. As far as the original subject of this issue is concerned "XDG_RUNTIME_DIR error in Debian 12.x headless" the first official Cypress Docker image to be based on Debian 12 was cypress/included:13.11.0

cypress/factory:4.0.0 was released on May 30, 2024.

MikeMcC399 avatar Jul 26 '24 13:07 MikeMcC399

Thank you for the details @MikeMcC399, according to your original post though it seems that you are indicating that this was first reported for 13.10.0 though or am I misunderstanding?

image

I've also been able to avoid the XDG_RUNTIME_DIR from showing in my case by toggling the chromeWebSecurity setting off in my case. I believe this is just avoiding the underlying test failure which was leading to scenario where that error would be printed normally but since it could be relevant to understanding the section of code which may be responsible for reproducing the issue I figured I'd share.

jpierson-at-riis avatar Jul 26 '24 14:07 jpierson-at-riis

@jpierson-at-riis

Sorry for the confusing details! I was actually testing the Debian 12 image on Cypress 13.10.0 before the official Docker image was released for Cypress 13.11.0.

It doesn't look like anybody has dug into the code at this stage, so thanks for your additional details!

MikeMcC399 avatar Jul 26 '24 14:07 MikeMcC399