openai/codex · error · anyhow::Error
invalid unix timestamp millis: {value}
Error message
invalid unix timestamp millis: {value} What it means
Error "invalid unix timestamp millis: {value}" thrown in openai/codex.
Source
Thrown at codex-rs/state/src/model/thread_metadata.rs:671
pub(crate) fn datetime_to_epoch_millis(dt: DateTime<Utc>) -> i64 {
dt.timestamp_millis()
}
pub(crate) fn datetime_to_epoch_seconds(dt: DateTime<Utc>) -> i64 {
dt.timestamp()
}
pub(crate) fn epoch_millis_to_datetime(value: i64) -> Result<DateTime<Utc>> {
// Values older than 2020 if interpreted as milliseconds are legacy second-precision rows.
// Convert them in memory so old state DBs keep ordering correctly after new writes use ms.
const MIN_EPOCH_MILLIS: i64 = 1_577_836_800_000;
let millis = if value < MIN_EPOCH_MILLIS {
value.saturating_mul(1000)
} else {
value
};
DateTime::<Utc>::from_timestamp_millis(millis)
.ok_or_else(|| anyhow::anyhow!("invalid unix timestamp millis: {value}"))
}
pub(crate) fn epoch_seconds_to_datetime(value: i64) -> Result<DateTime<Utc>> {
DateTime::<Utc>::from_timestamp(value, 0)
.ok_or_else(|| anyhow::anyhow!("invalid unix timestamp seconds: {value}"))
}
/// Statistics about a backfill operation.
#[derive(Debug, Clone)]
pub struct BackfillStats {
/// The number of rollout files scanned.
pub scanned: usize,
/// The number of rows upserted successfully.
pub upserted: usize,
/// The number of rows that failed to upsert.
pub failed: usize,
}
View on GitHub (pinned to 339751715c)
When it happens
Trigger: Thrown at codex-rs/state/src/model/thread_metadata.rs:671 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of openai/codex@339751715c (2026-08-25).
Data as JSON: /api/errors/ffbbef41ed14797d.
Report an issue: GitHub.