{"record":{"id":"545db4e02cc542ba","repo":"xai-org/x-algorithm","slug":"regex-maximumpendingrequests-must-be-greater-than","errorCode":null,"errorMessage":"Regex maximumPendingRequests must be greater than 0","messagePattern":"Regex maximumPendingRequests must be greater than 0","errorType":"validation","errorClass":"ConfigFailure","httpStatus":null,"severity":"error","filePath":"botmaker/src/scala/com/twitter/botmaker/runtime/config/RegexConfigs.scala","lineNumber":29,"sourceCode":"\n  override def apply(context: Context[RegexOptionConfigs], config: RegexConfig): RegexConfig = {\n    context.getRuntime.addRegexOptions(config)\n    config\n  }\n}\n\ntrait RegexOptionConfigs extends ServiceConfigs {\n\n  private final var regexOptions = new RegexConfig()\n    .setTimeoutMilis(1000L)\n    .setMaximumPendingRequests(20L)\n\n  final def getRegexOptions: RegexConfig = regexOptions\n\n  final def addRegexOptions(config: RegexConfig): Unit = {\n\n    if (config.maximumPendingRequests <= 0) {\n      throw ConfigFailure(\n        s\"Regex maximumPendingRequests must be greater than 0\"\n      )\n    }\n\n    if (config.timeoutMilis <= 0) {\n      throw ConfigFailure(\n        s\"Regex timeoutMilis must be greater than 0\"\n      )\n    }\n\n    if (config.maximumCacheItems <= 0) {\n      throw ConfigFailure(\n        s\"Regex maximumCacheItems must be greater than 0\"\n      )\n    }\n\n    if (config.cacheExpirationMillis <= 0) {\n      throw ConfigFailure(","sourceCodeStart":11,"sourceCodeEnd":47,"githubUrl":"https://github.com/xai-org/x-algorithm/blob/24c60942c5c5fdad3a6addffb4c6e6d2f228f04f/botmaker/src/scala/com/twitter/botmaker/runtime/config/RegexConfigs.scala#L11-L47","documentation":"ConfigFailure thrown by RegexConfigs.addRegexOptions when maximumPendingRequests <= 0. Since the value is the throttle ceiling used by RegexOptions, zero/negative would make the regex service unusable, so it is rejected at config time.","triggerScenarios":"Registering regex options with maximum_pending_requests: 0 or negative (often an unset placeholder from templated config).","commonSituations":"New service scaffolded from a template with 0 placeholders; intending 'unlimited' but the library requires a positive bound.","solutions":["Set maximumPendingRequests to a positive number sized to expected concurrency","Omit the field if your config loader applies a sane default"],"exampleFix":"# before\nmaximum_pending_requests: 0\n# after\nmaximum_pending_requests: 100","handlingStrategy":"validation","validationCode":"require(config.maximumPendingRequests > 0, \"maximumPendingRequests must be positive\")","typeGuard":null,"tryCatchPattern":"catch { case e: ConfigFailure => fail deployment before traffic is served }","preventionTips":["Disallow 0 placeholders in config templates","Validate all positive-int config fields in one startup validator"],"tags":["scala","config-validation","throttling"],"backgroundTag":"invalid-positive-int-config","analyzedSha":"24c60942c5c5fdad3a6addffb4c6e6d2f228f04f","analyzedAt":"2026-08-28T11:40:14.686Z","schemaVersion":2},"datasetVersion":"2026-08-28T16:17:29.566Z"}