{"record":{"id":"68b27124508e5594","repo":"paperclipai/paperclip","slug":"unsupported-inbox-item-key","errorCode":null,"errorMessage":"Unsupported inbox item key","messagePattern":"Unsupported inbox item key","errorType":"http","errorClass":null,"httpStatus":400,"severity":"error","filePath":"server/src/routes/inbox-dismissals.ts","lineNumber":106,"sourceCode":"          kind: dismissal.kind,\n          dismissedAt: dismissal.dismissedAt,\n          snoozedUntil: dismissal.snoozedUntil,\n        },\n      });\n\n      res.status(201).json(dismissal);\n    },\n  );\n\n  router.delete(\"/companies/:companyId/inbox-dismissals/:itemKey\", async (req, res) => {\n    const companyId = req.params.companyId as string;\n    assertCompanyAccess(req, companyId);\n    const userId = requireBoardUser(req, res);\n    if (!userId) return;\n\n    const itemKey = req.params.itemKey as string;\n    if (!ITEM_KEY_RE.test(itemKey)) {\n      res.status(400).json({ error: \"Unsupported inbox item key\" });\n      return;\n    }\n\n    const restored = await svc.restore(companyId, userId, itemKey);\n    if (restored) {\n      const actor = getActorInfo(req);\n      await logActivity(db, {\n        companyId,\n        actorType: actor.actorType,\n        actorId: actor.actorId,\n        agentId: actor.agentId,\n        runId: actor.runId,\n        agentApiKeyId: actor.agentApiKeyId,\n        action: \"inbox.restored\",\n        entityType: \"company\",\n        entityId: companyId,\n        details: {\n          userId,","sourceCodeStart":88,"sourceCodeEnd":124,"githubUrl":"https://github.com/paperclipai/paperclip/blob/120ae5428fa29bee300bcf806491cd4d965fbb7c/server/src/routes/inbox-dismissals.ts#L88-L124","documentation":"Error \"Unsupported inbox item key\" thrown in paperclipai/paperclip.","triggerScenarios":"Thrown at server/src/routes/inbox-dismissals.ts:106 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Correct the request so it satisfies the condition stated in the error message, then retry; see the throwing line in the named file for the exact check."],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"120ae5428fa29bee300bcf806491cd4d965fbb7c","analyzedAt":"2026-08-18T22:49:45.177Z","contentChangedAt":"2026-08-18T22:49:45.177Z","schemaVersion":2},"datasetVersion":"2026-09-14T05:17:10.506Z"}