{"record":{"id":"5670675ba4f90cb3","repo":"linera-io/linera-protocol","slug":"invalid-chain-description-data-for-chain-chain-id","errorCode":null,"errorMessage":"Invalid chain description data for chain {chain_id}","messagePattern":"Invalid chain description data for chain (.+?)","errorType":"exception","errorClass":"async_graphql::Error","httpStatus":null,"severity":"error","filePath":"linera-faucet/server/src/lib.rs","lineNumber":714,"sourceCode":"                e\n            );\n            Error::new(format!(\n                \"Storage error while reading chain description: {e}\"\n            ))\n        })?\n        .ok_or_else(|| {\n            tracing::error!(\"Chain description blob not found for chain {}\", chain_id);\n            Error::new(format!(\"Chain description not found for chain {chain_id}\"))\n        })?;\n\n    // Deserialize the chain description from the blob bytes\n    let description = bcs::from_bytes::<ChainDescription>(blob.bytes()).map_err(|e| {\n        tracing::error!(\n            \"Failed to deserialize chain description for {}: {}\",\n            chain_id,\n            e\n        );\n        Error::new(format!(\n            \"Invalid chain description data for chain {chain_id}\"\n        ))\n    })?;\n\n    Ok(description)\n}\n\nimpl<C> BatchProcessor<C>\nwhere\n    C: ClientContext + 'static,\n{\n    /// Creates a new batch processor.\n    fn new(\n        config: BatchProcessorConfig,\n        context: Arc<Mutex<C>>,\n        client: ChainClient<C::Environment>,\n        faucet_storage: Arc<FaucetDatabase>,\n        pending_requests: Arc<Mutex<VecDeque<PendingRequest>>>,","sourceCodeStart":696,"sourceCodeEnd":732,"githubUrl":"https://github.com/linera-io/linera-protocol/blob/6c226ddcb332ef55118dc8d0aafbd093d5420899/linera-faucet/server/src/lib.rs#L696-L732","documentation":"The ChainDescription blob was found, but `bcs::from_bytes::<ChainDescription>(blob.bytes())` failed: the bytes stored at that blob ID are not a valid BCS-encoded ChainDescription. The faucet logs the underlying BCS error as `Failed to deserialize chain description for <chain>: <err>`. This points to corruption at rest or a serialization-format mismatch between writer and reader, not a network or availability problem.","triggerScenarios":"Storage-level corruption of the blob bytes; a blob written by an incompatible Linera version whose ChainDescription BCS layout changed; a wrong-type or manually injected blob occupying that BlobId; truncated writes from an unclean shutdown.","commonSituations":"Upgrading faucet/wallet across protocol versions with old blobs still in storage; restoring blobs from a different network or epoch; buggy migration scripts or manual tampering writing blobs under computed IDs; disk-level corruption.","solutions":["Check the faucet log for the exact BCS error to distinguish truncation from a type/layout mismatch","Ensure faucet, wallet, and node run the same Linera version (verify via the `version` query) so writers and readers agree on the format","If the blob is genuinely corrupt, remove the stale owner mapping or reset the faucet's records so owners can re-claim, or restore the blob from a known-good backup","Reproduce against a copy of the storage before deleting anything"],"exampleFix":null,"handlingStrategy":"try-catch","validationCode":null,"typeGuard":"fn is_invalid_chain_description(msg: &str) -> bool { msg.starts_with(\"Invalid chain description data for chain\") }","tryCatchPattern":"Catch the claim error; on `Invalid chain description data for chain <id>`, do not retry — the stored blob cannot be decoded. Capture the chain ID and the faucet's `version` and escalate to the operator; the fix is restoring/removing the corrupt blob or realigning versions server-side.","preventionTips":["Run faucet, wallet, and node on the same Linera version so BCS layouts match","Do not hand-edit or inject blobs into faucet storage","Restore blobs and claim records from the same backup snapshot","After cross-version upgrades, probe a known chain's `claim` before reopening traffic"],"tags":["deserialization","bcs","corruption","version-mismatch","storage","faucet","linera"],"backgroundTag":"deserialization-failed","analyzedSha":"6c226ddcb332ef55118dc8d0aafbd093d5420899","analyzedAt":"2026-08-22T22:49:09.787Z","schemaVersion":2},"datasetVersion":"2026-08-23T01:17:44.959Z"}