Skip to content

KeyError: 'endDate' when Jira sprint dict is missing endDate field #1187

@maturanomx

Description

@maturanomx

bugwarrior pull crashes with KeyError: 'endDAte' when a Jira sprint returned by the API is a dict that does not include the endDate field.

Traceback

Traceback (most recent call last):
  File "/usr/bin/bugwarrior", line 8, in <module>
    sys.exit(cli())
             ~~~^^
  File "/usr/lib/python3.14/site-packages/click/core.py", line 1485, in __call__
    return self.main(*args, **kwargs)
           ~~~~~~~~~^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.14/site-packages/click/core.py", line 1406, in main
    rv = self.invoke(ctx)
  File "/usr/lib/python3.14/site-packages/click/core.py", line 1873, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
                           ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^
  File "/usr/lib/python3.14/site-packages/click/core.py", line 1269, in invoke
    return ctx.invoke(self.callback, **ctx.params)
           ~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.14/site-packages/click/core.py", line 824, in invoke
    return callback(*args, **kwargs)
  File "/usr/lib/python3.14/site-packages/click/decorators.py", line 34, in new_func
    return f(get_current_context(), *args, **kwargs)
  File "/usr/lib/python3.14/site-packages/bugwarrior/command.py", line 57, in wrapped_subcommand_callback
    return ctx.invoke(subcommand_callback, *args, **kwargs)
           ~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.14/site-packages/click/core.py", line 824, in invoke
    return callback(*args, **kwargs)
  File "/usr/lib/python3.14/site-packages/bugwarrior/command.py", line 112, in pull
    synchronize(issue_generator, config, main_section, dry_run)
    ~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.14/site-packages/bugwarrior/db.py", line 270, in synchronize
    for issue in issue_generator:
                 ^^^^^^^^^^^^^^^
  File "/usr/lib/python3.14/site-packages/bugwarrior/collect.py", line 101, in aggregate_issues
    record = TaskConstructor(issue).get_taskwarrior_record()
  File "/usr/lib/python3.14/site-packages/bugwarrior/collect.py", line 134, in get_taskwarrior_record
    self._taskwarrior_record = self.issue.to_taskwarrior()
                               ~~~~~~~~~~~~~~~~~~~~~~~~~^^
  File "/usr/lib/python3.14/site-packages/bugwarrior/services/jira.py", line 196, in to_taskwarrior
    'due': self.get_due(),
           ~~~~~~~~~~~~^^
  File "/usr/lib/python3.14/site-packages/bugwarrior/services/jira.py", line 247, in get_due
    endDate = sprint['endDate']
              ~~~~~~^^^^^^^^^^^
KeyError: 'endDate'

Expected behavior

bugwarrior pull completes successfully, treating the missing endDate as no due date.

Environment

  • bugwarrior, version 2.1.0

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