Before you troubleshoot
Check these basics first:- Use a supported Node.js version. The documentation examples and repository use Node.js 22.
- Confirm the package version in your project matches the version documented in
package.json. - Use Sepolia or another supported testnet while developing.
- Keep API keys and wallet private keys in server-side environment variables.
- Confirm the parent ENS name is configured for the operation you are attempting.
Authentication errors
401 or 403 from the Offchain API
The API key is missing, expired, or does not authorize the parent name.
- Generate or copy the key in the Namespace App.
- Confirm your server loaded
NAMESPACE_API_KEY. - Use an address-based key as
defaultApiKey, or map a domain-based key to the exact parent name. - Do not expose the key in browser code or commit it to source control.
Subname creation errors
The subname already exists
CallisSubnameAvailable and await the result before creating a subname:
updateSubname explicitly instead of relying on create behavior.
Records fail validation
- Use a complete, valid address for the selected
ChainName. - Use the label only in
label; do not pass the full subname. - Pass the parent separately in
parentName. - Follow ENSIP-15 normalization rules for labels.
Minting errors
canMint is false
Inspect validationErrors from getMintDetails. Common causes include an unavailable label, a missing whitelist entry, a reserved name, or a wallet that does not meet the listing rules.
The transaction simulation fails
Confirm all of the following:- The wallet client and public client use the same chain.
- The parent name is activated and listed for that chain.
- The wallet has enough native currency for the mint price and gas.
- You pass the
valuereturned bygetMintTransactionParametersunchanged. - You generated the transaction parameters immediately before simulation so price and signature data are current.
Resolution errors
An offchain subname does not resolve
- Confirm the subname exists in the Namespace App.
- Confirm the parent name uses the Namespace Hybrid resolver.
- Check that the consuming wallet or app supports CCIP Read.
- Test the name through Resolvio to separate resolver issues from client integration issues.
An address or text record is missing
Fetch the subname directly and inspect its stored records. Make sure you used the correct chain and text-record key. Record keys are case-sensitive.Network and RPC errors
- Confirm the RPC endpoint supports the chain used by the wallet and public clients.
- Check the provider dashboard for rate limiting or an invalid token.
- Avoid mixing mainnet parent names with testnet configuration.
- Retry transient
429and5xxerrors with bounded exponential backoff.
Get more help
When asking for support, include the SDK package and version, network, parent name, method name, and complete error message. Remove API keys, RPC tokens, wallet private keys, and other secrets.Namespace Builders on Telegram
Ask an integration question and include the non-sensitive diagnostic details listed above.

