Skip to content

The t3 tools exit 3 NO_INTERPRETER when T3_NODE is wrong or the port is taken, which reads as a failed run rather than an unrun one #284

Description

@pseudoseed

Reported by builder pir-272 while completing the REFRESH tail for #272, 2026-08-31.

What happens

Running the spec 250 evidence collectors needs two things that are not obvious:

  • T3_NODE must point at a Node 22 binary.
  • Port 3799 is held by the main workspace's pinned harness, so a second run needs T3_HARNESS_PORT set elsewhere. 272 used 3809.

Without either, the tools exit 3 with NO_INTERPRETER. The builder's words: it "reads like a failure and is not one".

Why it matters

The project already treats this shape as a defect: "I could not tell" must never be spelled the same way as "no". An exit 3 from a missing interpreter and an exit 3 from a real problem are the same signal to anyone reading a log or a CI summary, so a run that never happened is indistinguishable from a run that happened and went badly.

The port collision compounds it. Two workspaces on one machine is the normal case here, not an edge case, and the second one fails in a way that names the interpreter rather than the port.

What would close this

  • Distinct exit codes, or distinct signal strings, for "no usable interpreter", "port already held", and a genuine failure. Each must be unambiguous on its own.
  • The port message should name the holder, or at least name T3_HARNESS_PORT as the knob, so the reader does not have to know that 3799 belongs to the main workspace.
  • The Node 22 requirement should appear where the failure appears, not only in a runbook.

Related

#263 covers harness port and runtime dir being shared process-global state. This issue is about the diagnosis being wrong when that sharing bites, which stands whether or not #263 changes the sharing.

Metadata

Metadata

Assignees

No one assigned

    Labels

    area/porchProtocol orchestrator

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions