{"record":{"id":"5c84b71699491ab0","repo":"warpdotdev/warp","slug":"id-is-not-a-saved-prompt","errorCode":null,"errorMessage":"'{id}' is not a saved prompt","messagePattern":"'(.+?)' is not a saved prompt","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"app/src/ai/agent_sdk/ambient.rs","lineNumber":293,"sourceCode":"                        Ok(server_id) => server_id.into(),\n                        Err(err) => {\n                            super::report_fatal_error(\n                                anyhow::anyhow!(\"Failed to parse saved prompt ID '{id}': {err}\"),\n                                ctx,\n                            );\n                            return;\n                        }\n                    };\n\n                    let cloud_model = CloudModel::handle(ctx);\n                    let workflow = cloud_model.as_ref(ctx).get_workflow(&sync_id);\n\n                    match workflow {\n                        Some(cloud_workflow) => match cloud_workflow.model().data.prompt() {\n                            Some(prompt_text) => Some(prompt_text.to_string()),\n                            None => {\n                                super::report_fatal_error(\n                                    anyhow::anyhow!(\"'{id}' is not a saved prompt\"),\n                                    ctx,\n                                );\n                                return;\n                            }\n                        },\n                        None => {\n                            super::report_fatal_error(\n                                anyhow::anyhow!(\"Saved prompt with ID '{id}' not found\"),\n                                ctx,\n                            );\n                            return;\n                        }\n                    }\n                }\n                None => None,\n            };\n\n            let loaded_file = match args.config_file.file.as_deref() {","sourceCodeStart":275,"sourceCodeEnd":311,"githubUrl":"https://github.com/warpdotdev/warp/blob/e72fd7aacbbb2236d9b3be2aad7e7178fe94b4bc/app/src/ai/agent_sdk/ambient.rs#L275-L311","documentation":"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.","triggerScenarios":"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.","commonSituations":"Copying a workflow ID from Drive/URLs assuming all synced IDs are prompts; IDs surfaced in logs of other entity types.","solutions":["List saved prompts and use an ID whose entry is actually a prompt","Verify in the UI that the object behind the ID is a Prompt before referencing it"],"exampleFix":null,"handlingStrategy":"type-guard","validationCode":null,"typeGuard":"fn is_saved_prompt(cloud_model: &CloudModel, sync_id: &SyncId) -> bool {\n    matches!(cloud_model.get_workflow(sync_id),\n        Some(w) if w.model().data.prompt().is_some())\n}","tryCatchPattern":null,"preventionTips":["Narrow on prompt presence (data.prompt().is_some()) before using an ID as a saved prompt","Source IDs from a saved-prompts listing, not from generic workflow/Drive URLs"],"tags":["saved-prompts","type-guard","cli"],"backgroundTag":null,"analyzedSha":"e72fd7aacbbb2236d9b3be2aad7e7178fe94b4bc","analyzedAt":"2026-08-16T08:27:25.381Z","schemaVersion":2},"datasetVersion":"2026-08-16T13:17:31.715Z"}