can1357/oh-my-pi · error

cloud pull requires a configuration id

Error message

cloud pull requires a configuration id

What it means

Thrown by handleCloudCommand's `pull` case when no configuration id was provided. Like `status`, `pull` takes the id only as a bare positional token; without it, results cannot be fetched, so the handler rejects before opening the local SecurityStore or calling the cloud client.

Source

Thrown at packages/coding-agent/src/slash-commands/helpers/security.ts:317

			}
			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>");
	}
}

async function updateDisposition(runtime: SlashCommandRuntime, rest: string): Promise<void> {
	const [scanId, findingId, status, ...rationaleParts] = parseCommandArgs(rest);

View on GitHub (pinned to 9690622007)

Solutions

  1. Pass the configuration id positionally: `/security cloud pull secconf_abc`.
  2. List configurations and their ids with `/security cloud scans` first.
  3. Optionally combine with --credential: `/security cloud pull secconf_abc --credential 2`.

Example fix

// before
/security cloud pull
// after
/security cloud pull secconf_abc
Defensive patterns

Strategy: validation

Validate before calling

if (sub === "pull" && args.trim().split(/\s+/).filter(Boolean).length === 0) {
	throw new Error("usage: /security cloud pull <configuration-id>");
}

Prevention

When it happens

Trigger: Run `/security cloud pull` with no arguments, or with only flags such as `/security cloud pull --credential 2`.

Common situations: Assuming `pull` imports all configurations' results; omitting the id after copying only the flag part of an example; not knowing the id (find it via `/security cloud scans`).

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


AI-assisted analysis of can1357/oh-my-pi@9690622007 (2026-08-31). Data as JSON: /api/errors/ee1441dc97b37764. Report an issue: GitHub.