How to resolve SSL Handshake failure in playwright+chromium?

Hi Everyone,

I’m trying to package a tool called linkwarden for nixpkgs. It uses playwright + chromium to save webpages as pdf. I managed to wrap chromium up for playwright based on another example in nixpkgs.

This is the command it uses and the error it generates for SSL:

Mar 03 06:07:04 mini-nix linkwarden-start[3884189]: [1] 2024-03-03T14:07:04.805Z pw:browser <launching> /nix/store/iyhbk7d0ikrm967qgbg0mq0pncb8479d-npx-install-playwright-browsers--chromium/chromium-1067/chrome-linux/chrome --disable-field-trial-config --disable-background-networking --enable-features=NetworkService,NetworkServiceInProcess --disable-background-timer-throttling --disable-backgrounding-occluded-windows --disable-back-forward-cache --disable-breakpad --disable-client-side-phishing-detection --disable-component-extensions-with-background-pages --disable-component-update --no-default-browser-check --disable-default-apps --disable-dev-shm-usage --disable-extensions --disable-features=ImprovedCookieControls,LazyFrameLoading,GlobalMediaControls,DestroyProfileOnBrowserClose,MediaRouter,DialMediaRouteProvider,AcceptCHFrame,AutoExpandDetailsElement,CertificateTransparencyComponentUpdater,AvoidUnnecessaryBeforeUnloadCheckSync,Translate --allow-pre-commit-input --disable-hang-monitor --disable-ipc-flooding-protection --disable-popup-blocking --disable-prompt-on-repost --disable-renderer-backgrounding --force-color-profile=srgb --metrics-recording-only --no-first-run --enable-automation --password-store=basic --use-mock-keychain --no-service-autorun --export-tagged-pdf --headless --hide-scrollbars --mute-audio --blink-settings=primaryHoverType=2,availableHoverTypes=2,primaryPointerType=4,availablePointerTypes=4 --no-sandbox --user-data-dir=/tmp/playwright_chromiumdev_profile-7EI3Uy --remote-debugging-pipe --no-startup-window
Mar 03 06:07:04 mini-nix linkwarden-start[3884189]: [1] 2024-03-03T14:07:04.813Z pw:browser <launched> pid=3884332
Mar 03 06:07:06 mini-nix linkwarden-start[3884189]: [1] 2024-03-03T14:07:06.892Z pw:browser [pid=3884332][err] [0303/060706.892272:WARNING:bluez_dbus_manager.cc(248)] Floss manager not present, cannot set Floss enable/disable.
Mar 03 06:07:06 mini-nix linkwarden-start[3884189]: [1] 2024-03-03T14:07:06.922Z pw:browser [pid=3884332][err] [0303/060706.922279:WARNING:sandbox_linux.cc(400)] InitializeSandbox() called with multiple threads in process gpu-process.
Mar 03 06:07:07 mini-nix linkwarden-start[3884189]: [1] 2024-03-03T14:07:07.925Z pw:browser [pid=3884332][err] [0303/060707.924997:ERROR:ssl_client_socket_impl.cc(975)] handshake failed; returned -1, SSL error code 1, net_error -159

Any suggestions on working out the SSL issues?
The SSL_CERT_FILE environment variable is already defined in the chromium wrapper and points to a valid file path.

I’m not sure what else to do.

Just as a baseline to confirm that it is an SSL issue, I disabled the SSL validation in linkwarden/playwright and it works correctly.