{"record":{"id":"049ddff7e24f6e47","repo":"paperclipai/paperclip","slug":"limit-must-be-a-positive-integer","errorCode":null,"errorMessage":"Limit must be a positive integer","messagePattern":"Limit must be a positive integer","errorType":"exception","errorClass":"Error","httpStatus":null,"severity":"error","filePath":"ui/src/pages/tools/PoliciesTab.tsx","lineNumber":237,"sourceCode":"  if (!Number.isInteger(priority) || priority < 0 || priority > 10000) {\n    throw new Error(\"Priority must be an integer from 0 to 10000\");\n  }\n  const selectors: Record<string, unknown> = {};\n  if (form.actorType !== ANY_VALUE) selectors.actorType = form.actorType;\n  if (form.whenMode === \"agent\" && form.agentId !== ANY_VALUE) selectors.agentId = form.agentId;\n  if (form.whenMode === \"project\" && form.projectId !== ANY_VALUE) selectors.projectId = form.projectId;\n  if (form.usesMode === \"app\" && form.applicationId !== ANY_VALUE) selectors.applicationId = form.applicationId;\n  if (form.connectionId !== ANY_VALUE) selectors.connectionId = form.connectionId;\n  if (form.usesMode === \"capability\" && form.riskLevel !== ANY_VALUE) selectors.riskLevel = form.riskLevel;\n  const toolNames = form.usesMode === \"actions\" ? parseList(form.toolNames) : [];\n  if (toolNames.length === 1) selectors.toolName = toolNames[0];\n  if (toolNames.length > 1) selectors.toolNames = toolNames;\n\n  let config: Record<string, unknown> | null = null;\n  if (form.policyType === \"rate_limit\") {\n    const limit = Number(form.rateLimitLimit);\n    const windowSeconds = Number(form.rateLimitWindowSeconds);\n    if (!Number.isInteger(limit) || limit <= 0) throw new Error(\"Limit must be a positive integer\");\n    if (!Number.isInteger(windowSeconds) || windowSeconds <= 0) {\n      throw new Error(\"Window must be a positive number of seconds\");\n    }\n    config = { rateLimit: { limit, windowSeconds, keyBy: form.rateLimitKeyBy } };\n  }\n\n  return {\n    name: form.name.trim(),\n    description: form.description.trim() || null,\n    policyType: form.policyType,\n    priority,\n    enabled: form.enabled,\n    selectors,\n    conditions: null,\n    config,\n  };\n}\n","sourceCodeStart":219,"sourceCodeEnd":255,"githubUrl":"https://github.com/paperclipai/paperclip/blob/120ae5428fa29bee300bcf806491cd4d965fbb7c/ui/src/pages/tools/PoliciesTab.tsx#L219-L255","documentation":"Error \"Limit must be a positive integer\" thrown in paperclipai/paperclip.","triggerScenarios":"Thrown at ui/src/pages/tools/PoliciesTab.tsx:237 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Enter a positive integer for the limit."],"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-14T00:17:10.932Z"}