{"record":{"id":"60172b0a55d78e27","repo":"can1357/oh-my-pi","slug":"cloud-status-requires-a-configuration-id","errorCode":null,"errorMessage":"cloud status requires a configuration id","messagePattern":"cloud status requires a configuration id","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"packages/coding-agent/src/slash-commands/helpers/security.ts","lineNumber":312,"sourceCode":"\t\t\treturn;\n\t\t}\n\t\tcase \"start\": {\n\t\t\tif (!options.repositoryId || !options.repositoryUrl || !options.environmentId) {\n\t\t\t\tthrow new Error(\"cloud start requires --repo-id, --repo-url, and --environment\");\n\t\t\t}\n\t\t\tconst configuration = await client.startScan({\n\t\t\t\trepositoryId: options.repositoryId,\n\t\t\t\trepositoryUrl: options.repositoryUrl,\n\t\t\t\tenvironmentId: options.environmentId,\n\t\t\t\tlookbackDays: options.lookbackDays,\n\t\t\t});\n\t\t\tawait runtime.output(\n\t\t\t\t`Codex Security cloud scan ${configuration.id} started for ${configuration.repositoryUrl}. This consumes cloud scan allowance.`,\n\t\t\t);\n\t\t\treturn;\n\t\t}\n\t\tcase \"status\": {\n\t\t\tif (!options.configurationId) throw new Error(\"cloud status requires a configuration id\");\n\t\t\tawait runtime.output(JSON.stringify(await client.getStats(options.configurationId), null, 2));\n\t\t\treturn;\n\t\t}\n\t\tcase \"pull\": {\n\t\t\tif (!options.configurationId) throw new Error(\"cloud pull requires a configuration id\");\n\t\t\tconst store = await SecurityStore.openForCwd(runtime.cwd);\n\t\t\tconst bundle = await pullCodexSecurityCloudResults({\n\t\t\t\tclient,\n\t\t\t\tconfigurationId: options.configurationId,\n\t\t\t\tstore,\n\t\t\t});\n\t\t\tawait runtime.output(\n\t\t\t\t`Imported ${bundle.findings.length} Codex Security cloud finding(s) as security scan ${bundle.scan.id}.`,\n\t\t\t);\n\t\t\treturn;\n\t\t}\n\t\tdefault:\n\t\t\tthrow new Error(\"Usage: /security cloud <scans|start|status|pull>\");","sourceCodeStart":294,"sourceCodeEnd":330,"githubUrl":"https://github.com/can1357/oh-my-pi/blob/969062200754ea02cfac922e5ebb8c608c079e15/packages/coding-agent/src/slash-commands/helpers/security.ts#L294-L330","documentation":"Thrown by handleCloudCommand's `status` case when no configuration id was provided. `status` accepts the id only as a bare positional argument (when the subcommand is status/pull); flags are not parsed for it, so any invocation without the positional fails before contacting the API.","triggerScenarios":"Run `/security cloud status` with no arguments, or `/security cloud status --lookback 30` where only flags were given and no positional id.","commonSituations":"Expecting `status` with no args to show all scans (use `/security cloud scans` instead); wrapping the id in a flag form the parser doesn't recognize; forgetting the id after switching from a previous command.","solutions":["Pass the configuration id as a positional: `/security cloud status secconf_abc`.","To list all configurations (with their ids), use `/security cloud scans`.","Run plain `/security` status (without `cloud`) with no args to list local scan operations."],"exampleFix":"// before\n/security cloud status\n// after\n/security cloud status secconf_abc","handlingStrategy":"validation","validationCode":"if (sub === \"status\" && args.trim().split(/\\s+/).filter(Boolean).length === 0) {\n\tthrow new Error(\"usage: /security cloud status <configuration-id>\");\n}","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Always append the configuration id as a positional after `status`.","Use `/security cloud scans` (no id) to enumerate configurations and their ids.","Do not wrap the id in an unrecognized flag."],"tags":["cli","missing-argument","usage"],"backgroundTag":"missing-required-argument","analyzedSha":"969062200754ea02cfac922e5ebb8c608c079e15","analyzedAt":"2026-08-31T10:29:35.737Z","schemaVersion":2},"datasetVersion":"2026-08-31T14:17:45.589Z"}