Skip to content

Do not set 'end' on tasks #1175

@KingOfSpades

Description

@KingOfSpades

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:

  1. Run bugwarrior pull, tasks are added to my Taskwarrior
  2. Complete issue on Azure DevOps
  3. 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}}

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions