# Haven (xxdk-wasm-v0.4.0) Test Build

**URL:** <https://forum.xx.network/t/haven-xxdk-wasm-v0-4-0-test-build/7328>\
**Category:** Haven Chat\
**Created:** [December 18, 2025, 10:41pm UTC](https://forum.xx.network/t/haven-xxdk-wasm-v0-4-0-test-build/7328 "2025-12-18T22:41:32Z")\
**Posts on this page:** 9\
**Page:** 1

<div class="post-metadata">

**Author:** ![xxFoundation](https://forum.xx.network/user_avatar/forum.xx.network/xxfoundation/32/902_2.png) [@xxFoundation](https://forum.xx.network/u/xxFoundation)\
**Post date:** [December 18, 2025, 10:41pm UTC](https://forum.xx.network/t/haven-xxdk-wasm-v0-4-0-test-build/7328/1 "2025-12-18T22:41:32Z")

</div>

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).

> **[Haven Web](https://v04-deploy.netlify.app/)**

Would love your feedback. The MRs are here:

> **[refactor: migrate to CreatePromise pattern and introduce KV worker (!145) ·...](https://git.xx.network/elixxir/xxdk-wasm/-/merge_requests/145)**
>
> Migrated wasm/ files to CreatePromise w/ proper async handling New KV worker architecture replacing state worker Created internal jsutil/ package replacing wasm-utils dependency

> **[igrate to IndexedDB-backed KV storage and async xxdk-wasm API (!113) · Merge...](https://git.xx.network/elixxir/speakeasy-web/-/merge_requests/113)**
>
> Replace RemoteKV context with new useKVStorage hook backed by xxdk-wasm's createKVStore (IndexedDB) Convert synchronous xxdk-wasm calls to async/Promise-based API (GetIdentity, GetNickname, SetNickname, IsChannelAdmin, AreDMsEnabled,...

---

<div class="post-metadata">

**Author:** ![Darius](https://forum.xx.network/letter_avatar_proxy/v4/letter/d/58956e/32.png) [@Darius](https://forum.xx.network/u/Darius)\
**Post date:** [December 19, 2025, 11:18am UTC](https://forum.xx.network/t/haven-xxdk-wasm-v0-4-0-test-build/7328/2 "2025-12-19T11:18:42Z")

</div>

Please, update certificates for the gateways.

 ![image](https://forum.xx.network/uploads/default/original/2X/e/e4ecd0c79cb86666f8dfb54f1304dc5911ba4b99.png)

---

<div class="post-metadata">

**Author:** ![rothbardian](https://forum.xx.network/user_avatar/forum.xx.network/rothbardian/32/818_2.png) [@rothbardian](https://forum.xx.network/u/rothbardian)\
**Post date:** [December 21, 2025, 5:12pm UTC](https://forum.xx.network/t/haven-xxdk-wasm-v0-4-0-test-build/7328/3 "2025-12-21T17:12:09Z")

</div>

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](https://registrar.mainnet.cmix.rip:11420/mixmessages.ClientRegistrar/RegisterUser "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](https://registrar.mainnet.cmix.rip:11420/mixmessages.ClientRegistrar/RegisterUser "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](https://registrar.mainnet.cmix.rip:11420/mixmessages.ClientRegistrar/RegisterUser "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.`

---

<div class="post-metadata">

**Author:** ![rick](https://forum.xx.network/user_avatar/forum.xx.network/rick/32/270_2.png) [@rick](https://forum.xx.network/u/rick)\
**Post date:** [December 22, 2025, 5:12am UTC](https://forum.xx.network/t/haven-xxdk-wasm-v0-4-0-test-build/7328/4 "2025-12-22T05:12:33Z")

</div>

@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.

---

<div class="post-metadata">

**Author:** ![rick](https://forum.xx.network/user_avatar/forum.xx.network/rick/32/270_2.png) [@rick](https://forum.xx.network/u/rick)\
**Post date:** [December 22, 2025, 5:14am UTC](https://forum.xx.network/t/haven-xxdk-wasm-v0-4-0-test-build/7328/5 "2025-12-22T05:14:37Z")

</div>

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.

---

<div class="post-metadata">

**Author:** ![rothbardian](https://forum.xx.network/user_avatar/forum.xx.network/rothbardian/32/818_2.png) [@rothbardian](https://forum.xx.network/u/rothbardian)\
**Post date:** [December 25, 2025, 2:59pm UTC](https://forum.xx.network/t/haven-xxdk-wasm-v0-4-0-test-build/7328/6 "2025-12-25T14:59:52Z")

</div>

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](https://github.com/hagezi/dns-blocklists/blob/ccd1055a4893e2c8c73c7342b120ca143e8da0fa/rpz/spam-tlds-rpz-aggressive.txt#L234)

---

<div class="post-metadata">

**Author:** ![rothbardian](https://forum.xx.network/user_avatar/forum.xx.network/rothbardian/32/818_2.png) [@rothbardian](https://forum.xx.network/u/rothbardian)\
**Post date:** [December 25, 2025, 3:17pm UTC](https://forum.xx.network/t/haven-xxdk-wasm-v0-4-0-test-build/7328/7 "2025-12-25T15:17:50Z")

</div>

It does seem snappier than before.

I posted a thread on loading Haven identity in [Loading Haven identity from somewhere](https://forum.xx.network/t/loading-haven-identity-from-somewhere/7329) - 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.

---

<div class="post-metadata">

**Author:** ![rothbardian](https://forum.xx.network/user_avatar/forum.xx.network/rothbardian/32/818_2.png) [@rothbardian](https://forum.xx.network/u/rothbardian)\
**Post date:** [December 27, 2025, 6:40am UTC](https://forum.xx.network/t/haven-xxdk-wasm-v0-4-0-test-build/7328/8 "2025-12-27T06:40:14Z")

</div>

Issues with v0.4 Test Build:

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

```auto

Downloading @emoji-mart/data@1.2.1: 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

```auto
 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.

---

<div class="post-metadata">

**Author:** ![Keith](https://forum.xx.network/user_avatar/forum.xx.network/keith/32/159_2.png) [@Keith](https://forum.xx.network/u/Keith)\
**Post date:** [February 23, 2026, 2:13am UTC](https://forum.xx.network/t/haven-xxdk-wasm-v0-4-0-test-build/7328/9 "2026-02-23T02:13:22Z")

</div>

I’ve updated this for further testing targeting iOS mobile devices. As far as the UI is concerned it is close to on par with haven.xx.network but there are connectivity issues specific to iOS since it’s much more aggressive when it comes to putting things to sleep compared to Android and desktops/laptops. I am aware of this. So, this should not be considered a daily driver. I don’t have easy access to iOS tools for debugging iOS specific platforms but I have found was to do it, it’s just cumbersome.

But this is a huge step forward to making Haven accessible to all platforms, desktop and mobile!
