Skip to content

jetstream rerun ... with an experiment with a specified end_date always fails with jetstream.errors.EndedException #3276

Description

@ncalexan

This simply doesn't make sense: here we set the end_date to the experiment's end_date + 1 day and generate dates including the date beyond the experiment's end_date:

jetstream/jetstream/cli.py

Lines 371 to 375 in 46c7f36

if config.experiment.end_date:
end_date = config.experiment.end_date + timedelta(days=1)
end_date = min(end_date, today)
run_dates = inclusive_date_range(config.experiment.start_date, end_date)

And here we fail once we're past the experiment's end_date:
if (
current_date
and self.config.experiment.end_date
and self.config.experiment.end_date < current_date
):
print(f"Experiment is over: {current_date} past {self.config.experiment.end_date}")
raise errors.EndedException(self.config.experiment.normandy_slug)

The exception looks like:

INFO:2026-06-23 14:29:11,536:jetstream.analysis:Analysis.run invoked at 2026-06-23 21:29:11.536154+00:00for experiment all-users-day-5-reengagement-push and date 2026-06-18
Experiment is over: 2026-06-18 00:00:00+00:00 past 2026-06-17 00:00:00+00:00
ERROR:2026-06-23 14:29:11,536:jetstream.cli:all-users-day-5-reengagement-push -> Experiment has already ended.
Traceback (most recent call last):
  File "/Users/nalexander/firefox/jetstream/jetstream/cli.py", line 273, in execute
    analysis.run(
  File "/Users/nalexander/firefox/jetstream/jetstream/analysis.py", line 1120, in run
    self.check_runnable(current_date)
  File "/Users/nalexander/firefox/jetstream/jetstream/analysis.py", line 877, in check_runnable
    raise errors.EndedException(self.config.experiment.normandy_slug)
jetstream.errors.EndedException: all-users-day-5-reengagement-push -> Experiment has already ended.

┆Issue is synchronized with this Jira Task

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    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