Skip to content

Commit 7a0283d

Browse files
committed
CircleCI: Handle 404 errors when fetching job logs
Add error handling to gracefully skip CircleCI jobs that return 404 when attempting to fetch v1.1 job details. This prevents crashes when some jobs are no longer accessible via the API. Fixes #210 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> Trying it out on AFNI lead to many jobs skipping: (venv) (tinuous-dev) datalad@smaug:/mnt/datasets/datalad/ci/afni$ grep -i warn /tmp/afni-tinuous-2025.07.25T11.27.01-* /tmp/afni-tinuous-2025.07.25T11.27.01-stderr:2025-07-25T11:27:17-0400 [WARNING ] tinuous: Job 26170 returned 404; skipping logs /tmp/afni-tinuous-2025.07.25T11.27.01-stderr:2025-07-25T11:27:17-0400 [WARNING ] tinuous: Job 26167 returned 404; skipping logs /tmp/afni-tinuous-2025.07.25T11.27.01-stderr:2025-07-25T11:27:17-0400 [WARNING ] tinuous: Job 26169 returned 404; skipping logs /tmp/afni-tinuous-2025.07.25T11.27.01-stderr:2025-07-25T11:27:17-0400 [WARNING ] tinuous: Job 26168 returned 404; skipping logs /tmp/afni-tinuous-2025.07.25T11.27.01-stderr:2025-07-25T11:27:49-0400 [WARNING ] tinuous: Job 26082 returned 404; skipping logs /tmp/afni-tinuous-2025.07.25T11.27.01-stderr:2025-07-25T11:27:49-0400 [WARNING ] tinuous: Job 26083 returned 404; skipping logs /tmp/afni-tinuous-2025.07.25T11.27.01-stderr:2025-07-25T11:27:49-0400 [WARNING ] tinuous: Job 26084 returned 404; skipping logs /tmp/afni-tinuous-2025.07.25T11.27.01-stderr:2025-07-25T11:27:49-0400 [WARNING ] tinuous: Job 26087 returned 404; skipping logs /tmp/afni-tinuous-2025.07.25T11.27.01-stderr:2025-07-25T11:27:49-0400 [WARNING ] tinuous: Job 26085 returned 404; skipping logs /tmp/afni-tinuous-2025.07.25T11.27.01-stderr:2025-07-25T11:27:49-0400 [WARNING ] tinuous: Job 26086 returned 404; skipping logs /tmp/afni-tinuous-2025.07.25T11.27.01-stderr:2025-07-25T11:27:49-0400 [WARNING ] tinuous: Job 26088 returned 404; skipping logs /tmp/afni-tinuous-2025.07.25T11.27.01-stderr:2025-07-25T11:27:51-0400 [WARNING ] tinuous: Job 26076 returned 404; skipping logs /tmp/afni-tinuous-2025.07.25T11.27.01-stderr:2025-07-25T11:27:51-0400 [WARNING ] tinuous: Job 26077 returned 404; skipping logs /tmp/afni-tinuous-2025.07.25T11.27.01-stderr:2025-07-25T11:27:51-0400 [WARNING ] tinuous: Job 26078 returned 404; skipping logs /tmp/afni-tinuous-2025.07.25T11.27.01-stderr:2025-07-25T11:27:51-0400 [WARNING ] tinuous: Job 26079 returned 404; skipping logs /tmp/afni-tinuous-2025.07.25T11.27.01-stderr:2025-07-25T11:27:51-0400 [WARNING ] tinuous: Job 26080 returned 404; skipping logs
1 parent 3323d63 commit 7a0283d

1 file changed

Lines changed: 15 additions & 1 deletion

File tree

src/tinuous/circleci.py

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -151,7 +151,21 @@ def get_build_assets(
151151
# This can happen if the job was cancelled.
152152
continue
153153
if logs:
154-
for step in self.get_jobv1(job.job_number).steps:
154+
try:
155+
jobv1 = self.get_jobv1(job.job_number)
156+
except requests.HTTPError as e:
157+
if (
158+
e.response is not None
159+
and e.response.status_code == 404
160+
):
161+
log.warning(
162+
"Job %d returned 404; skipping logs",
163+
job.job_number,
164+
)
165+
continue
166+
else:
167+
raise
168+
for step in jobv1.steps:
155169
for action in step.actions:
156170
yield CCIActionLog(
157171
client=self.client,

0 commit comments

Comments
 (0)