I'm feeling a bit stupid but I cant figure this out. I have setup bugwarrior and it's adding tasks from Azure DevOps fine to Taskwarrior but when I try to sync completed tasks it fails.
My workflow is:
- Run
bugwarrior pull, tasks are added to my Taskwarrior
- Complete issue on Azure DevOps
- Run
bugwarrior pull, produces an error for completed tasks:
Error:
INFO:bugwarrior.db:Updating task f5a527f3-5fd8-46ef-ad99-b4774ae2729a, ADO PROJECT - TASK DESCRIPTION; end: None -> datetime.datetime(2025, 12, 22, 21, 1, 37, tzinfo=tzutc()); adostate: 'Committed' -> 'Done'
ERROR:bugwarrior.db:Unable to modify task: b'Could not modify task 86. You cannot set an end date on a pending task.'
Traceback (most recent call last):
File "/Users/user/.config/pyenv/.pyenv/versions/3.10.19/envs/bugwarrior/lib/python3.10/site-packages/bugwarrior/db.py", line 409, in synchronize
_, updated_task = tw.task_update(issue)
File "/Users/user/.config/pyenv/.pyenv/versions/3.10.19/envs/bugwarrior/lib/python3.10/site-packages/taskw/warrior.py", line 812, in task_update
self._execute(task_uuid, 'modify', *modification)
File "/Users/user/.config/pyenv/.pyenv/versions/3.10.19/envs/bugwarrior/lib/python3.10/site-packages/taskw/warrior.py", line 489, in _execute
raise TaskwarriorError(command, stderr, stdout, proc.returncode)
taskw.exceptions.TaskwarriorError: [b'task', b'rc.verbose=new-uuid', b'rc.json.array=TRUE', b'rc.confirmation=no', b'rc.dependency.confirmation=no', b'rc.recurrence.confirmation=no', b'rc.uda.adotitle.type=string', b'rc.uda.adotitle.label="Azure Devops Title"', b'rc.uda.adodescription.type=string', b'rc.uda.adodescription.label="Azure Devops Description"', b'rc.uda.adoid.type=numeric', b'rc.uda.adoid.label="Azure Devops ID number"', b'rc.uda.adourl.type=string', b'rc.uda.adourl.label="Azure Devops URL"', b'rc.uda.adotype.type=string', b'rc.uda.adotype.label="Azure Devops Work Item Type"', b'rc.uda.adostate.type=string', b'rc.uda.adostate.label="Azure Devops Work Item State"', b'rc.uda.adoactivity.type=string', b'rc.uda.adoactivity.label="Azure Devops Activity"', b'rc.uda.adopriority.type=numeric', b'rc.uda.adopriority.label="Azure Devops Priority"', b'rc.uda.adoremainingwork.type=numeric', b'rc.uda.adoremainingwork.label="Azure Devops Amount of Remaining Work"', b'rc.uda.adoparent.type=string', b'rc.uda.adoparent.label="Azure Devops Parent Work Item Name"', b'rc.uda.adonamespace.type=string', b'rc.uda.adonamespace.label="Azure Devops Namespace"', b'f5a527f3-5fd8-46ef-ad99-b4774ae2729a', b'modify', b'adostate:"Done"', b'end:"20251222T210137Z"'] #2;
stderr:"b'Could not modify task 86. You cannot set an end date on a pending task.'"; stdout:"b''"
It looks like its trying to set the end-date before moving the task in Taskwarrior to COMPLETED?
Debug info
Versions:
- task 3.4.2
- bugwarrior 2.0.0
- Python (venv) 3.10.19
Config:
[general]
taskrc = ~/.config/taskwarrior/taskrc
targets = devops
# Set to true to shorten links.
shorten = False
# When false, links are appended as an annotation.
inline_links = False
# When true will include a link to the ticket as an annotation.
annotation_links = True
# When false skips putting issue comments into annotations.
annotation_comments = False
# When false strips newlines from comments in annotations.
annotation_newlines = False
# Set to one of DEBUG, INFO, WARNING, ERROR, CRITICAL, or DISABLED to
# control the logging verbosity.
log.level = INFO
# Set to the path at which you would like logging messages written.
# log.file = <by default messages are written to stderr>
# Import maximally this number of characters of incoming annotations.
annotation_length = 100
# Use maximally this number of characters in the description.
description_length = 50
# If false, bugwarrior won't bother with adding annotations to your tasks at all.
merge_annotations = True
# If false, bugwarrior won't bother with adding tags to your tasks at all.
merge_tags = True
# If true, bugwarrior will delete all tags prior to fetching new ones,
# except those listed in static_tags. Only work if merge_tags is true.
replace_tags = False
# A list of tags that shouldn't be *removed* by bugwarrior. Use for tags
# that you want to keep when replace_tags is set to true.
static_tags =
# A list of attributes that shouldn't be *updated* by bugwarrior. Use for
# values that you want to tune manually. Note that service-specific UDAs
# can be included here.
# static_fields = priority
[devops]
service = azuredevops
ado.PAT = ************************************
ado.project = PROJECT_NAME
ado.organization = ADO_ORGANIZATION
ado.wiql_filter = [System.AssignedTo] = @me
ado.default_priority =
ado.add_tags = freelance, bw
ado.project_template = projects.freelance.PROJECT_NAME
ado.description_template = PROJECT({{adoid}}) - {{adotitle}}
I'm feeling a bit stupid but I cant figure this out. I have setup bugwarrior and it's adding tasks from Azure DevOps fine to Taskwarrior but when I try to sync completed tasks it fails.
My workflow is:
bugwarrior pull, tasks are added to my Taskwarriorbugwarrior pull, produces an error for completed tasks:Error:
It looks like its trying to set the end-date before moving the task in Taskwarrior to
COMPLETED?Debug info
Versions:
Config: