Traceback: Traceback (most recent call last):
[core] | File "/collectoss/collectoss/tasks/github/util/github_graphql_data_access.py", line 109, in make_request_with_retries
[core] | return self.__make_request_with_retries(query, variables, timeout)
[core] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[core] | File "/collectoss/.venv/lib/python3.11/site-packages/tenacity/__init__.py", line 330, in wrapped_f
[core] | return self(f, *args, **kw)
[core] | ^^^^^^^^^^^^^^^^^^^^
[core] | File "/collectoss/.venv/lib/python3.11/site-packages/tenacity/__init__.py", line 467, in __call__
[core] | do = self.iter(retry_state=retry_state)
[core] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[core] | File "/collectoss/.venv/lib/python3.11/site-packages/tenacity/__init__.py", line 368, in iter
[core] | result = action(retry_state)
[core] | ^^^^^^^^^^^^^^^^^^^
[core] | File "/collectoss/.venv/lib/python3.11/site-packages/tenacity/__init__.py", line 411, in exc_check
[core] | raise retry_exc from fut.exception()
[core] | tenacity.RetryError: RetryError[<Future at 0x7fb862e41e10 state=finished raised Exception>]
[core] |
[core] | During handling of the above exception, another exception occurred:
[core] |
[core] | Traceback (most recent call last):
[core] | File "/collectoss/.venv/lib/python3.11/site-packages/celery/app/trace.py", line 453, in trace_task
[core] | R = retval = fun(*args, **kwargs)
[core] | ^^^^^^^^^^^^^^^^^^^^
[core] | File "/collectoss/.venv/lib/python3.11/site-packages/celery/app/trace.py", line 736, in __protected_call__
[core] | return self.run(*args, **kwargs)
[core] | ^^^^^^^^^^^^^^^^^^^^^^^^^
[core] | File "/collectoss/collectoss/tasks/github/pull_requests/files_model/tasks.py", line 18, in process_pull_request_files
[core] | pull_request_files_model(repo.repo_id, logger, db_session, manifest.key_auth, full_collection)
[core] | File "/collectoss/collectoss/tasks/github/pull_requests/files_model/core.py", line 85, in pull_request_files_model
[core] | for pr_file in github_graphql_data_access.paginate_resource(query, params, values):
[core] | File "/collectoss/collectoss/tasks/github/util/github_graphql_data_access.py", line 53, in paginate_resource
[core] | result_json = self.make_request_with_retries(query, params).json()
[core] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[core] | File "/collectoss/collectoss/tasks/github/util/github_graphql_data_access.py", line 111, in make_request_with_retries
[core] | raise e.last_attempt.exception()
[core] | File "/collectoss/.venv/lib/python3.11/site-packages/tenacity/__init__.py", line 470, in __call__
[core] | result = fn(*args, **kwargs)
[core] | ^^^^^^^^^^^^^^^^^^^
[core] | File "/collectoss/collectoss/tasks/github/util/github_graphql_data_access.py", line 123, in __make_request_with_retries
[core] | return self.make_request(query, variables, timeout)
[core] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[core] | File "/collectoss/collectoss/tasks/github/util/github_graphql_data_access.py", line 98, in make_request
[core] | raise Exception(f"Github Graphql Data Access Errors: {errors}")
[core] | Exception: Github Graphql Data Access Errors: [{'type': 'RATE_LIMIT', 'code': 'graphql_rate_limit', 'message': 'API rate limit already exceeded for user ID 17362949.'}]
[core] | [2026-06-24 19:21:54,934: WARNING/ForkPoolWorker-5] 2026-06-24 19:21:54 39bd24393d6a secondary_task_failure[263] INFO Repo git: https://github.com/debezium/debezium
[core] | [2026-06-24 19:21:54,972: ERROR/ForkPoolWorker-5] Task collectoss.tasks.github.pull_requests.files_model.tasks.process_pull_request_files[e4bef086-0677-4ead-b511-cf0f0a999381] raised unexpected: Exception("Github Graphql Data Access Errors: [{'type': 'RATE_LIMIT', 'code': 'graphql_rate_limit', 'message': 'API rate limit already exceeded for user ID 17362949.'}]")
Given what ive seen of the GraphQL logic while working on #404, i dont think any of it is wired up to use keyman properly
As a result, when collecting a large repo with many thousands of PRs (enough to exceed the rate limit/require multiple runs to do so) we just seem to.... blow right past the limtit
Stack Trace