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
- Check the chained serde_json::Error to see which field/type failed to deserialize.
- Ensure CLI and server versions match; upgrade one or both.
- Bypass proxies and confirm the raw endpoint response with curl to see the actual body.
- 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
- Keep influxdb3 CLI and server versions aligned.
- Access the server directly rather than through HTML-returning proxies.
- Inspect raw endpoint responses when upgrading between versions.
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
- Failed to deserialize table index
- failed to serialize the request body
- JSON serialization/deserialization failed
- JSON serialization/deserialization failed
- serde_json error
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 configView on GitHub (pinned to 06200ef96b)