[BUG]: Proxy startup may report success when retries are exhausted and process does not stabilize

Open
#3,530 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
4/5
Estimated time
3-5 days
Newbie friendliness
45/100
Issue type
Bug
Clarity
Mostly clear
Activity status
Stale
Tech stack
typescript
Domain
ci-cd

Research direction

Start with start-proxy-action.ts and trace the retry, early-exit, stabilization-delay, and output paths. Confirm how retry exhaustion and the last exit code are represented, then define tests around terminal failure, process liveness, and retrying with a new ephemeral port; done means unstable startup fails explicitly without changing existing outputs, telemetry, or wrapper semantics.

Written by the indexing model from the issue text.

Description

Problem

The proxy startup logic in start-proxy-action.ts can report successful initialization even when the proxy process fails to stabilize after retry attempts.

The previous implementation:

  • Retries on spawn or early exit
  • Only throws on immediate spawn errors
  • Does not explicitly fail when all retry attempts are exhausted
  • May proceed with outputs set despite no stable process remaining alive

This can lead to false-positive startup.

Impact

When startup silently fails:

  • Downstream steps may fail with opaque dependency or networking errors
  • Failures manifest later in the workflow
  • Root cause becomes difficult to diagnose

Instead of failing fast during initialization, workflows continue in a degraded state.

Expected Behavior

If the proxy fails to stabilize after retry attempts, startup should fail explicitly with a clear diagnostic error.

Proposed Solution

  • Detect retry exhaustion explicitly
  • Throw a clear error including the last exit code
  • Verify process remains alive after stabilization delay
  • Retry using a new ephemeral port before terminal failure
  • Extract startup logic into a dedicated launcher module for testability

This preserves existing outputs, telemetry behavior, and wrapper semantics while preventing silent failure.

Dominant language
TypeScript
Stars
1.6k
Forks
493
Avg merge
1d 13h
Merged PRs (30d)
44

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 github/codeql-action

All issues in github/codeql-action

Similar issues

More TypeScript issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.