{"record":{"id":"cda7efe9847676ed","repo":"multica-ai/multica","slug":"issue-label-not-found-in-this-workspace","errorCode":null,"errorMessage":"issue label not found in this workspace","messagePattern":"issue label not found in this workspace","errorType":"validation","errorClass":"ErrIssueLabelNotFound","httpStatus":400,"severity":"error","filePath":"server/internal/service/issue.go","lineNumber":149,"sourceCode":"\n// ErrParentIssueNotFound signals that the supplied ParentIssueID does\n// not exist in the issue's workspace. The service refuses to create\n// orphaned or cross-workspace child issues; callers translate this into\n// their transport's 400 / Lark card error.\nvar ErrParentIssueNotFound = errors.New(\"parent issue not found in this workspace\")\n\n// ErrProjectNotFound signals that the supplied ProjectID does not exist\n// in the issue's workspace. Cross-workspace project IDs are rejected\n// here so every create entry (HTTP `POST /issues`, Lark `/issue`, future\n// MCP / API key callers) enforces the same workspace boundary without\n// having to remember it. Callers translate this into 400.\nvar ErrProjectNotFound = errors.New(\"project not found in this workspace\")\n\n// ErrIssueLabelNotFound signals that one of the supplied LabelIDs does not\n// exist in the issue's workspace or is not an issue-scoped label. The whole\n// create is rejected so a new issue is never born with a partial or wrong\n// label set. Callers translate this into their transport's 400.\nvar ErrIssueLabelNotFound = errors.New(\"issue label not found in this workspace\")\n\n// IssueCreateResult is the typed return from IssueService.Create.\n//\n//   - On the happy path: Issue is the new row, Attachments lists the\n//     linked attachments (may be empty), DuplicateIssue is nil.\n//   - On ErrActiveDuplicate: DuplicateIssue is the row that blocked the\n//     create; Issue and Attachments are zero.\ntype IssueCreateResult struct {\n\tIssue       db.Issue\n\tAttachments []db.Attachment\n\t// AssignedTaskID is populated when Create enqueues the automatic task for\n\t// an agent assignee, including a task deferred by AssignedAgentRunFireAt.\n\tAssignedTaskID pgtype.UUID\n\t// Labels is the authoritative set of labels attached to the new issue in\n\t// the create transaction (empty when none were requested). Callers echo it\n\t// on the create response + issue:created event so every client renders the\n\t// new issue already labeled and a new client can detect that the backend\n\t// understood label_ids (see the create handler's compatibility contract).","sourceCodeStart":131,"sourceCodeEnd":167,"githubUrl":"https://github.com/multica-ai/multica/blob/2c0912b6ec764b373d44eeea1e80f0d9f11ab417/server/internal/service/issue.go#L131-L167","documentation":"Error \"issue label not found in this workspace\" thrown in multica-ai/multica.","triggerScenarios":"Thrown at server/internal/service/issue.go:149 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Pick a label that exists in this workspace."],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"2c0912b6ec764b373d44eeea1e80f0d9f11ab417","analyzedAt":"2026-08-15T13:25:18.241Z","schemaVersion":2},"datasetVersion":"2026-08-15T22:17:37.221Z"}