multica-ai/multica · error
--output is required
Error message
--output is required
What it means
Simple flag guard in runPluginPack (cmd_plugin.go:192): `multica plugin pack <dir> --output <path>` was invoked without a non-empty --output value. Packing requires an explicit destination file for the produced archive; there is no default.
Source
Thrown at server/cmd/multica/cmd_plugin.go:192
cli.PrintTable(cmd.OutOrStdout(), []string{"PLUGIN", "VERSION", "MANIFEST", "ARCHIVE", "ARTIFACT"}, [][]string{{
result.PluginKey, result.Version, result.ManifestDigest, result.ArchiveDigest, result.ArtifactDigest,
}})
return nil
}
func runPluginValidate(cmd *cobra.Command, args []string) error {
_, artifact, err := loadPluginSource(args[0])
if err != nil {
return fmt.Errorf("validate Plugin: %w", err)
}
output, _ := cmd.Flags().GetString("output")
return printPluginDigest(cmd, pluginDigestResult(artifact), output)
}
func runPluginPack(cmd *cobra.Command, args []string) error {
outputPath, _ := cmd.Flags().GetString("output")
if outputPath == "" {
return fmt.Errorf("--output is required")
}
archive, artifact, err := plugincontract.PackDirectory(args[0])
if err != nil {
return fmt.Errorf("pack Plugin: %w", err)
}
if err := os.WriteFile(filepath.Clean(outputPath), archive, 0o644); err != nil {
return fmt.Errorf("write Plugin archive: %w", err)
}
format, _ := cmd.Flags().GetString("format")
return printPluginDigest(cmd, pluginDigestResult(artifact), format)
}
func pluginWorkspaceID(cmd *cobra.Command) (string, error) {
workspace, _ := cmd.Flags().GetString("workspace")
if workspace == "" {
return requireWorkspaceID(cmd)
}
ctx, cancel := cli.APIContext(context.Background())View on GitHub (pinned to 2c0912b6ec)
Solutions
- Pass the flag: `multica plugin pack ./my-plugin --output ./dist/my-plugin.zip`.
- In scripts, default the variable: `OUTPUT=${OUTPUT:-./dist/plugin.zip}` before invoking.
- Check for a typo'd flag name (e.g. --out) — cobra silently ignores unknown flags only with LooseParse; normally it errors, but an empty value still triggers this.
Example fix
// before multica plugin pack ./my-plugin // --output is required // after multica plugin pack ./my-plugin --output ./dist/my-plugin-0.1.0.zip
Defensive patterns
Strategy: validation
Validate before calling
outputPath := os.Getenv("PLUGIN_OUTPUT")
if outputPath == "" { outputPath = "./dist/plugin.zip" }
os.MkdirAll(filepath.Dir(outputPath), 0o755) Prevention
- Default --output in wrapper scripts: OUTPUT=${OUTPUT:-./dist/plugin.zip}.
- Treat pack failures in CI as config errors — assert the flag is set before the job starts.
When it happens
Trigger: Running `multica plugin pack ./my-plugin` with the --output flag omitted or set to the empty string.
Common situations: Assuming pack writes plugin.zip into the source directory by default; CI script built by concatenating variables where $OUTPUT is unset.
Related errors
- --%s, --%s-stdin, and --%s-file are mutually exclusive; pick
- --title is required
- --%s-file: path must not be empty
- --runtime-id must not be empty
- --name must not be empty
AI-assisted analysis of multica-ai/multica@2c0912b6ec (2026-08-15).
Data as JSON: /api/errors/dda53061531264f2.
Report an issue: GitHub.