Portal Community
CFG_MISSING_NETWORK / CFG_INVALID_NETWORK
Either network wasn't supplied on an operation that requires it (account.getBalance, utility.chainInfo), or its value doesn't match a known key.
Fix: Supply network explicitly — there's no default. Confirm spelling exactly: centrifuge / altair / development (case-insensitive, but must otherwise match). See Networks.
VAL_INVALID_SS58_ADDRESS
The supplied address failed Base58 decoding or its Blake2b-512 checksum.
Fix: Run utility.validateAddress (see Address Operations) on any user-supplied address before using it elsewhere.
VAL_NETWORK_MISMATCH
The address decoded fine, but its embedded SS58 prefix doesn't match the network you selected — e.g. passing an Altair-prefixed (136) address while network=centrifuge (36).
Fix: Either select the network matching the address's actual prefix, or re-encode the address first with utility.convertAddress.
Stale data from a halted chain
Centrifuge mainnet has produced no block since 2026-06-28. Every read against network=centrifuge still succeeds — it just reflects state frozen at that head.
Fix: Check headBlockAgeSeconds from utility.chainInfo before trusting a read as current. See Examples.
CHAIN_RPC_UNAVAILABLE / CHAIN_TIMEOUT
The Substrate node's HTTP endpoint refused the connection, or didn't respond within the 30-second client timeout.
Fix: Confirm the network's endpoint is reachable from your host; for development, confirm a local node is actually running on 127.0.0.1:9933.
CHAIN_DECODE_FAILED
The RPC response couldn't be parsed — either the JSON body was malformed, or (for account.getBalance) the returned System.Account storage bytes were shorter than the expected AccountInfo layout.
Fix: This usually indicates a runtime upgrade changed the account storage layout. Cross-check specVersion from utility.chainInfo against what this integration was built against.
VAL_INVALID_DECIMALS / VAL_INVALID_AMOUNT / VAL_INVALID_UNIT (convertUnits)
decimals outside 0–38, a non-numeric amount, or fromUnit/toUnit both resolving to the same base-vs-display sense (e.g. both "base" and "planck", which are synonyms).
Fix: Double-check the currency's real decimals (see Currencies & Units) and that fromUnit/toUnit represent opposite sides of the base/display divide.
VAL_INVALID_INTEREST_RATE (convertRate)
Missing rate/direction, an unrecognized direction value, a negative APR, or a perSecToApr input below RAY (1027) — which would imply negative interest.
Fix: Confirm direction is exactly aprToPerSec or perSecToApr, and that the rate you're converting is non-negative / not below RAY as appropriate.
CHAIN_SIGNING_NOT_AVAILABLE
You attempted a write operation (e.g. an account transfer). No such operation is exposed by this node's routing today — sr25519 extrinsic signing has no viable production-grade .NET implementation yet.
Fix: See Roadmap for what's planned and why it isn't here yet.