ruvnet/ruflo · error · GasTownError
UNKNOWN
UNKNOWN
Error message
Execution cancelled
What it means
Formula execution noticed signal.aborted while scheduling the next wave of parallel steps — the caller's AbortSignal cancelled the run. Execution stops with this error (status set accordingly) rather than continuing to launch steps; it is the intended cancellation path, not a crash.
Source
Thrown at v3/plugins/gastown-bridge/src/formula/executor.ts:773
const getReadySteps = (): Step[] => {
const ready: Step[] = [];
for (const step of orderedSteps) {
if (completed.has(step.id) || inProgress.has(step.id)) continue;
const deps = stepDeps.get(step.id);
if (!deps || [...deps].every(d => completed.has(d))) {
ready.push(step);
}
}
return ready;
};
// Execute in parallel waves
while (completed.size < orderedSteps.length) {
// Check for cancellation
if (signal.aborted) {
progress.status = 'cancelled';
this.emit('execution:cancelled', executionId);
throw new GasTownError(
'Execution cancelled',
GasTownErrorCode.UNKNOWN,
{ executionId }
);
}
const readySteps = getReadySteps();
if (readySteps.length === 0 && inProgress.size === 0) {
// Deadlock - should not happen with valid DAG
break;
}
// Limit parallel execution
const batchSize = Math.min(readySteps.length, maxParallel - inProgress.size);
const batch = readySteps.slice(0, batchSize);
if (batch.length === 0) {
// Wait for in-progress steps to completeView on GitHub (pinned to fa13ee4ad6)
Solutions
- Check the cancellation source (AbortSignal/timeout) and restart the operation if the cancellation was unintended.
- Handle cancellation as a control-flow path: clean up partial state and surface a resumable status to the caller.
Defensive patterns
Strategy: try-catch
When it happens
Trigger: Thrown at v3/plugins/gastown-bridge/src/formula/executor.ts:773 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of ruvnet/ruflo@fa13ee4ad6 (2026-08-18).
Data as JSON: /api/errors/96b52d0a4a135719.
Report an issue: GitHub.