ruvnet/ruflo · error · ResumeFailedError

--resume checkpoint not found

Error message

--resume checkpoint not found: ${resumeFrom}

What it means

runNativeTraining() was invoked with --resume but existsSync(resumeFrom) found no file at that checkpoint path. Fails loudly as ResumeFailedError so training never silently starts fresh when the user explicitly asked to continue from a checkpoint.

Solutions

  1. Verify the checkpoint path exists
  2. Run training without --resume to start a fresh run

Example fix

Verify the --resume checkpoint path exists and is readable; list saved checkpoints and pick a valid one.
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at v3/@claude-flow/cli/src/services/native-training.ts:116 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/7b440bcb2b5b6757. Report an issue: GitHub.

Appendix: source

Thrown at v3/@claude-flow/cli/src/services/native-training.ts:116

      epochs,
      inputDim: dim,
      outputDim: dim,
    };
    // 0 (or omitted) disables validation; only pass a real holdout through.
    if (typeof validationSplit === 'number' && validationSplit > 0) {
      pipelineConfig.validationSplit = validationSplit;
    }
    const pipeline = new ruvllm.TrainingPipeline(pipelineConfig);

    // Resume BEFORE training. Prefer resumeFrom() (2.6.0 — epoch position +
    // optimizer state); fall back to loadCheckpoint() (2.5.7 — weights only).
    // Any failure with an explicit --resume is loud (ResumeFailedError),
    // never silent fresh training.
    let resumed = false;
    let resumeMode: 'resumeFrom' | 'loadCheckpoint' | undefined;
    if (resumeFrom) {
      if (!existsSync(resumeFrom)) {
        throw new ResumeFailedError(`--resume checkpoint not found: ${resumeFrom}`);
      }
      try {
        if (typeof pipeline.resumeFrom === 'function') {
          pipeline.resumeFrom(resumeFrom);
          resumeMode = 'resumeFrom';
        } else {
          const ok = pipeline.loadCheckpoint(resumeFrom);
          if (ok === false) throw new Error('loadCheckpoint returned false');
          resumeMode = 'loadCheckpoint';
        }
        resumed = true;
      } catch (e) {
        if (e instanceof ResumeFailedError) throw e;
        throw new ResumeFailedError(
          `--resume failed to load checkpoint ${resumeFrom}: ${(e as Error).message}`,
        );
      }
    }

View on GitHub (pinned to fa13ee4ad6)