Enum BlockNodeExceptionCode
The status codes returned by a BlockNodeException, identifying the underlying failure condition reported by (or detected while communicating with) a Hiero Block Node.
Namespace: Hiero
Assembly: Hiero.dll
Syntax
[Experimental("HIERO001", UrlFormat = "https://github.com/bugbytesinc/Hiero/blob/main/docs/blocknode-client-plan.md")]
public enum BlockNodeExceptionCode
Fields
| Name | Description |
|---|---|
| BadBlockProof | The block node could not verify the published block's proof. Permanent for that attempt — resend the block with a valid proof. |
| CommunicationError | A network-level gRPC failure not covered by a more specific code. Transient — retry. |
| DuplicateBlock | The block node reported the published block as a duplicate of one it already holds. Permanent for that block — resume publishing after the node's last acknowledged block. |
| InvalidEndBlockNumber | The requested ending block number was rejected by the block node. Permanent — adjust the end. |
| InvalidRequest | The block node rejected the request as malformed or inconsistent. Permanent — correct the request before retrying. |
| InvalidStartBlockNumber | The requested starting block number was rejected by the block node. Permanent — adjust the start. |
| NotAvailable | The requested block or range is outside the span of blocks
this node holds (it may have been pruned, or not yet
produced). Check |
| NotImplemented | The block node does not implement the requested API. Block nodes serve different subsets of the Block Node APIs — the HIP-1137 registry advertises which ones each endpoint offers, and proof and state-snapshot services in particular are absent from many deployments. Permanent for this node — query a node that advertises the API instead. A node that serves its status API on a separate endpoint needs StatusUri set before it can be subscribed to. |
| PersistenceFailed | The block node failed to persist a published block. Transient — the publisher may reconnect and resend. |
| ServerError | The block node reported an internal error, or returned a status code unknown to this client. Transient — the request may be retried, possibly against another node. |
| StreamGapDetected | The client detected a gap in the unverified block stream
(a completed block arrived with a number that does not
contiguously follow the last delivered block) and the
subscription's gap policy is |
| Timeout | The block node timed out an in-progress publish stream. Transient — reconnect and resume from the last acknowledged block. |
| Unavailable | The block node is not reachable at this time. Transient — retry after a delay. |
| Unverifiable | A block could not be checked at the requested verification level: it is well formed, but holds content this SDK cannot hash with certainty — filtered or redacted items, or item types newer than this SDK build — so a recomputed root could disagree with the network's without the block being wrong. Distinct from VerificationFailed, which means the block's data does not verify. Permanent for this block — retrying returns the same bytes. Lower the verification level to accept the block unchecked, or use a newer SDK. |
| VerificationFailed | A block failed hash-chain verification: its recomputed merkle root does not chain from the preceding verified block (or a checkpoint). Permanent for this node and block — retrying returns the same bytes; the data itself does not verify. Obtain the block from another node or investigate. |