{"record":{"id":"bda18be8d992f40c","repo":"linera-io/linera-protocol","slug":"the-state-of-the-client-is-incompatible-with-the-p","errorCode":null,"errorMessage":"The state of the client is incompatible with the proposed block: Client state already has a pending block; use the `linera retry-pending-block` command to commit that first","messagePattern":"The state of the client is incompatible with the proposed block: Client state already has a pending block; use the `linera retry-pending-block` command to commit that first","errorType":"validation","errorClass":"ChainClientError","httpStatus":null,"severity":"error","filePath":"linera-core/src/client/chain_client/mod.rs","lineNumber":1635,"sourceCode":"            )\n            .chain(operations.into_iter().map(Transaction::ExecuteOperation))\n            .collect::<Vec<_>>())\n    }\n\n    /// Creates a new pending block and stores it in `proposal_guard`.\n    ///\n    /// The caller must hold the proposal mutex. The pending proposal is written directly\n    /// into the guard so that it is always synchronized with the mutex.\n    #[instrument(level = \"trace\", skip(transactions, blobs, proposal_guard))]\n    async fn new_pending_block(\n        &self,\n        transactions: Vec<Transaction>,\n        blobs: Vec<Blob>,\n        proposal_guard: &mut Option<PendingProposal>,\n    ) -> Result<Block, Error> {\n        let identity = self.identity().await?;\n\n        ensure!(\n            proposal_guard.is_none(),\n            Error::BlockProposalError(\n                \"Client state already has a pending block; \\\n                use the `linera retry-pending-block` command to commit that first\"\n            )\n        );\n        let info = self.chain_info().await?;\n        let timestamp = self.next_timestamp(&transactions, info.timestamp);\n        let proposed_block = ProposedBlock {\n            epoch: info.epoch,\n            chain_id: self.chain_id,\n            transactions,\n            previous_block_hash: info.block_hash,\n            height: info.next_block_height,\n            authenticated_owner: Some(identity),\n            timestamp,\n        };\n","sourceCodeStart":1617,"sourceCodeEnd":1653,"githubUrl":"https://github.com/linera-io/linera-protocol/blob/6c226ddcb332ef55118dc8d0aafbd093d5420899/linera-core/src/client/chain_client/mod.rs#L1617-L1653","documentation":"Error \"The state of the client is incompatible with the proposed block: Client state already has a pending block; use the `linera retry-pending-block` command to commit that first\" thrown in linera-io/linera-protocol.","triggerScenarios":"A new block proposal is made while the client state still holds an uncommitted pending block.","commonSituations":"A previous proposal failed to commit (e.g. network issue); resolve it with `linera retry-pending-block` before proposing again.","solutions":["Run `linera retry-pending-block` to commit the existing pending block, then retry the new block proposal.","If the pending block is no longer desired, clear it with `linera clear-pending-block` (after confirming it can be discarded) before proposing again.","Avoid starting a second proposal while a previous one is still pending; wait for or resolve the first proposal."],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"6c226ddcb332ef55118dc8d0aafbd093d5420899","analyzedAt":"2026-08-22T22:49:09.787Z","schemaVersion":2},"datasetVersion":"2026-08-23T01:17:44.959Z"}