paperclipai/paperclip · error

${existing.orgChainHealth?.repairGuidance ?? "Repair this…

Error message

${existing.orgChainHealth?.repairGuidance ?? "Repair this agent's reporting chain before resuming it"}

What it means

Org-health conflict guard on POST /agents/:id/resume: the agent's reporting chain is currently invalid (orgChainHealth status 'invalid_org_chain' — e.g. its manager no longer exists), so resuming is blocked with 409 and the agent-specific repair guidance text is returned.

Solutions

  1. Repair the agent's reporting chain per the repair guidance, then resume the agent.
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at server/src/routes/agents.ts:3955 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of paperclipai/paperclip@3f1d897a7c (2026-08-18). Data as JSON: /api/errors/a7ef29192e686dcd. Report an issue: GitHub.

Appendix: source

Thrown at server/src/routes/agents.ts:4210

  router.get("/agents/:id", async (req, res) => {
    const id = req.params.id as string;
    const agent = await getAccessibleResource(req, res, svc.getById(id), "Agent not found");
    if (!agent) return;
    if (!(await assertAgentReadAllowed(req, res, agent))) return;
    const isSelf = req.actor.type === "agent" && req.actor.agentId === id;
    if (isSelf) {
      const trustPreset = await resolveAgentSelfTrustPreset(req, agent);
      if (trustPreset.kind === "denied") {
        res.status(403).json({ error: trustPreset.detail });
        return;
      }
      if (trustPreset.kind === "low_trust_review") {
        res.json(buildLowTrustSelfView(agent));
        return;
      }
    }
    const canReadSensitiveDetail = isSelf
      ? true
      : await actorCanReadConfigurationsForCompany(req, agent.companyId);
    if (!canReadSensitiveDetail) {
      res.json(await buildAgentDetail(agent, { restricted: true }));
      return;
    }
    res.json(await buildAgentDetail(agent));
  });

  router.get("/agents/:id/configuration", async (req, res) => {
    const id = req.params.id as string;
    const agent = await svc.getById(id);
    if (!agent) {
      res.status(404).json({ error: "Agent not found" });
      return;
    }
    await assertCanReadConfigurations(req, agent.companyId);
    res.json(redactAgentConfiguration(agent));

View on GitHub (pinned to 3f1d897a7c)