Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

An abandoned start holds its interviewer slot for five minutes

Open
#539 3 comments 0 reactions 1 assignee View on GitHub

Maintainers usually reply within 1 day

@matthiola0 is already working on this.

Since Oct 29, 2026.

  • #552 by @matthiola0 — open

Assessment

Difficulty
4/5
Estimated time
3-5 days
Newbie friendliness
43/100
Issue type
Bug
Clarity
Mostly clear
Activity status
Active
Tech stack
rust
Domain
api, backend

Research direction

Start by tracing /api/token and claim_and_dispatch, then inspect LocalDispatcher and the room task's candidate join timeout (CANDIDATE_JOIN_LIMIT). Identify how room ownership is authorized and how the existing no-show path releases consent; the proposed release endpoint should stop only an owned room that has not yet been joined. Done means an ended start releases its waiting slot promptly, while joined rooms and unauthorized callers are unaffected.

Written by the indexing model from the issue text.

Description

Follow-up to this review comment on #519.

By the time /api/token answers, claim_and_dispatch has already claimed consent and asked the dispatcher for an interviewer. LocalDispatcher reserves a slot and spawns the room task, and the slot is released only when that task returns. The agent then waits up to CANDIDATE_JOIN_LIMIT (300 s) for the candidate to join.

Since #519 the page can give up a start after the token response. If the candidate presses End while the Strict problem loads or while the LiveKit join is still in progress, connect stops the start and leaves any room it joined, but nothing tells the server. The agent waits for a candidate who will not come, and the slot counts against max_concurrent until the 300 s run out. A guest's slot also counts against the cap of two guest interviews. Other starts in that time can be refused with "The server is running as many interviews as it can right now." For a signed-in candidate, the consent claim stays until the no-show path releases it at the end of the wait.

Proposed fix:

  • Once a token was granted, abandonStart calls a release endpoint with the room name, for example POST /api/token/release.
  • The server releases only a room the caller owns, and does nothing once the candidate has joined. A signed-in caller can be checked against the room authorization /api/token already grants. Guests get no such grant today, so they would need their own check, or could be left out at first.
  • The dispatcher stops the waiting room task, which drops the slot and releases consent through the existing no-show path.

A closed tab still waits out the 300 s, since nothing can send the call then. This only covers starts the page ends itself.

Dominant language
Rust
Stars
215
Forks
141
Avg merge
1d 12h
Merged PRs (30d)
228

Getting set up

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 sysprog21/codetrial

All issues in sysprog21/codetrial

Similar issues

More Rust issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.