{"record":{"id":"c110accbf1f3b0d0","repo":"paperclipai/paperclip","slug":"window-must-be-a-positive-number-of-seconds","errorCode":null,"errorMessage":"Window must be a positive number of seconds","messagePattern":"Window must be a positive number of seconds","errorType":"exception","errorClass":"Error","httpStatus":null,"severity":"error","filePath":"ui/src/pages/tools/PoliciesTab.tsx","lineNumber":239,"sourceCode":"  }\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\nfunction windowLabel(seconds: string | number | null | undefined) {\n  const value = Number(seconds);","sourceCodeStart":221,"sourceCodeEnd":257,"githubUrl":"https://github.com/paperclipai/paperclip/blob/120ae5428fa29bee300bcf806491cd4d965fbb7c/ui/src/pages/tools/PoliciesTab.tsx#L221-L257","documentation":"Error \"Window must be a positive number of seconds\" thrown in paperclipai/paperclip.","triggerScenarios":"Thrown at ui/src/pages/tools/PoliciesTab.tsx:239 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Enter a positive number of seconds for the window."],"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"}