﻿id	summary	reporter	owner	description	type	status	component	version	severity	resolution	keywords	cc	stage	has_patch	needs_docs	needs_tests	needs_better_patch	easy	ui_ux
37417	Date-based generic views crash with OverflowError at the date range limits	Philip Sørensen		"#28209 made the date-based generic views return a 404 rather than crash when given an out-of-range date. The fix caught the `ValueError` from `date.replace()` in `_get_next_year()` and `_get_next_month()`, and `_get_next_week()` catches `OverflowError`. However, two other paths do `timedelta` arithmetic at `datetime.date.max` / `datetime.date.min` with no handling, and they still crash with `OverflowError: date value out of range` (HTTP 500):

* `DayMixin._get_next_day()` — e.g. a `DayArchiveView` with `allow_empty=True` at  `/9999/dec/31/`. This is reachable with the URL pattern from the docs,  `<int:year>/<str:month>/<int:day>/`. (#28209 comment 5 lists `_get_next_day()` as  affected, but the committed fix didn't touch it.)
* `_get_next_prev()` computing the previous period with `allow_empty=True`:  `get_current(start - timedelta(days=1))`. This crashes for `YearArchiveView`,  `MonthArchiveView`, `WeekArchiveView` and `DayArchiveView` when the date is in year 1,  e.g. `year=""0001""`. (A `<int:year>` converter strips the leading zeros, so this needs a  4-digit regex or str pattern.)

Patch: raise `Http404(_(""Date out of range""))` in both places. That is the same behavior and message as the existing `_get_next_week()` handling and `test_year_out_of_range`. An alternative for the ""previous"" case would be returning `None` (no previous link), but I kept it consistent with the #28209 approach."	Bug	new	Generic views	6.1	Normal			Philip Sørensen	Unreviewed	1	0	0	0	0	0
