Login Issue on Wallet UI via Public IP (crypto.subtle Error) in canton validator

I have set up the SV and validator for a development environment on a local network using the guide available here: https://docs.sync.global/app_dev/testing/index.html.
I have verified that the SV is working perfectly.

When I access the wallet using localhost:8080, everything works fine. However, when I try to access it using public_ip:8080, I encounter an error during login. The error message is:

"Something went wrong. Latest error (4/30/2025, 4:14:41 PM):
TypeError: crypto.subtle is undefined"

Can anyone help me figure this out? I’m using the same machine. When I log in to the wallet using localhost:8080, it works perfectly. But in a new tab, when I try to log in using public_ip:8080, I get the error shown in the screenshots below:

  1. Error when using public_ip:8080:


  2. Working view using localhost:8080:

I also posted this issue on the Global Sync Forum. You can find the full conversation here:
https://lists.sync.global/g/globalSyncForum/topic/unable_to_access_wallet_ui/112536825

Please check the forum thread and help me figure out what’s causing the issue.

Hi, @Rahil_M! Welcome to the Daml Forums!

Thank you for the context from the GSF mailing list. Very helpful!

Can you try setting SPLICE_APP_UI_HTTP_URL=false in your Docker Compose file? Restart and try the public URL.

This may not fully unblock you, but it is worth a try.


As a side note, an error message has been added for this case:

  if (!crypto.subtle) {
    throw new Error(
      'Web Crypto API is not available. Ensure you are running in a secure context (HTTPS or localhost) and using a modern browser that supports the Web Crypto API.'
    );
  }
1 Like

Thank you for the solution — it’s working now. I appreciate your response!

1 Like