Current behavior
There is a race condition in https-proxy that can cause the CA store to become corrupted if multiple Cypress processes are sharing the same appdata directory simultaneously. This causes errors like the following when visiting HTTPS websites:
Error: error:0b000074:X.509 certificate routines:OPENSSL_internal:KEY_VALUES_MISMATCH
Error: error:0900006e:PEM routines:OPENSSL_internal:NO_START_LINE
And other errors relating to corrupt/mismatched private keys and SSL certificates.
Desired behavior
The race condition is avoided, probably with the addition of a lockfile when generating/writing CA certificates.
Note: Cypress is not generally designed to run as multiple processes sharing a home directory.
Workaround (Linux-only)
A workaround is to set a different XDG_CONFIG_HOME environment variable for each Cypress process that is running. This will cause each process to have its own CA store, eliminating the possibility of a race condition.
Example:
# assuming these are somehow run simultaneously
XDG_CONFIG_HOME=/tmp/cyhome1 cypress run...
XDG_CONFIG_HOME=/tmp/cyhome2 cypress run...
This may have side-effects outside of just fixing this issue, but it is the only workaround for now.
Current behavior
There is a race condition in
https-proxythat can cause the CA store to become corrupted if multiple Cypress processes are sharing the same appdata directory simultaneously. This causes errors like the following when visiting HTTPS websites:And other errors relating to corrupt/mismatched private keys and SSL certificates.
Desired behavior
The race condition is avoided, probably with the addition of a lockfile when generating/writing CA certificates.
Note: Cypress is not generally designed to run as multiple processes sharing a home directory.
Workaround (Linux-only)
A workaround is to set a different
XDG_CONFIG_HOMEenvironment variable for each Cypress process that is running. This will cause each process to have its own CA store, eliminating the possibility of a race condition.Example:
# assuming these are somehow run simultaneously XDG_CONFIG_HOME=/tmp/cyhome1 cypress run... XDG_CONFIG_HOME=/tmp/cyhome2 cypress run...This may have side-effects outside of just fixing this issue, but it is the only workaround for now.