{"record":{"id":"2364f5a7f0744d33","repo":"google/tsunami-security-scanner","slug":"validation-type-s-not-supported","errorCode":null,"errorMessage":"Validation type %s not supported.","messagePattern":"Validation type (.+?) not supported\\.","errorType":"exception","errorClass":"NotImplementedError","httpStatus":null,"severity":"error","filePath":"plugin_server/py/plugin/payload/payload_generator.py","lineNumber":135,"sourceCode":"      validator = type(\n          'PayloadValidator',\n          (Validator,),\n          {'is_executed': lambda s, _: self.tcs_client.has_oob_log(secret)},\n      )()\n      return Payload(\n          payload_string,\n          validator,\n          pg.PayloadAttributes(uses_callback_server=True),\n          config,\n      )\n    else:\n      payload_string = payload.payload_string.value.replace(\n          self.TOKEN_RANDOM_STRING, secret\n      )\n      if payload.validation_type != pg.PayloadValidationType.Value(\n          'VALIDATION_REGEX'\n      ):\n        raise NotImplementedError(\n            'Validation type %s not supported.'\n            % pg.PayloadGeneratorConfig.VulnerabilityType.Name(\n                config.vulnerability_type)\n            )\n      regex = payload.validation_regex.value.replace(\n          self.TOKEN_RANDOM_STRING, secret\n      )\n      validator = type(\n          'PayloadValidator',\n          (Validator,),\n          {'is_executed': _is_executed(regex)},\n      )()\n      return Payload(\n          payload_string,\n          validator,\n          pg.PayloadAttributes(uses_callback_server=False),\n          config,\n      )","sourceCodeStart":117,"sourceCodeEnd":153,"githubUrl":"https://github.com/google/tsunami-security-scanner/blob/363ba87b3543f8ae8e4304d3416818f03da7f262/plugin_server/py/plugin/payload/payload_generator.py#L117-L153","documentation":"_parse_payload only supports payloads whose validation_type is VALIDATION_REGEX. Any other validation type raises NotImplementedError; note the message interpolates the config's vulnerability type, which can be misleading about the actual cause.","triggerScenarios":"A payload definition matching the config uses PayloadValidationType other than VALIDATION_REGEX (e.g. a future/unsupported enum) and is found by _find_matching_payload during generate().","commonSituations":"Newly introduced validation types in the proto not yet implemented in the generator; payload definitions authored with the wrong validation_type; mixed plugin/proto versions where the payload resource uses an enum the code does not handle.","solutions":["Change the payload definition's validation_type to VALIDATION_REGEX and provide a validation_regex","Check which payload matched and why its validation type is not REGEX","Upgrade/align the payload proto and generator code versions","Catch NotImplementedError and treat the payload as unsupported, skipping it"],"exampleFix":"// before\n# payload.proto\nvalidation_type: VALIDATION_TOKEN\n// after\nvalidation_type: VALIDATION_REGEX\nvalidation_regex: \"key-[a-z0-9]+\"","handlingStrategy":"try-catch","validationCode":"def uses_supported_validation(payload):\n    return payload.validation_type == pg.PayloadValidationType.Value('VALIDATION_REGEX')","typeGuard":null,"tryCatchPattern":"try:\n    payload = generator.generate(config)\nexcept NotImplementedError as e:\n    logging.warning('Payload validation type unsupported: %s', e)\n    payload = None","preventionTips":["Author payload definitions with VALIDATION_REGEX and a validation_regex","Re-run payload resource validation tests after any proto enum changes","Keep the payload proto and generator implementation versions aligned"],"tags":["python","payload","not-implemented","enum"],"backgroundTag":"unsupported-enum-value","analyzedSha":"363ba87b3543f8ae8e4304d3416818f03da7f262","analyzedAt":"2026-09-13T01:50:53.990Z","contentChangedAt":"2026-09-13T01:50:53.990Z","schemaVersion":2},"datasetVersion":"2026-09-16T04:17:20.429Z"}