nautechsystems/nautilus_trader · error · anyhow::Error
Column '{column_name}' not found or has no Int64 statistics
Error message
Column '{column_name}' not found or has no Int64 statistics in any row group. What it means
After scanning all row groups, if no Int64 min/max statistics were found for the requested column at all, min_max_from_parquet_metadata_object_store bails with this message. It means the (column, statistics) pair was never observed, so file bounds cannot be derived.
Source
Thrown at crates/persistence/src/parquet.rs:472
"Warning: Statistics not available for column '{column_name}' in row group {i}."
);
}
}
}
}
// Return the min/max pair if both are available
if let (Some(min), Some(max)) = (overall_min_value, overall_max_value) {
Ok((
u64::try_from(min).map_err(|_| {
anyhow::anyhow!("Negative minimum value {min} for column '{column_name}'")
})?,
u64::try_from(max).map_err(|_| {
anyhow::anyhow!("Negative maximum value {max} for column '{column_name}'")
})?,
))
} else {
anyhow::bail!(
"Column '{column_name}' not found or has no Int64 statistics in any row group."
)
}
}
/// Creates an object store from a URI string with optional storage options.
///
/// Supports multiple cloud storage providers:
/// - AWS S3: `s3://bucket/path`
/// - Google Cloud Storage: `gs://bucket/path` or `gcs://bucket/path`
/// - Azure Blob Storage: `az://account/container/path` or `abfs://container@account.dfs.core.windows.net/path`
/// - HTTP/WebDAV: `http://` or `https://`
/// - Local files: `file://path` or plain paths
///
/// # Parameters
///
/// - `path`: The URI string for the storage location.
/// - `storage_options`: Optional `HashMap` containing storage-specific configuration options:View on GitHub (pinned to 18893faf8b)
Solutions
- Check the file schema (e.g. via parquet-tools or arrow schema) and pass the exact timestamp column name.
- Rewrite the file with an int64 timestamp column and enabled statistics.
- Verify the file belongs to the expected data type whose schema contains the requested column.
- Fall back to reading the data to compute bounds manually, then reset names outside this helper.
Example fix
// before catalog.reset_file_names(&dir, "ts_init")?; // after — use the actual column name in the schema catalog.reset_file_names(&dir, "ts_init_ns")?;
Defensive patterns
Strategy: validation
Validate before calling
let schema = reader.metadata()?.file_metadata().schema();
if schema.column_with_name(timestamp_column).is_none() {
eprintln!("column '{timestamp_column}' not in schema; check the exact name");
} Try / catch
match min_max_from_parquet_metadata(meta, timestamp_column) {
Err(e) if e.to_string().contains("not found or has no Int64 statistics") => {
// inspect the file schema and retry with the correct column
}
other => other?,
} Prevention
- Confirm the column name against the file schema before resetting names.
- Keep catalog schemas stable across versions; migrate column renames explicitly.
- Only reset names on files produced by the nautilus writer with expected schemas.
When it happens
Trigger: Calling reset_file_names / min_max_from_parquet_metadata with a column name absent from the schema or that only ever carries non-Int64 statistics across every row group.
Common situations: Typo in the timestamp column name; catalogs written with a different schema (renamed column); files whose timestamp column is stored as a non-int64 type in every row group.
Understand the failure class
Background: 'Could not be found', 'does not exist', 'not found in database': the resource-not-found family when an ID, slug, key, or URI lookup comes back empty — this error's family across 20 libraries.
Related errors
- Warning: Column name '{column_name}' is not of type i64.
- Warning: Statistics not available for column '{column_name}'
- Negative minimum value {min} for column '{column_name}'
- Negative maximum value {max} for column '{column_name}'
- `calculate_from_returns` {IMPL_ERR} `{}`
AI-assisted analysis of nautechsystems/nautilus_trader@18893faf8b (2026-09-08).
Data as JSON: /api/errors/1921db839a910884.
Report an issue: GitHub.