multica-ai/multica · error
list Private Plugins: %w
Error message
list Private Plugins: %w
What it means
Wrap in runPluginList (cmd_plugin.go:286): `multica plugin list` failed while fetching the workspace's private plugins — either in workspace resolution (pluginWorkspaceID -> requireWorkspaceID or API lookup of the --workspace slug/prefix) or in the GET to /api/workspaces/{id}/plugins/private performed by fetchPrivatePlugins.
Source
Thrown at server/cmd/multica/cmd_plugin.go:286
return response.Plugins, nil
}
func printPluginRows(cmd *cobra.Command, plugins []map[string]any) error {
rows := make([][]string, 0, len(plugins))
for _, plugin := range plugins {
rows = append(rows, []string{
strVal(plugin, "plugin_key"), strVal(plugin, "desired_version"), strVal(plugin, "lifecycle_status"),
strVal(plugin, "trust_tier"), strVal(plugin, "uploader_id"),
})
}
cli.PrintTable(cmd.OutOrStdout(), []string{"PLUGIN", "VERSION", "STATUS", "TRUST", "UPLOADER"}, rows)
return nil
}
func runPluginList(cmd *cobra.Command, _ []string) error {
plugins, err := fetchPrivatePlugins(cmd)
if err != nil {
return fmt.Errorf("list Private Plugins: %w", err)
}
output, _ := cmd.Flags().GetString("output")
if output == "json" {
return cli.PrintJSON(cmd.OutOrStdout(), plugins)
}
return printPluginRows(cmd, plugins)
}
func runPluginStatus(cmd *cobra.Command, args []string) error {
if len(args) == 1 {
workspaceID, err := pluginWorkspaceID(cmd)
if err != nil {
return err
}
client, err := newAPIClient(cmd)
if err != nil {
return err
}View on GitHub (pinned to 2c0912b6ec)
Solutions
- Pass an explicit workspace: `multica plugin list --workspace <id-or-slug>`.
- Verify the workspace exists: `multica workspace list` (or the /api/workspaces endpoint) and correct the stored/supplied value.
- Re-login if auth is the wrapped cause; check server health for 5xx/connection errors.
Example fix
// before multica plugin list // list Private Plugins: workspace "mai" is ambiguous // after multica workspace list multica plugin list --workspace main
Defensive patterns
Strategy: validation
Validate before calling
if wsID == "" {
return fmt.Errorf("no workspace: pass --workspace or configure a default")
} Try / catch
if err := listCmd.Run(); err != nil {
if strings.Contains(err.Error(), "list Private Plugins") {
// check workspace resolution vs API failure via wrapped cause
}
} Prevention
- Always pass --workspace explicitly in scripts.
- Verify the workspace with `multica workspace list` after login and before plugin operations.
- Re-login when tokens rotate; store the workspace ID alongside the token in automation secrets.
When it happens
Trigger: No --workspace flag and no resolvable current workspace context; --workspace slug/prefix matches nothing or is ambiguous; GET returns 401/403/5xx; server unreachable.
Common situations: Fresh checkout with no workspace configured; workspace was deleted after the CLI stored its ID; typo in the slug; token from another workspace.
Related errors
- install Private Plugin: %w
- get Private Plugin status: %w
- workspace ID is required to resolve agents; use --workspace-
- fetch agents: %w
- read chat: %w
AI-assisted analysis of multica-ai/multica@2c0912b6ec (2026-08-15).
Data as JSON: /api/errors/fa1c2ae489dc3319.
Report an issue: GitHub.