can1357/oh-my-pi · error
cloud status requires a configuration id
Error message
cloud status requires a configuration id
What it means
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.
Source
Thrown at packages/coding-agent/src/slash-commands/helpers/security.ts:312
return;
}
case "start": {
if (!options.repositoryId || !options.repositoryUrl || !options.environmentId) {
throw new Error("cloud start requires --repo-id, --repo-url, and --environment");
}
const configuration = await client.startScan({
repositoryId: options.repositoryId,
repositoryUrl: options.repositoryUrl,
environmentId: options.environmentId,
lookbackDays: options.lookbackDays,
});
await runtime.output(
`Codex Security cloud scan ${configuration.id} started for ${configuration.repositoryUrl}. This consumes cloud scan allowance.`,
);
return;
}
case "status": {
if (!options.configurationId) throw new Error("cloud status requires a configuration id");
await runtime.output(JSON.stringify(await client.getStats(options.configurationId), null, 2));
return;
}
case "pull": {
if (!options.configurationId) throw new Error("cloud pull requires a configuration id");
const store = await SecurityStore.openForCwd(runtime.cwd);
const bundle = await pullCodexSecurityCloudResults({
client,
configurationId: options.configurationId,
store,
});
await runtime.output(
`Imported ${bundle.findings.length} Codex Security cloud finding(s) as security scan ${bundle.scan.id}.`,
);
return;
}
default:
throw new Error("Usage: /security cloud <scans|start|status|pull>");View on GitHub (pinned to 9690622007)
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.
Example fix
// before /security cloud status // after /security cloud status secconf_abc
Defensive patterns
Strategy: validation
Validate before calling
if (sub === "status" && args.trim().split(/\s+/).filter(Boolean).length === 0) {
throw new Error("usage: /security cloud status <configuration-id>");
} Prevention
- 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.
When it happens
Trigger: Run `/security cloud status` with no arguments, or `/security cloud status --lookback 30` where only flags were given and no positional id.
Common situations: 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.
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
- Usage: omp auth-broker import <file|dir> [--provider=<id>] [
- No snippet provided. Pass inline text, --file <path>, or pip
- setup --check/--json requires a COMPONENT (python|speech)
- cloud pull requires a configuration id
- disposition requires <scan-id> <finding-id> <status> [ration
AI-assisted analysis of can1357/oh-my-pi@9690622007 (2026-08-31).
Data as JSON: /api/errors/60172b0a55d78e27.
Report an issue: GitHub.