{"record":{"id":"eb04a39aa98bb5dc","repo":"paperclipai/paperclip","slug":"issue-has-no-assigned-agent-to-wake","errorCode":null,"errorMessage":"Issue has no assigned agent to wake","messagePattern":"Issue has no assigned agent to wake","errorType":"exception","errorClass":"Error","httpStatus":null,"severity":"error","filePath":"server/src/services/plugin-host-services.ts","lineNumber":2169,"sourceCode":"          ...(relationPairs ? { relations: Object.fromEntries(relationPairs) } : {}),\n          ...(documentPairs ? { documents: Object.fromEntries(documentPairs) } : {}),\n          ...(activeRuns ? { activeRuns } : {}),\n          ...(assigneeRows\n            ? {\n                assignees: Object.fromEntries(assigneeRows.map((agent) => [\n                  agent.id,\n                  { ...agent, status: agent.status as Agent[\"status\"] } as PluginIssueAssigneeSummary,\n                ])),\n              }\n            : {}),\n        };\n      },\n      async requestWakeup(params) {\n        const companyId = ensureCompanyId(params.companyId);\n        await ensurePluginAvailableForCompany(companyId);\n        const issue = requireInCompany(\"Issue\", await issues.getById(params.issueId), companyId);\n        if (!issue.assigneeAgentId) {\n          throw new Error(\"Issue has no assigned agent to wake\");\n        }\n        if ([\"backlog\", \"done\", \"cancelled\"].includes(issue.status)) {\n          throw new Error(`Issue is not wakeable in status: ${issue.status}`);\n        }\n        const relations = await issues.getRelationSummaries(issue.id);\n        const unresolvedBlockers = relations.blockedBy.filter((blocker) => blocker.status !== \"done\");\n        if (unresolvedBlockers.length > 0) {\n          throw new Error(\"Issue is blocked by unresolved blockers\");\n        }\n        const budgetBlock = await budgets.getInvocationBlock(companyId, issue.assigneeAgentId, {\n          issueId: issue.id,\n          projectId: issue.projectId,\n        });\n        if (budgetBlock) {\n          throw new Error(budgetBlock.reason);\n        }\n        const contextSource = params.contextSource ?? \"plugin.issue.requestWakeup\";\n        const run = await heartbeat.wakeup(issue.assigneeAgentId, {","sourceCodeStart":2151,"sourceCodeEnd":2187,"githubUrl":"https://github.com/paperclipai/paperclip/blob/a7e689b3c35347b529cb9f54c9b9a8575a3dcab6/server/src/services/plugin-host-services.ts#L2151-L2187","documentation":"requestWakeup found the target issue has no assigneeAgentId. Waking an issue means nudging its assigned agent; with no assignee there is nothing to wake, so the request is rejected.","triggerScenarios":"Thrown at server/src/services/plugin-host-services.ts:2160 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Assign an agent to the issue before requesting a wake; check the issue's assignee field and set it first if empty."],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"a7e689b3c35347b529cb9f54c9b9a8575a3dcab6","analyzedAt":"2026-08-18T22:49:45.177Z","contentChangedAt":"2026-08-18T22:49:45.177Z","schemaVersion":2},"datasetVersion":"2026-09-14T05:17:10.506Z"}