Handle 404 in issue comments collection when issues are disabled

Open Beginner friendly
#307 3 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
2/5
Estimated time
1-3 hours
Newbie friendliness
68/100
Issue type
Bug
Clarity
Mostly clear
Activity status
Quiet
Tech stack
github, python
Domain
api, backend

Research direction

Start in augur/tasks/github/messages.py at collect_github_messages and fast_retrieve_all_pr_and_issue_messages, then inspect augur/tasks/github/util/github_data_access.py around get_resource_count, get_resource_page_count, and make_request. Reproduce or test the 404 for the issues/comments endpoint when issues are disabled; done means event processing no longer fails for that repository.

Written by the indexing model from the issue text.

Description

Moving this to its own issue since its a different stack trace.

found in the logs while testing - this happened during event processing.

related Stack Traces
[augur]        | [2026-03-20 16:09:19,876: INFO/ForkPoolWorker-2] Task augur.tasks.github.traffic.collect_github_repo_clones_data[15c7ed25-5d06-4b15-8192-9977a9bfa10e] succeeded in 0.009023491002153605s: None
[augur]        | [2026-03-20 16:09:19,963: WARNING/ForkPoolWorker-4] 2026-03-20 16:09:19 966df2002621 core_task_failure[286] ERROR Task 5d6dc1cb-9dd0-4151-81ea-76ef4992e12b raised exception: Could not find https://api.github.com/repos/gstreamer/gst-plugins-base/issues/comments?per_page=100
[augur]        |  Traceback: Traceback (most recent call last):
[augur]        |   File "/augur/.venv/lib/python3.11/site-packages/celery/app/trace.py", line 453, in trace_task
[augur]        |     R = retval = fun(*args, **kwargs)
[augur]        |                  ^^^^^^^^^^^^^^^^^^^^
[augur]        |   File "/augur/.venv/lib/python3.11/site-packages/celery/app/trace.py", line 736, in __protected_call__
[augur]        |     return self.run(*args, **kwargs)
[augur]        |            ^^^^^^^^^^^^^^^^^^^^^^^^^
[augur]        |   File "/augur/augur/tasks/github/messages.py", line 43, in collect_github_messages
[augur]        |     message_data = fast_retrieve_all_pr_and_issue_messages(repo_git, logger, manifest.key_auth, task_name, core_data_last_collected)
[augur]        |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[augur]        |   File "/augur/augur/tasks/github/messages.py", line 78, in fast_retrieve_all_pr_and_issue_messages
[augur]        |     message_count = github_data_access.get_resource_count(url)
[augur]        |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[augur]        |   File "/augur/augur/tasks/github/util/github_data_access.py", line 83, in get_resource_count
[augur]        |     num_pages = self.get_resource_page_count(url)
[augur]        |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[augur]        |   File "/augur/augur/tasks/github/util/github_data_access.py", line 135, in get_resource_page_count
[augur]        |     response = self.make_request_with_retries(url, method="HEAD")
[augur]        |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[augur]        |   File "/augur/augur/tasks/github/util/github_data_access.py", line 208, in make_request_with_retries
[augur]        |     return self.__make_request_with_retries(url, method, timeout)
[augur]        |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[augur]        |   File "/augur/.venv/lib/python3.11/site-packages/tenacity/__init__.py", line 330, in wrapped_f
[augur]        |     return self(f, *args, **kw)
[augur]        |            ^^^^^^^^^^^^^^^^^^^^
[augur]        |   File "/augur/.venv/lib/python3.11/site-packages/tenacity/__init__.py", line 467, in __call__
[augur]        |     do = self.iter(retry_state=retry_state)
[augur]        |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[augur]        |   File "/augur/.venv/lib/python3.11/site-packages/tenacity/__init__.py", line 368, in iter
[augur]        |     result = action(retry_state)
[augur]        |              ^^^^^^^^^^^^^^^^^^^
[augur]        |   File "/augur/.venv/lib/python3.11/site-packages/tenacity/__init__.py", line 390, in <lambda>
[augur]        |     self._add_action_func(lambda rs: rs.outcome.result())
[augur]        |                                      ^^^^^^^^^^^^^^^^^^^
[augur]        |   File "/usr/local/lib/python3.11/concurrent/futures/_base.py", line 449, in result
[augur]        |     return self.__get_result()
[augur]        |            ^^^^^^^^^^^^^^^^^^^
[augur]        |   File "/usr/local/lib/python3.11/concurrent/futures/_base.py", line 401, in __get_result
[augur]        |     raise self._exception
[augur]        |   File "/augur/.venv/lib/python3.11/site-packages/tenacity/__init__.py", line 470, in __call__
[augur]        |     result = fn(*args, **kwargs)
[augur]        |              ^^^^^^^^^^^^^^^^^^^
[augur]        |   File "/augur/augur/tasks/github/util/github_data_access.py", line 230, in __make_request_with_retries
[augur]        |     result = self.make_request(url, method, timeout)
[augur]        |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[augur]        |   File "/augur/augur/tasks/github/util/github_data_access.py", line 178, in make_request
[augur]        |     raise UrlNotFoundException(f"Could not find {url}")
[augur]        | augur.tasks.github.util.github_data_access.UrlNotFoundException: Could not find https://api.github.com/repos/gstreamer/gst-plugins-base/issues/comments?per_page=100
[augur]        | [2026-03-20 16:09:19,964: WARNING/ForkPoolWorker-4] 2026-03-20 16:09:19 966df2002621 core_task_failure[286] INFO Repo git: https://github.com/gstreamer/gst-plugins-base
[augur]        | [2026-03-20 16:09:19,993: ERROR/ForkPoolWorker-4] Task augur.tasks.github.messages.collect_github_messages[5d6dc1cb-9dd0-4151-81ea-76ef4992e12b] raised unexpected: UrlNotFoundException('Could not find https://api.github.com/repos/gstreamer/gst-plugins-base/issues/comments?per_page=100')
[augur]        | Traceback (most recent call last):
[augur]        |   File "/augur/.venv/lib/python3.11/site-packages/celery/app/trace.py", line 453, in trace_task
[augur]        |     R = retval = fun(*args, **kwargs)
[augur]        |                  ^^^^^^^^^^^^^^^^^^^^
[augur]        |   File "/augur/.venv/lib/python3.11/site-packages/celery/app/trace.py", line 736, in __protected_call__
[augur]        |     return self.run(*args, **kwargs)
[augur]        |            ^^^^^^^^^^^^^^^^^^^^^^^^^
[augur]        |   File "/augur/augur/tasks/github/messages.py", line 43, in collect_github_messages
[augur]        |     message_data = fast_retrieve_all_pr_and_issue_messages(repo_git, logger, manifest.key_auth, task_name, core_data_last_collected)
[augur]        |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[augur]        |   File "/augur/augur/tasks/github/messages.py", line 78, in fast_retrieve_all_pr_and_issue_messages
[augur]        |     message_count = github_data_access.get_resource_count(url)
[augur]        |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[augur]        |   File "/augur/augur/tasks/github/util/github_data_access.py", line 83, in get_resource_count
[augur]        |     num_pages = self.get_resource_page_count(url)
[augur]        |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[augur]        |   File "/augur/augur/tasks/github/util/github_data_access.py", line 135, in get_resource_page_count
[augur]        |     response = self.make_request_with_retries(url, method="HEAD")
[augur]        |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[augur]        |   File "/augur/augur/tasks/github/util/github_data_access.py", line 208, in make_request_with_retries
[augur]        |     return self.__make_request_with_retries(url, method, timeout)
[augur]        |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[augur]        |   File "/augur/.venv/lib/python3.11/site-packages/tenacity/__init__.py", line 330, in wrapped_f
[augur]        |     return self(f, *args, **kw)
[augur]        |            ^^^^^^^^^^^^^^^^^^^^
[augur]        |   File "/augur/.venv/lib/python3.11/site-packages/tenacity/__init__.py", line 467, in __call__
[augur]        |     do = self.iter(retry_state=retry_state)
[augur]        |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[augur]        |   File "/augur/.venv/lib/python3.11/site-packages/tenacity/__init__.py", line 368, in iter
[augur]        |     result = action(retry_state)
[augur]        |              ^^^^^^^^^^^^^^^^^^^
[augur]        |   File "/augur/.venv/lib/python3.11/site-packages/tenacity/__init__.py", line 390, in <lambda>
[augur]        |     self._add_action_func(lambda rs: rs.outcome.result())
[augur]        |                                      ^^^^^^^^^^^^^^^^^^^
[augur]        |   File "/usr/local/lib/python3.11/concurrent/futures/_base.py", line 449, in result
[augur]        |     return self.__get_result()
[augur]        |            ^^^^^^^^^^^^^^^^^^^
[augur]        |   File "/usr/local/lib/python3.11/concurrent/futures/_base.py", line 401, in __get_result
[augur]        |     raise self._exception
[augur]        |   File "/augur/.venv/lib/python3.11/site-packages/tenacity/__init__.py", line 470, in __call__
[augur]        |     result = fn(*args, **kwargs)
[augur]        |              ^^^^^^^^^^^^^^^^^^^
[augur]        |   File "/augur/augur/tasks/github/util/github_data_access.py", line 230, in __make_request_with_retries
[augur]        |     result = self.make_request(url, method, timeout)
[augur]        |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[augur]        |   File "/augur/augur/tasks/github/util/github_data_access.py", line 178, in make_request
[augur]        |     raise UrlNotFoundException(f"Could not find {url}")
[augur]        | augur.tasks.github.util.github_data_access.UrlNotFoundException: Could not find https://api.github.com/repos/gstreamer/gst-plugins-base/issues/comments?per_page=100

Originally posted by @collectoss-issue-migrator in #229

Dominant language
Python
Stars
14
Forks
18
Avg merge
6h 59m
Merged PRs (30d)
1

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from chaoss/CollectOSS

All issues in chaoss/CollectOSS

Similar issues

More Python issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.