theam / theam/facility

Readiness checks can run past the two-minute timeout

Open
#353 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
TypeScript
Stars
71
Forks
64
Avg merge
15h 38m
Merged PRs (30d)
66

Description

What happened

A readiness check can keep a preview or browser test waiting well past the two-minute deadline.

The polling loop checks the deadline between attempts, but each environment.ready command gets the usual 30-minute command timeout. It also accepts a successful result that arrives after the deadline. The first check when reopening a prepared workspace has the same problem.

I'd expect the deadline to stop a hanging check, including that first check.

How to reproduce

  1. Set environment.ready to sleep 180.
  2. Start the environment or reopen a prepared workspace.
  3. Wait for the readiness check.

The command can keep running beyond the two-minute deadline and still be accepted when it exits successfully.

How are you running Facility?

Other. Checked from a source checkout in a local sandbox.

Version

Commit 6338c8c4259b63df50efb28b904907ecc3388e94.

Evidence

Readiness loop and generic command timeout, prepared-workspace probe. I traced this in the source. The regression test uses a shorter deadline and a real sleeping subprocess; I haven't completed the real Docker workspace check because the runner won't start in the ARM sandbox.

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.

Research direction

Start in services/api/src/workspaces/project-environment.ts, reading the readiness loop around lines 526-574 and the prepared-workspace probe around lines 285-294. Reproduce with environment.ready set to sleep 180, then inspect the existing regression test setup with its shorter deadline and sleeping subprocess. Done means both readiness paths stop at the two-minute deadline and do not accept a result that arrives afterward.

Written by the indexing model from the issue text.

Assessment

Tech stack
typescript
Domain
backend
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Active
Clarity
Clearly specified
Newbie friendliness
78/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.