risingwavelabs/risingwave · error · BackupError
MetaStorage error: {0}
Error message
MetaStorage error: {0} What it means
`BackupError::MetaStorage` wraps an underlying error from the meta storage backend encountered during backup or restore. Backup/restore reads and writes metadata snapshots in the meta store; failures there are boxed into this variant with the original error preserved as source and backtrace.
Source
Thrown at src/storage/backup/src/error.rs:28
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
use risingwave_common::error::BoxedError;
use thiserror::Error;
pub type BackupResult<T> = Result<T, BackupError>;
#[derive(Error, Debug)]
pub enum BackupError {
#[error("BackupStorage error: {0}")]
BackupStorage(
#[backtrace]
#[source]
BoxedError,
),
#[error("MetaStorage error: {0}")]
MetaStorage(
#[backtrace]
#[source]
BoxedError,
),
#[error("StateStorage error: {0}")]
StateStorage(
#[backtrace]
#[source]
BoxedError,
),
#[error("Encoding error: {0}")]
Encoding(
#[backtrace]
#[source]
BoxedError,
),
#[error("Decoding error: {0}")]View on GitHub (pinned to 6469eb736d)
Solutions
- Check the wrapped source error to identify which meta store operation failed.
- Verify the meta store service is running and reachable from the meta node.
- Retry the backup/restore after the meta store recovers; investigate persistence layer logs.
Defensive patterns
Strategy: try-catch
Validate before calling
// Verify meta store connectivity before backup/restore // e.g. etcd client health check let healthy = etcd_client.status().await.is_ok(); debug_assert!(healthy, "meta store must be reachable before backup");
Try / catch
match restore_backup().await {
Err(e @ BackupError::MetaStorage(_)) => {
tracing::error!(source = ?e.source(), "meta store failure during restore");
// alert and retry after meta store recovers
}
other => other?,
} Prevention
- Monitor meta store (etcd) health and latency.
- Schedule backups during periods of meta store stability.
- Avoid running meta backup/restore while the meta store is under heavy load or upgrade.
When it happens
Trigger: During `meta_backup` snapshot creation or restore: a failed meta store read/write (e.g. get latest snapshot, list/version checks, writing snapshot data into the meta store).
Common situations: Meta store (e.g. etcd/memory backend) unavailable or unhealthy; restore run against a meta store with connectivity problems; transient DB errors during long backup jobs.
Related errors
- BackupStorage error: {0}
- Meta storage is not empty before being restored
- concurrent backup job is not supported: existent job {}
- too many existent meta snapshots, expect at most {}
- inconsistent hummock version: expected {}, actual {}
AI-assisted analysis of risingwavelabs/risingwave@6469eb736d (2026-09-11).
Data as JSON: /api/errors/3b36922c84a4617f.
Report an issue: GitHub.