{"record":{"id":"7b440bcb2b5b6757","repo":"ruvnet/ruflo","slug":"resume-checkpoint-not-found-resumefrom","errorCode":null,"errorMessage":"--resume checkpoint not found: ${resumeFrom}","messagePattern":"--resume checkpoint not found: (.+?)","errorType":"validation","errorClass":"ResumeFailedError","httpStatus":null,"severity":"error","filePath":"v3/@claude-flow/cli/src/services/native-training.ts","lineNumber":116,"sourceCode":"      epochs,\n      inputDim: dim,\n      outputDim: dim,\n    };\n    // 0 (or omitted) disables validation; only pass a real holdout through.\n    if (typeof validationSplit === 'number' && validationSplit > 0) {\n      pipelineConfig.validationSplit = validationSplit;\n    }\n    const pipeline = new ruvllm.TrainingPipeline(pipelineConfig);\n\n    // Resume BEFORE training. Prefer resumeFrom() (2.6.0 — epoch position +\n    // optimizer state); fall back to loadCheckpoint() (2.5.7 — weights only).\n    // Any failure with an explicit --resume is loud (ResumeFailedError),\n    // never silent fresh training.\n    let resumed = false;\n    let resumeMode: 'resumeFrom' | 'loadCheckpoint' | undefined;\n    if (resumeFrom) {\n      if (!existsSync(resumeFrom)) {\n        throw new ResumeFailedError(`--resume checkpoint not found: ${resumeFrom}`);\n      }\n      try {\n        if (typeof pipeline.resumeFrom === 'function') {\n          pipeline.resumeFrom(resumeFrom);\n          resumeMode = 'resumeFrom';\n        } else {\n          const ok = pipeline.loadCheckpoint(resumeFrom);\n          if (ok === false) throw new Error('loadCheckpoint returned false');\n          resumeMode = 'loadCheckpoint';\n        }\n        resumed = true;\n      } catch (e) {\n        if (e instanceof ResumeFailedError) throw e;\n        throw new ResumeFailedError(\n          `--resume failed to load checkpoint ${resumeFrom}: ${(e as Error).message}`,\n        );\n      }\n    }","sourceCodeStart":98,"sourceCodeEnd":134,"githubUrl":"https://github.com/ruvnet/ruflo/blob/fa13ee4ad60ac2090b1480656eb233521790d640/v3/@claude-flow/cli/src/services/native-training.ts#L98-L134","documentation":"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.","triggerScenarios":"Thrown at v3/@claude-flow/cli/src/services/native-training.ts:116 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Verify the checkpoint path exists","Run training without --resume to start a fresh run"],"exampleFix":"Verify the --resume checkpoint path exists and is readable; list saved checkpoints and pick a valid one.","handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"fa13ee4ad60ac2090b1480656eb233521790d640","analyzedAt":"2026-08-18T21:34:22.708Z","contentChangedAt":"2026-08-18T21:34:22.708Z","schemaVersion":2},"datasetVersion":"2026-09-23T08:17:48.524Z"}