Haven v0.4.0 Test Build

Hi all,

The team has published a test build of the latest Haven release v0.4.0 This one is largely built out to take full advantage of the new haven extension AND fix a bunch of bugs (better identity generation, etc).

Would love your feedback. The MRs are here:

4 Likes

Please, update certificates for the gateways.

Sounds good!

I wasn’t able to connect. I loaded an identity and waited for Haven to start. The usual CORS error appeared first.

Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at https://registrar.mainnet.cmix.rip:11420/mixmessages.ClientRegistrar/RegisterUser. (Reason: CORS request did not succeed). Status code: (null).

And then reg with permissioning failed.

ERROR 2025/12/21 15:00:00 Cmix has failed registration: failed to register with permissioning: sendRegistrationMessage: Unable to contact Identity Server!: failed to send the request: failed to send the API: Post “https://registrar.mainnet.cmix.rip:11420/mixmessages.ClientRegistrar/RegisterUser”: net/http: fetch() failed: TypeError: NetworkError when attempting to fetch resource.

[DEBUG] bindings.LoadCmixWithKV error: LoadCmixWithKV failed: Post “https://registrar.mainnet.cmix.rip:11420/mixmessages.ClientRegistrar/RegisterUser”: net/http: fetch() failed: TypeError: NetworkError when attempting to fetch resource. failed to send the API

After that Haven remained stuck in Securely setting up your codename. This could take a few minutes.

@rothbardian

Did you see any progress in the progress bar or was it completely stuck like in the past?

All of those errors are normal and are caused by bad gateways. The fix is to process those much faster and kick them out of the list of gateways the client tries to contact. It should bring the process from upwards of an hr or 2 down to ~3-5 minutes on the high end. If that’s not the case then please let us know what browser and operating system.

1 Like

This is an issue on the server side we don’t control. It has to do with the zerossl infrastructure being unable to talk with the gateway running on the node.

Tried several browsers on 2 hosts. One used “public” DNS and Edge - that one (which I never use for Haven) worked.

*.rip → as they say, “you’re here”: https://github.com/hagezi/dns-blocklists/blob/a5e4fb543c467a57e654f2ca29c6208eff1caac1/rpz/spam-tlds-rpz-aggressive.txt#L191

It does seem snappier than before.

I posted a thread on loading Haven identity in Loading Haven identity from somewhere - that would be nice to have (that is, the ability for the “load identity” modal to expose a field to which we can “push” a string (FS path or URL to identity JSON).

Then it’d be up to others to choose where to push from - crypto wallet (I don’t know of any that can push custom strings, but they could be developed), own extension, etc.

Issues with v0.4 Test Build:

  • build doesn’t work because xxDK is referenced by relative path, not included in repo

Downloading @emoji-mart/[email protected]: 5.39 MB/5.39 MB, done
 ENOENT  ENOENT: no such file or directory, open ‘../xx/xxdk-wasm/xxdk-wasm-0.4.0.tgz’
  • building from v0.4 on GH doesn’t work either as there’s no packaged release we can get and building from source fails
 WARN  GET https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz error (ERR_PNPM_ENAMETOOLONG). Will retry in 1 minute. 1 retries left.
 ERR_PNPM_ENAMETOOLONG  Failed to add tarball from "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.27.1.tgz" to store: ENAMETOOLONG: name too long, open '/home/user/.local/share/pnpm/store/v10/index/83/82fb398ba7d383755b2a8c36395d17095f3c22d5920079e00fd80972026580-@babel+plugin-bugfix-safari-id-destructuring-collision-in-function-expression@1793577'

Can this be improved? I don’t mind downloading xxdk-wasm-0.4.0.tgz from S3, if you can publish and modify the build script to fetch it from the repo path.