Skip to content

Conversation

@cfsmp3
Copy link
Contributor

@cfsmp3 cfsmp3 commented Jan 11, 2026

Summary

When a test times out due to exceeding the maximum runtime limit, the GitHub status was set to ERROR but without a target_url. This made it impossible for users to click through to see what happened - they would just see "ERROR" with no link.

Root cause: In delete_expired_instances(), update_status_on_github() was called without the target_url parameter:

# Before (buggy):
update_status_on_github(gh_commit, Status.ERROR, message, f"CI - {platform_name}")
# Missing target_url parameter!

Fix: Build the target_url (using url_for with fallback for non-request context) and pass it to update_status_on_github().

Investigation Details

Discovered while investigating why CCExtractor/ccextractor#2007 Linux test showed ERROR on GitHub with no clickable link.

What happened:

  • Test #7736 ran for ~4 hours (started 10:14, canceled 14:20)
  • Executed 116 regression tests (105 failed, 11 passed)
  • Canceled due to "time limit exceeded"
  • Test page exists at https://sampleplatform.ccextractor.org/test/7736 with full results
  • BUT GitHub showed ERROR with target_url: null

GitHub API response showing the bug:

{
  "context": "CI - linux",
  "created_at": "2026-01-10T14:20:04Z",
  "description": "Could not complete test, time limit exceeded",
  "state": "error",
  "target_url": null  // <-- This should be the test URL!
}

Changes

  • mod_ci/controllers.py: Added target_url parameter when calling update_status_on_github() in delete_expired_instances()
  • tests/test_ci/test_controllers.py: Added test to verify target_url is included

Test plan

  • New test test_delete_expired_instances_includes_target_url passes
  • Existing test_delete_expired_instances still passes
  • pycodestyle passes
  • isort passes

🤖 Generated with Claude Code

When a test times out due to exceeding the maximum runtime limit, the
GitHub status was set to ERROR but without a target_url. This made it
impossible for users to click through to see what happened - they would
just see "ERROR" with no link.

Root cause: In delete_expired_instances(), update_status_on_github() was
called without the target_url parameter, which resulted in GitHub
displaying a null/empty URL.

Fix: Build the target_url (using url_for with fallback for non-request
context) and pass it to update_status_on_github() so users can navigate
to the test page to see results even when a test times out.

Discovered while investigating why CCExtractor/ccextractor#2007 Linux
test showed ERROR on GitHub with no clickable link. Test #7736 had run
for ~4 hours, executed 116 regression tests (105 failed), but was
canceled due to time limit. The test page existed and showed results,
but GitHub had no link to it.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <[email protected]>
@sonarqubecloud
Copy link

@canihavesomecoffee canihavesomecoffee merged commit 4f550bb into master Jan 11, 2026
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants