multica-ai/multica · error · service.ErrActiveDuplicate

active_duplicate_issue

active_duplicate_issue

Error message

active duplicate issue exists

What it means

Error "active duplicate issue exists" thrown in multica-ai/multica.

Source

Thrown at server/internal/service/issue.go:130

	// Platform tags the IssueCreated analytics + business-metrics event
	// with the client surface the request came in on (web / desktop /
	// daemon / lark / autopilot). Derived from middleware's client
	// metadata at the handler layer.
	Platform string

	// AssignedAgentRunFireAt creates the automatic assigned-agent task in a
	// durable deferred state. Channel /issue uses this while detached media is
	// still resolving, then promotes the returned task after attachment binding.
	// Zero preserves the ordinary immediate enqueue path.
	AssignedAgentRunFireAt time.Time
}

// ErrActiveDuplicate signals that the duplicate guard found an active
// issue with the same (workspace, project, parent, title) tuple and
// AllowDuplicate was false. The IssueCreateResult.DuplicateIssue field is
// populated when this error is returned so callers can render the
// conflict (HTTP 409, Lark card, etc.).
var ErrActiveDuplicate = errors.New("active duplicate issue exists")

// ErrParentIssueNotFound signals that the supplied ParentIssueID does
// not exist in the issue's workspace. The service refuses to create
// orphaned or cross-workspace child issues; callers translate this into
// their transport's 400 / Lark card error.
var ErrParentIssueNotFound = errors.New("parent issue not found in this workspace")

// ErrProjectNotFound signals that the supplied ProjectID does not exist
// in the issue's workspace. Cross-workspace project IDs are rejected
// here so every create entry (HTTP `POST /issues`, Lark `/issue`, future
// MCP / API key callers) enforces the same workspace boundary without
// having to remember it. Callers translate this into 400.
var ErrProjectNotFound = errors.New("project not found in this workspace")

// ErrIssueLabelNotFound signals that one of the supplied LabelIDs does not
// exist in the issue's workspace or is not an issue-scoped label. The whole
// create is rejected so a new issue is never born with a partial or wrong
// label set. Callers translate this into their transport's 400.

View on GitHub (pinned to 2c0912b6ec)

Solutions

  1. Resolve or close the existing duplicate issue before creating a new one.

When it happens

Trigger: Thrown at server/internal/service/issue.go:130 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of multica-ai/multica@2c0912b6ec (2026-08-15). Data as JSON: /api/errors/48b31b1b145f62ae. Report an issue: GitHub.