VFX-E-1504¶
Title¶
RunOptionUnavailable
Explanation¶
run_suite accepts two options whose behaviour this server cannot deliver yet: wait: false
(start the run and return immediately, polling its status afterwards) and keepEnvironment: true
(leave the containers up after the run so you can poke at them). Both are accepted on the wire —
they are part of the tool's declared input, not unknown fields — and both are refused with this code
when you actually ask for them.
Being refused rather than quietly re-interpreted is the point. The alternative for wait: false
would be to block anyway and return a finished run to a caller that asked for a handle; the
alternative for keepEnvironment: true would be to tear the environment down after all, destroying
the very thing you kept it up to inspect. Either would be a silent lie about what the call did, so
the server says no instead.
What is blocking each. Async execution needs stable, engine-issued run identifiers and a
detached run with its own status/cancel surface — upstream work item U4. keepEnvironment needs
a corresponding flag on the engine CLI: measured against the pinned engine (vouchfx run --help,
v1.0.0-rc.4), there is none, so there is nothing for this server to forward. This server
deliberately will not implement a teardown policy of its own — the 30-minute auto-teardown described
in the specification is the engine's behaviour, and a second, competing timer living here is
exactly the kind of drift between the CLI and this server that the project forbids.
The default for both options is the behaviour that works: wait defaults to true and
keepEnvironment to false. Omitting them entirely is the same as sending those defaults, and
sending them explicitly with those values is accepted, not refused.
This error is not retryable. Nothing about the identical call changes between attempts — what
unblocks these options is a new engine version and a new ENGINE_PIN, which is a different server,
not a later retry.
Common causes¶
wait: falsewas sent to start a run in the background and poll it afterwards.keepEnvironment: truewas sent to leave containers running for debugging after the suite finished.- A host built its arguments from the full specification's
RunScenarioInputshape, which describes both options, without checking which of them this server implements today. - An agent copied a call example from documentation describing the eventual, post-U4 behaviour.
Fixes¶
- Drop the option and call
run_suitenormally: it blocks until the run completes and returns the verdict, which is the only mode implemented today. - Send
wait: true(or omit it) — the blocking call already returns therunId, so nothing is lost except the ability to do other work while it runs. - Send
keepEnvironment: false(or omit it) and reproduce the environment separately when you need to inspect it — for example by running the same suite through thevouchfxCLI directly. - Use the run's JSON Lines event stream (
explain_run,diagnose_run) for post-mortem detail instead of a live environment; it carries the step timeline, observations, and environment errors the run produced. - If your orchestration genuinely needs a non-blocking run, cap the call with
timeoutSecondsand treat the tool call itself as the handle until upstream ask U4 lands.