multica-ai/multica · error
list members: %w
Error message
list members: %w
What it means
Wrapped failure of the HTTP GET to /api/workspaces/{id}/members performed by `multica workspace members`. Chained causes: 404 unknown workspace, 401/403 bad token or insufficient role (member listing is often restricted to admins/owners), or network/server errors.
Source
Thrown at server/cmd/multica/cmd_workspace.go:805
wsID, err := resolveWorkspaceArg(cmd, args)
if err != nil {
return err
}
if wsID == "" {
return fmt.Errorf("workspace ID is required: pass an id/slug/prefix as argument or set MULTICA_WORKSPACE_ID")
}
client, err := newAPIClient(cmd)
if err != nil {
return err
}
ctx, cancel := cli.APIContext(context.Background())
defer cancel()
var members []map[string]any
if err := client.GetJSON(ctx, "/api/workspaces/"+wsID+"/members", &members); err != nil {
return fmt.Errorf("list members: %w", err)
}
output, _ := cmd.Flags().GetString("output")
if output == "json" {
return cli.PrintJSON(os.Stdout, members)
}
headers := []string{"USER ID", "NAME", "EMAIL", "ROLE"}
rows := make([][]string, 0, len(members))
for _, m := range members {
rows = append(rows, []string{
strVal(m, "user_id"),
strVal(m, "name"),
strVal(m, "email"),
strVal(m, "role"),
})
}
cli.PrintTable(os.Stdout, headers, rows)View on GitHub (pinned to 2c0912b6ec)
Solutions
- Confirm the workspace resolves: `multica workspace get <ws>`
- Check the wrapped status: 403 means the token's role cannot list members — switch to an admin/owner token
- Fix base URL/network configuration and retry
Example fix
# before multica workspace members acme # list members: 403 # after (use an owner-scoped token) MULTICA_API_TOKEN=$OWNER_TOKEN multica workspace members acme
Defensive patterns
Strategy: try-catch
Validate before calling
if wsID == "" {
return errors.New("workspace ID is required")
} Try / catch
if err := client.GetJSON(ctx, "/api/workspaces/"+wsID+"/members", &members); err != nil {
var httpErr *apiclient.HTTPError
if errors.As(err, &httpErr) {
switch httpErr.StatusCode {
case 403:
return fmt.Errorf("token lacks permission to list members of %s", wsID)
case 404:
return fmt.Errorf("workspace %s not found", wsID)
}
}
return fmt.Errorf("list members: %w", err)
} Prevention
- Use admin/owner-scoped tokens when scripting member enumeration
- Confirm the workspace slug resolves before listing members
- Distinguish 403 (role) from 404 (bad id) in the wrapped error before retrying
When it happens
Trigger: Listing members of a nonexistent id/slug/prefix; authenticating as a role not permitted to enumerate members; server unreachable.
Common situations: Stale slug after rename; bot token with limited scopes; pointing at the wrong environment's base URL.
Related errors
- get workspace: %w
- get workspace: %w
- update workspace: %w
- list workspace mcp servers: %w
- list comments: %w
AI-assisted analysis of multica-ai/multica@2c0912b6ec (2026-08-15).
Data as JSON: /api/errors/7ed83e4a4cbf022b.
Report an issue: GitHub.