Skip to main content
Cascade uploads touch two systems, the Lumera Protocol chain and the SuperNode network, so errors can surface in several places. This page lists the failures you are most likely to hit, the fix for each one, and how the SDK handles retries, timeouts, and refunds.

Common errors

RPC connection errors

If the Lumera RPC node is down or unreachable, client creation and blockchain transactions fail.
Switch to a different RPC endpoint, or wait and retry. You can pass a custom endpoint instead of the preset.

Insufficient funds

Uploads need LUME to pay the action fee. An empty wallet fails with this error.
Fund your wallet with testnet tokens from the faucet before uploading.

Keplr extension not found

The user has not installed Keplr, or the page loaded before the extension injected window.keplr. Wait for the extension before you access it.

Wallet popup rejected

Keplr and Leap ask the user to approve every signature request. A click on Reject surfaces as an error.
Prompt the user to try again and approve the popup. Cascade requests ADR-036 signatures for authentication, not transactions. Consider a pre-sign dialog that explains what is being signed. One upload can trigger several popups, one each for the layout, the index, and auth.

SuperNodes unavailable

The task fails when no SuperNodes are online to handle your request.
Wait a few minutes and retry. This usually means the testnet SuperNodes are temporarily down or overloaded.

Upload timeout

Large files or slow networks can push a task past the default timeout of 5 minutes.
Increase the timeout in taskOptions.

Action not registered

The transaction went through, but the SDK could not find the action_registered event in the response.
This usually means the upload started too soon after the client was created, or the transaction failed silently on chain. Work through three checks.
  1. Add a short delay before uploading so the chain can finalize the transaction.
  2. Confirm the transaction succeeded on Lumera Portal.
  3. Make sure you hold enough funds for the action fee. The transaction may have failed on gas.

Action not found

The action was registered on chain, but the SuperNode has not indexed it yet, or the action ID is invalid. SN-API responds with a 404.
The SDK retries this automatically with 5 attempts and 3-second delays. If the error persists, work through these steps.
  1. Verify the action exists on chain in Lumera Portal.
  2. Increase the timeout in taskOptions.
  3. Try a different SN-API endpoint.

Download failed or empty stream

The SuperNodes could not reconstruct the file. This happens with very recent uploads that are still processing, or with actions that have expired.
  1. Wait a few minutes after upload before you attempt a download.
  2. Verify the action status with client.Blockchain.Action.getAction(actionId).
  3. Check that state === "ACTION_STATE_DONE".

Private file access denied

A wallet that did not upload a private file cannot download it.
Only the wallet that uploaded the file can download it when isPublic: false. Connect with the wallet that created the action.

Automatic refunds

The storage fee is escrowed on chain when you register an action. The protocol refunds it to your wallet automatically in two cases.
  • The upload fails and the action ends in a failed state.
  • The action expires because no SuperNode finalized it before its expirationTime.
You do not file a claim or send another transaction. The refund is part of the protocol.

Built-in retries

The SDK retries failed HTTP requests with exponential backoff, which doubles the wait after each attempt. The defaults are listed below. You can override the defaults when you create the client.
File uploads and downloads skip automatic retries because the request body or response stream can only be consumed once. The SDK retries everything else automatically, such as status checks and metadata queries.

Task options and status polling

SuperNodes process upload and download tasks asynchronously. The SDK polls the task status until the task completes, then returns the result. Two settings control the polling.
If an upload times out, the task may still be processing on the SuperNode. Do not retry immediately or you may create a duplicate action on chain.

Getting help

Next steps

Upload lifecycle

See every phase of an upload in detail.

Download lifecycle

Learn how files are reconstructed and streamed back.