GothenburgBitFactory / GothenburgBitFactory/tasklib

tasklib crashes/hangs when parsing historical dates from Taskwarrior 3.x (SQLite backend)

Open
#136 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Python
Stars
159
Forks
29
PR merge metrics
No merged PRs in 30d

Description

Hey guys,

Ran into an edge case where tasklib completely fails to parse a task if it contains an older historical creation date.
How it happens:

If you manually force an old date on a task using task edit (for example, setting Created: 1979-07-14 00:00:00), Taskwarrior 3.x saves it to the SQLite database just fine.

However, when a frontend library like vit tries to initialize and read the tasks via tasklib, it throws this validation error and gets stuck in an infinite loop:
Plaintext

'300769200' is not a valid date in the '' format.

It looks like the internal date parser chokes on the smaller Unix timestamp integer (300769200) coming out of the modern Taskwarrior 3 SQLite backend, treating it as malformed text.

Changing the date back to a modern timestamp via the standard CLI (task modify entry:2026-07-01) fixes the issue immediately, but it would be great if tasklib had a defensive check or fallback format handler here to stop the parser from completely dying on older dates.

Contributor guide

No contributing guide indexed for this repository

Research direction

Start by reproducing the failure with Taskwarrior 3.x using a historical creation date in the SQLite backend, then trace tasklib's date parsing during task initialization. Confirm that the old timestamp is parsed without an exception or hang while modern timestamps continue to work.

Written by the indexing model from the issue text.

Assessment

Tech stack
python, sqlite
Domain
backend, databases
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
52/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.