influxdata/influxdb · error · Error

deserializing show tables

Error message

deserializing show tables: {0}

What it means

Variant of the `influxdb3 show system` command's Error enum raised when the JSON returned by the server for a system-table query cannot be deserialized into the expected typed structure; the serde_json::Error is attached as #[source].

Solutions

  1. Check the chained serde_json::Error to see which field/type failed to deserialize.
  2. Ensure CLI and server versions match; upgrade one or both.
  3. Bypass proxies and confirm the raw endpoint response with curl to see the actual body.
  4. Retry the command; if consistent across matching versions, file an issue.
Defensive patterns

Strategy: try-catch

Validate before calling

null

Type guard

null

Try / catch

match result {
    Err(Error::DeserializingShowTables(src)) => {
        eprintln!("unexpected system-table JSON: {src}; check CLI/server version match");
    }
    ...
}

Prevention

When it happens

Trigger: `influxdb3 show system` receives a 2xx response whose body is not the expected JSON schema — e.g. server/client version mismatch, a proxy returning HTML, or an error body parsed as data.

Common situations: Older CLI against newer server (or vice versa) where system table columns changed, a reverse proxy intercepting requests, or the endpoint returning an error message instead of the table payload.

Understand the failure class

Background: "failed to unmarshal" / json.Unmarshal errors: why parsing a response into a Go struct fails and how to fix it — this error's family across 23 libraries.

Related errors


AI-assisted analysis of influxdata/influxdb@06200ef96b (2026-09-19). Data as JSON: /api/errors/df1d287c34956500. Report an issue: GitHub.

Appendix: source

Thrown at influxdb3/src/commands/show/system.rs:15

use std::path::PathBuf;

use clap::Parser;
use influxdb3_client::Client;
use secrecy::ExposeSecret;
use serde::Deserialize;

use super::super::common::{Format, InfluxDb3Config};

#[derive(Debug, thiserror::Error)]
pub(crate) enum Error {
    #[error("client error: {0}")]
    InfluxDB3Client(#[from] influxdb3_client::Error),

    #[error("deserializing show tables: {0}")]
    DeserializingShowTables(#[source] serde_json::Error),

    #[error("system table '{0}' not found: {1}")]
    SystemTableNotFound(String, SystemTableNotFound),

    #[error("parquet format is not supported for this command")]
    ParquetFormatNotSupported,
}

pub(super) type Result<T> = std::result::Result<T, Error>;

#[derive(Debug, Parser)]
#[clap(visible_alias = "s", trailing_var_arg = true)]
pub struct SystemConfig {
    #[clap(subcommand)]
    subcommand: SubCommand,

    /// Common InfluxDB 3 Core config

View on GitHub (pinned to 06200ef96b)