ruvnet/ruflo · error

Value did not change from ${String(initialValue)} within tim

Error message

Value did not change from ${String(initialValue)} within timeout

What it means

waitUntilChanged polled getValue until timeout and the value never differed from the recorded initial value (explicitly supplied via `from` or sampled at start). The expected change in the observed state did not occur within the deadline.

Source

Thrown at v3/@claude-flow/testing/src/helpers/test-utils.ts:75

 * @example
 * await waitUntilChanged(() => counter.value, { from: 0 });
 */
export async function waitUntilChanged<T>(
  getValue: () => T | Promise<T>,
  options: WaitUntilChangedOptions<T> = {}
): Promise<T> {
  const { from, timeout = 5000, interval = 50 } = options;
  const initialValue = from ?? await getValue();
  const startTime = Date.now();

  while (true) {
    const currentValue = await getValue();
    if (currentValue !== initialValue) {
      return currentValue;
    }

    if (Date.now() - startTime >= timeout) {
      throw new Error(`Value did not change from ${String(initialValue)} within timeout`);
    }

    await sleep(interval);
  }
}

/**
 * Options for waitUntilChanged utility
 */
export interface WaitUntilChangedOptions<T> {
  from?: T;
  timeout?: number;
  interval?: number;
}

/**
 * Retry an operation with exponential backoff
 *

View on GitHub (pinned to fa13ee4ad6)

Solutions

  1. Verify the value is expected to change; trigger the action that mutates it.
  2. Increase the polling timeout or fix the getter to read the live value.
Defensive patterns

Strategy: retry

When it happens

Trigger: Thrown at v3/@claude-flow/testing/src/helpers/test-utils.ts:75 when the library encounters an invalid state.

Common situations: See trigger scenarios.

Understand the failure class


AI-assisted analysis of ruvnet/ruflo@fa13ee4ad6 (2026-08-18). Data as JSON: /api/errors/18ec8d9ecd918e11. Report an issue: GitHub.