{"record":{"id":"c500c22d6d4fb8eb","repo":"risingwavelabs/risingwave","slug":"0-has-been-deprecated-please-use-1-instead-c500c2","errorCode":null,"errorMessage":"{0} has been deprecated, please use {1} instead.","messagePattern":"(.+?) has been deprecated, please use (.+?) instead\\.","errorType":"error_code","errorClass":"MetaError","httpStatus":null,"severity":"warning","filePath":"src/meta/src/error.rs","lineNumber":138,"sourceCode":"        #[backtrace]\n        SinkError,\n    ),\n\n    #[error(transparent)]\n    Internal(\n        #[from]\n        #[backtrace]\n        anyhow::Error,\n    ),\n\n    // Indicates that recovery was triggered manually.\n    #[error(\"adhoc recovery triggered\")]\n    AdhocRecovery,\n\n    #[error(\"Integrity check failed\")]\n    IntegrityCheckFailed,\n\n    #[error(\"{0} has been deprecated, please use {1} instead.\")]\n    Deprecated(String, String),\n\n    #[error(transparent)]\n    NotImplemented(#[from] NotImplemented),\n\n    #[error(\"Secret error: {0}\")]\n    SecretError(\n        #[from]\n        #[backtrace]\n        SecretError,\n    ),\n}\n\nimpl MetaError {\n    /// Provide the Postgres error code for the error.\n    fn provide_postgres_error_code(&self, request: &mut std::error::Request<'_>) {\n        match self.inner() {\n            MetaErrorInner::CatalogIdNotFound { .. } => {","sourceCodeStart":120,"sourceCodeEnd":156,"githubUrl":"https://github.com/risingwavelabs/risingwave/blob/6469eb736d691e8e9b8a419a57edd6429ca77417/src/meta/src/error.rs#L120-L156","documentation":"MetaError::Deprecated(String, String) reports that a deprecated API/feature has been used, and names the replacement: `{0} has been deprecated, please use {1} instead.` The meta service uses this to reject or warn about legacy RPC endpoints/fields that have been replaced by newer ones, guiding clients to migrate.","triggerScenarios":"A client (CLI, dashboard, old SDK) calls a deprecated meta RPC or passes a deprecated request field that the meta node's handler layer checks and rejects.","commonSituations":"Operating an older risingwave CLI/dashboard against a newer cluster; automation scripts still invoking renamed/removed admin APIs; skipping upgrade notes when rolling forward the cluster.","solutions":["Read the error message: it names the exact replacement API to use","Migrate the caller to the suggested new API/field","Upgrade the risingwave CLI/dashboard or client library to a version matching the cluster","Check release notes for the deprecation notice"],"exampleFix":"// before\nclient.deprecated_list_tables(req).await?;\n// after\nclient.list_tables(req).await?; // renamed API per deprecation notice","handlingStrategy":"type-guard","validationCode":null,"typeGuard":"fn is_deprecation(e: &MetaError) -> Option<(&str, &str)> {\n    match e {\n        MetaError::Deprecated(old, new) => Some((old, new)),\n        _ => None,\n    }\n}","tryCatchPattern":"match result {\n    Err(MetaError::Deprecated(old, new)) => {\n        tracing::warn!(\"{old} is deprecated, migrating to {new}\");\n        call_new_api(new)\n    }\n    r => r,\n}","preventionTips":["Keep client tooling (CLI/dashboard/SDK) on versions matching the cluster","Read release notes for deprecations before upgrading","Automate checks for deprecated RPC usage in scripts"],"tags":["deprecation","api","meta-node"],"backgroundTag":"deprecated-api-usage","analyzedSha":"6469eb736d691e8e9b8a419a57edd6429ca77417","analyzedAt":"2026-09-11T21:06:21.487Z","contentChangedAt":"2026-09-11T21:06:21.487Z","schemaVersion":2},"datasetVersion":"2026-09-23T08:17:48.524Z"}