hasura/graphql-engine · error · CompatibilityError
compatibility date {specified} is too old, oldest supported
Error message
compatibility date {specified} is too old, oldest supported date is {oldest} What it means
The requested compatibility date precedes the oldest supported compatibility date ({oldest}). The engine cannot emulate behavior older than the earliest entry it ships.
Source
Thrown at v3/crates/compatibility/src/config.rs:31
#[derive(Clone, Debug, PartialEq, serde::Serialize, opendds_derive::OpenDd)]
#[serde(rename_all = "camelCase")]
#[serde(deny_unknown_fields)]
#[opendd(json_schema(id = "v2/CompatibilityConfig"))]
/// The compatibility configuration of the Hasura metadata.
pub struct CompatibilityConfigV2 {
/// Any backwards incompatible changes made to Hasura DDN after this date won't impact the metadata.
pub date: CompatibilityDate,
// TODO: add flags.
}
#[derive(Debug, PartialEq, thiserror::Error)]
pub enum CompatibilityError {
#[error("no compatibility config found")]
NoCompatibilityConfigFound,
#[error("duplicate compatibility config found")]
DuplicateCompatibilityConfig,
#[error("compatibility date {specified} is too old, oldest supported date is {oldest}")]
DateTooOld {
specified: CompatibilityDate,
oldest: CompatibilityDate,
},
#[error("compatibility date {0} is in the future")]
DateInTheFuture(CompatibilityDate),
}
View on GitHub (pinned to 724551b9ae)
Solutions
- Change the project's compatibility date to {oldest} or later
- Fix typos in the specified date (check {specified})
- Upgrade the engine version to one with older compatibility entries if old behavior is truly required
Example fix
// before compatibility_date = "2020-01-01" // after compatibility_date = "2023-01-01" // >= oldest supported date
Defensive patterns
Strategy: validation
Validate before calling
if (specifiedDate < oldestSupportedDate) throw new Error('compatibility date too old'); Prevention
- Pin compatibility dates to release dates of the engine you use
- Lint for suspiciously old dates
When it happens
Trigger: A project specifies a compatibility date earlier than the earliest bundled compatibility config entry.
Common situations: Typo in the compatibility date (wrong year); importing an old project with a date before the oldest supported release; downgrading the engine while keeping a recent config.
Related errors
- compatibility date {0} is in the future
- no compatibility config found
- duplicate compatibility config found
- cannot create migrations directory: %w
- cannot create seeds directory: %w
AI-assisted analysis of hasura/graphql-engine@724551b9ae (2026-08-28).
Data as JSON: /api/errors/59ae1f6a7d2f09c7.
Report an issue: GitHub.