{"record":{"id":"c4f358708d1740e6","repo":"sqlmapproject/sqlmap","slug":"missing-function-tamper-payload-kwargs-in-ta","errorCode":null,"errorMessage":"missing function 'tamper(payload, **kwargs)' in tamper script '%s'","messagePattern":"missing function 'tamper\\(payload, \\*\\*kwargs\\)' in tamper script '(.+?)'","errorType":"exception","errorClass":"SqlmapGenericException","httpStatus":null,"severity":"error","filePath":"lib/core/option.py","lineNumber":944,"sourceCode":"\n                        check_priority = False\n\n                    priorities.append((priority, function))\n                    last_priority = priority\n\n                    break\n                elif name == \"dependencies\":\n                    try:\n                        function()\n                    except Exception as ex:\n                        errMsg = \"error occurred while checking dependencies \"\n                        errMsg += \"for tamper module '%s' ('%s')\" % (getUnicode(filename[:-3]), getSafeExString(ex))\n                        raise SqlmapGenericException(errMsg)\n\n            if not found:\n                errMsg = \"missing function 'tamper(payload, **kwargs)' \"\n                errMsg += \"in tamper script '%s'\" % script\n                raise SqlmapGenericException(errMsg)\n\n        if kb.tamperFunctions and len(kb.tamperFunctions) > 3:\n            warnMsg = \"using too many tamper scripts is usually not \"\n            warnMsg += \"a good idea\"\n            logger.warning(warnMsg)\n\n        # tamper scripts rewrite SQL injection payloads; the self-contained non-SQL engines do not run\n        # payloads through the tampering hook, so warn instead of silently ignoring the user's\n        # '--tamper'. One tuple drives both the test and the name lookup - keeping two lists in step is\n        # exactly how this raised StopIteration, and leaving an engine OUT (as '--hql' was) is how the\n        # warning silently stops covering one.\n        _nonSqlEngines = (\"graphql\", \"nosql\", \"ldap\", \"xpath\", \"ssti\", \"xslt\", \"xxe\", \"hql\", \"sparql\", \"odata\")\n        if kb.tamperFunctions and any(conf.get(_) for _ in _nonSqlEngines):\n            engine = next(_ for _ in _nonSqlEngines if conf.get(_))\n            warnMsg = \"tamper scripts are applied to SQL injection payloads only and \"\n            warnMsg += \"will be ignored by the '--%s' engine\" % engine\n            logger.warning(warnMsg)\n","sourceCodeStart":926,"sourceCodeEnd":962,"githubUrl":"https://github.com/sqlmapproject/sqlmap/blob/0a35b20e3953d341be6c7ac75ccb0b3362540c8d/lib/core/option.py#L926-L962","documentation":"Error \"missing function 'tamper(payload, **kwargs)' in tamper script '%s'\" thrown in sqlmapproject/sqlmap.","triggerScenarios":"Thrown at lib/core/option.py:944 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":[],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"0a35b20e3953d341be6c7ac75ccb0b3362540c8d","analyzedAt":"2026-08-26T23:02:52.002Z","schemaVersion":2},"datasetVersion":"2026-08-27T03:17:27.898Z"}