Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Troubleshooting

The diversity of web stacks available mean that we cannot enumerate all the possible errors or problems you may encounter.

However, here are some that the authors have found, and how to fix them.

panic! not reporting, or RuntimeError: Unreachable executed

By default, WASM doesn’t report to the console when a panic occurs in the Rust.

wasm-bindgen provide a console_error_panic_hook crate.

You should add this to your target crate’s Cargo.toml,

[target.'cfg(target_arch = "wasm32")'.dependencies]
console_error_panic_hook = "0.1.7"

and some place near your Rust startup run:

#![allow(unused)]
fn main() {
#[cfg(target_arch="wasm32")]
console_error_panic_hook::set_once();
}

FinalizationRegistry not found

This occurs when type checking the generated code. It’s caused by Typescript not knowing about global classes introduced “recently”.

The fix is to update the tsconfig.json file’s target to something more recent than es2021.

"compilerOptions":
  "target": "es2021" # or `esnext`