zed-industries/zed · warning
No existing predictions found. Use --provider to specify whi
Error message
No existing predictions found. Use --provider to specify which model to use for prediction.
What it means
Guard in the predict loop (predict.rs): for each example it first looks for an existing prediction (actual_patch set or non-empty actual_output). If one exists for the requested provider it is reused (early return); if one exists for a different provider, predictions are cleared and regenerated. Only when no usable prediction exists AND no --provider was passed does it bail with this message — prediction cannot proceed without knowing which model to use.
Source
Thrown at crates/edit_prediction_cli/src/predict.rs:55
example_progress: &ExampleProgress,
mut cx: AsyncApp,
) -> anyhow::Result<()> {
let repetition_count = args.repetitions;
if let Some(existing_prediction) = example.predictions.first() {
let has_prediction = existing_prediction.actual_patch.is_some()
|| !existing_prediction.actual_output.is_empty();
if has_prediction {
match args.provider {
None => return Ok(()),
Some(provider) if existing_prediction.provider == provider => return Ok(()),
Some(_) => example.predictions.clear(),
}
}
}
let Some(provider) = args.provider else {
anyhow::bail!(
"No existing predictions found. Use --provider to specify which model to use for prediction."
);
};
if let PredictionProvider::Teacher(backend, _)
| PredictionProvider::TeacherNonBatching(backend, _)
| PredictionProvider::TeacherJumps(backend)
| PredictionProvider::TeacherJumpsNonBatching(backend) = provider
{
run_context_retrieval(
example,
app_state.clone(),
example_progress,
vec![ContextRetrievalType::Lsp],
false,
cx.clone(),
)
.await?;View on GitHub (pinned to f4178619ac)
Solutions
- Pass --provider explicitly, e.g. --provider zeta2:ordered or --provider teacher:sonnet46
- Or first run the prediction step that populates actual_patch/actual_output, after which providerless re-runs will reuse them
Example fix
# before predict examples.jsonl # after predict examples.jsonl --provider zeta2:ordered
Defensive patterns
Strategy: validation
Validate before calling
// Per-example check before predicting:
let has_prediction = existing_prediction
.map(|p| p.actual_patch.is_some() || !p.actual_output.is_empty())
.unwrap_or(false);
if !has_prediction && args.provider.is_none() {
anyhow::bail!("pass --provider; example {} has no stored prediction", example.id);
} Prevention
- Always pass --provider in scripts instead of relying on previously cached predictions
- Remember a stored prediction for a different provider gets cleared and regenerated — pin one provider per dataset
- After pulling fresh examples from Snowflake, expect the first predict run to require --provider
When it happens
Trigger: Running predict on a fresh dataset (no prior predictions recorded) without --provider; or after predictions were cleared/invalidated. Note an existing prediction with matching provider makes --provider optional, so the same command can work on one dataset and fail on another.
Common situations: New pull of examples from Snowflake and re-running an old command line that relied on previously cached predictions; teammates sharing scripts where one person's dataset already has predictions and another's does not.
Understand the failure class
Background: "missing required argument" and "the following required arguments were not provided": what required-argument errors mean and how to fix them — this error's family across 20 libraries.
Related errors
- --languages and/or --extensions is required (use --list to s
- unknown teacher backend `{s}`. Valid options: sonnet45, sonn
- unknown provider `{provider}`. Valid options: mercury, zeta1
- unknown teacher backend or zeta format `{arg}`
- parse-output only supports Teacher and Zeta2 providers, got
AI-assisted analysis of zed-industries/zed@f4178619ac (2026-08-20).
Data as JSON: /api/errors/beeefcad554c1203.
Report an issue: GitHub.