{"record":{"id":"93c1ab94d8c65914","repo":"linera-io/linera-protocol","slug":"the-chain-client-isn-t-owner-on-chain-0","errorCode":null,"errorMessage":"The chain client isn't owner on chain {0}","messagePattern":"The chain client isn't owner on chain (.+?)","errorType":"validation","errorClass":"ChainClientError","httpStatus":null,"severity":"error","filePath":"linera-core/src/client/chain_client/mod.rs","lineNumber":827,"sourceCode":"    ///\n    /// Returns the chain info if the owner can propose on this chain (either because they are\n    /// an owner, or because `open_multi_leader_rounds` is enabled).\n    #[instrument(level = \"trace\")]\n    pub async fn prepare_for_owner(&self, owner: AccountOwner) -> Result<Box<ChainInfo>, Error> {\n        ensure!(\n            self.has_key_for(&owner).await?,\n            Error::CannotFindKeyForChain(self.chain_id)\n        );\n        // Ensure we have the chain description blob.\n        self.client\n            .get_chain_description_blob(self.chain_id)\n            .await?;\n\n        // Get chain info.\n        let info = self.chain_info().await?;\n\n        // Validate that the owner can propose on this chain.\n        ensure!(\n            info.manager\n                .ownership\n                .can_propose_in_multi_leader_round(&owner),\n            Error::NotAnOwner(self.chain_id)\n        );\n\n        Ok(info)\n    }\n\n    /// Prepares the chain for the next operation, i.e. makes sure we have synchronized it up to\n    /// its current height.\n    #[instrument(level = \"trace\")]\n    pub async fn prepare_chain(&self) -> Result<Box<ChainInfo>, Error> {\n        #[cfg(with_metrics)]\n        let _latency = super::metrics::PREPARE_CHAIN_LATENCY.measure_latency();\n\n        let mut info = self.synchronize_to_known_height().await?;\n","sourceCodeStart":809,"sourceCodeEnd":845,"githubUrl":"https://github.com/linera-io/linera-protocol/blob/6c226ddcb332ef55118dc8d0aafbd093d5420899/linera-core/src/client/chain_client/mod.rs#L809-L845","documentation":"Error \"The chain client isn't owner on chain {0}\" thrown in linera-io/linera-protocol.","triggerScenarios":"An owner-only operation is requested on a chain where the client's identity is not an owner.","commonSituations":"Attempting to propose a block or execute an owner-gated command with a wallet that holds no ownership of the chain.","solutions":["Ensure the client owns (or co-owns) chain {0}: use `linera open-chain` with the appropriate owner, or switch to a wallet that owns the chain.","If the operation requires ownership, delegate or transfer ownership first; otherwise use a read-only variant of the operation.","Verify you are using the intended wallet/default chain (`linera wallet show`, `linera set-default`)."],"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"}