warpdotdev/warp · error

'{id}' is not a saved prompt

Error message

'{id}' is not a saved prompt

What it means

The ID parsed successfully and CloudModel::get_workflow found a synced object, but its data has no prompt (cloud_workflow.model().data.prompt() is None, app/src/ai/agent_sdk/ambient.rs:289-296). The ID therefore points at a workflow-like entity that is not a saved prompt, and the run aborts via report_fatal_error.

Source

Thrown at app/src/ai/agent_sdk/ambient.rs:293

                        Ok(server_id) => server_id.into(),
                        Err(err) => {
                            super::report_fatal_error(
                                anyhow::anyhow!("Failed to parse saved prompt ID '{id}': {err}"),
                                ctx,
                            );
                            return;
                        }
                    };

                    let cloud_model = CloudModel::handle(ctx);
                    let workflow = cloud_model.as_ref(ctx).get_workflow(&sync_id);

                    match workflow {
                        Some(cloud_workflow) => match cloud_workflow.model().data.prompt() {
                            Some(prompt_text) => Some(prompt_text.to_string()),
                            None => {
                                super::report_fatal_error(
                                    anyhow::anyhow!("'{id}' is not a saved prompt"),
                                    ctx,
                                );
                                return;
                            }
                        },
                        None => {
                            super::report_fatal_error(
                                anyhow::anyhow!("Saved prompt with ID '{id}' not found"),
                                ctx,
                            );
                            return;
                        }
                    }
                }
                None => None,
            };

            let loaded_file = match args.config_file.file.as_deref() {

View on GitHub (pinned to e72fd7aacb)

Solutions

  1. List saved prompts and use an ID whose entry is actually a prompt
  2. Verify in the UI that the object behind the ID is a Prompt before referencing it
Defensive patterns

Strategy: type-guard

Type guard

fn is_saved_prompt(cloud_model: &CloudModel, sync_id: &SyncId) -> bool {
    matches!(cloud_model.get_workflow(sync_id),
        Some(w) if w.model().data.prompt().is_some())
}

Prevention

When it happens

Trigger: Passing the sync ID of a non-prompt workflow object (e.g. another workflow type, ruleset-backed object, or notebook) where a saved-prompt ID is expected.

Common situations: Copying a workflow ID from Drive/URLs assuming all synced IDs are prompts; IDs surfaced in logs of other entity types.

Related errors


AI-assisted analysis of warpdotdev/warp@e72fd7aacb (2026-08-16). Data as JSON: /api/errors/5c84b71699491ab0. Report an issue: GitHub.