Skip to content

Prophet fails with OutOfBoundsDatetime on dates outside datetime64[ns] range #2689

@ritvikgupta199

Description

@ritvikgupta199

Summary

Prophet crashes when processing dates outside the datetime64[ns] range, even though these dates could be valid with lower precision datetime types.

Expected Behavior

Prophet should either:

  1. Handle dates gracefully by using appropriate precision, or
  2. Provide a clear error message about supported date ranges

Actual Behavior

Prophet crashes with OutOfBoundsDatetime exception.

Minimal Reproduction

from prophet import Prophet
import pandas as pd

# Prophet crashes on dates outside datetime64[ns] range
df = pd.DataFrame({
    'ds': ['3969-12-02', '3969-12-03'],
    'y': [1.0, 2.0]
})

model = Prophet()
model.fit(df)  # Fails with OutOfBoundsDatetime

Error Output

pandas._libs.tslibs.np_datetime.OutOfBoundsDatetime: Out of bounds nanosecond timestamp: 3969-12-02, at position 0

Root Cause

The issue occurs in forecaster.py:1136:
self.history_dates = pd.to_datetime(pd.Series(df['ds'].unique(), name='ds')).sort_values()

Prophet internally converts all datetime inputs to datetime64[ns] regardless of the input format or required precision. This hardcoded conversion fails for dates outside the nanosecond timestamp range.

Environment

  • Prophet version: 1.1.7
  • Pandas version: 2.3.1
  • Python version: 3.12.9

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions