Troubleshooting
Common issues and solutions when building with the Lumera Cascade SDK.
WASM Loading Errors
RaptorQ WASM module failed to load
Environment: Node.js
The RaptorQ WASM module uses createRequire to resolve the .wasm binary path, which fails in certain Node.js configurations (ESM-only projects, bundled environments).
Solution: Use the browser environment for uploads. Node.js currently supports downloads only. See Node.js Environment for details.
Cannot find module '@bokuweb/zstd-wasm'
Environment: Vite (browser)
The Zstd WASM module must be excluded from Vite's dependency optimizer.
Solution:
window is not defined
Environment: Node.js / SSR
The RaptorQ WASM library expects a window global. The SDK polyfills this, but the polyfill can conflict with SSR frameworks.
Solution: Ensure Cascade operations only run client-side:
For Vite, add to your config:
Wallet Issues
Keplr extension not found
The user hasn't installed Keplr or the page loaded before the extension injected window.keplr.
Solution: Wait for the keplr_keystorechange event or check with a delay:
Request rejected during signArbitrary
The user declined the signing request in Keplr. Cascade requires ADR-036 signatures for authentication.
Solution: Explain to users that the signature is for authentication, not a transaction. Consider showing a pre-sign dialog explaining what is being signed.
Account does not exist on chain
The wallet address has no balance on Lumera testnet.
Solution: Get tokens from the Lumera Discord faucet. Then verify:
Upload Issues
Action not found (404 from SN-API)
The on-chain action was registered, but the Supernode hasn't indexed it yet.
Solution: The SDK retries automatically (5 attempts, 3-second delays). If the issue persists:
- Verify the action exists on-chain: check the explorer at
https://portal.testnet.lumera.io - Increase the timeout in
taskOptions - Try a different SN-API endpoint
Upload timeout
The file upload or processing took longer than the configured timeout.
Solution: Increase the timeout:
Large files naturally take longer to encode and distribute across Supernodes.
Supernodes unavailable
No Supernodes accepted the upload task. This can happen during network upgrades or if the testnet is under load.
Solution:
- Check the Lumera Discord for network status
- Retry after a few minutes
- Verify Supernode availability:
client.Blockchain.getSupernodes()
Download Issues
Download failed or empty stream
The Supernodes could not reconstruct the file. This can happen with very recent uploads (Supernodes are still processing) or if the action has expired.
Solution:
- Wait a few minutes after upload before attempting download
- Verify the action status:
client.Blockchain.getAction(actionId) - Check that
state === "ACTION_STATE_DONE"
Build Issues
libsodium-sumo resolution errors (Vite)
Solution: Add a custom resolve alias and exclude from pre-bundling:
TypeScript errors with SDK return types
The SDK's uploadFile return type may not perfectly match expected fields.
Solution: Use a type assertion to access the action ID:
Getting Help
- Discord: discord.com/invite/qudewKS3kp
- GitHub Issues: LumeraProtocol/sdk-js/issues
- Explorer: portal.testnet.lumera.io