alibaba/open-code-review · error

resume requires --from/--to or --commit; workspace resume is

Error message

resume requires --from/--to or --commit; workspace resume is not supported

What it means

Validation guard in loadReviewResumeState: `--resume` was given while the current review mode resolves to workspace (uncommitted changes review). Resume is only defined for a concrete diff scope — --from/--to or --commit — because the resume state must match the same item set; resuming a workspace review is unsupported by design.

Source

Thrown at cmd/opencodereview/review_cmd.go:350

		}
		return fmt.Errorf("review failed: %d of %d selected item(s) failed",
			len(manifest.Coverage.Failed), len(manifest.Coverage.Selected))
	}
	return nil
}

func loadReviewResumeState(repoDir string, opts reviewOptions) (*session.ResumeState, error) {
	if opts.resume == "" {
		return nil, nil
	}
	current := session.SessionOptions{
		ReviewMode: reviewModeFromOptions(opts),
		DiffFrom:   opts.from,
		DiffTo:     opts.to,
		DiffCommit: opts.commit,
	}
	if current.ReviewMode == session.ReviewModeWorkspace {
		return nil, fmt.Errorf("resume requires --from/--to or --commit; workspace resume is not supported")
	}
	state, err := session.LoadReviewResumeState(repoDir, opts.resume)
	if err != nil {
		return nil, fmt.Errorf("load resume session: %w (run 'ocr session list' to see available sessions)", err)
	}
	if err := state.ValidateOptions(current); err != nil {
		return nil, fmt.Errorf("%w (run 'ocr session list' to see available sessions)", err)
	}
	// A parent whose every item failed is deliberately allowed through: it has a
	// verifiable manifest, so its whole selected set can simply be re-dispatched.
	// Whether the checkpoints may be reused at all is decided later, by
	// validateResumeIdentity, once the input identity is known.
	return state, nil
}

// validateResumeIdentity rejects a resume whose input, rules, provider or model
// no longer match the parent run.
//

View on GitHub (pinned to 5cf97d0d15)

Solutions

  1. Re-run the review with --from/--to (diff range) or --commit instead of uncommitted workspace changes, then use --resume
  2. Workspace-mode sessions cannot be resumed because the diff source is the live working tree
  3. List sessions with 'ocr session list' and pick one that was created in a diff/commit mode
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at cmd/opencodereview/review_cmd.go:350 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of alibaba/open-code-review@5cf97d0d15 (2026-09-02). Data as JSON: /api/errors/31784db2edf2c783. Report an issue: GitHub.