{"record":{"id":"af73d69677b63c34","repo":"sqlmapproject/sqlmap","slug":"oracle-could-not-decide-s","errorCode":null,"errorMessage":"oracle could not decide: %s","messagePattern":"oracle could not decide: (.+?)","errorType":"exception","errorClass":"OracleUndecided","httpStatus":null,"severity":"error","filePath":"extra/esperanto/oracle.py","lineNumber":88,"sourceCode":"    def _ask(self, condition):\n        # decided boolean, or raise OracleUndecided - NEVER manufacture False from an\n        # unobservable probe (that would silently corrupt blind bisection). the oracle\n        # must itself return False for unsupported/rejected SQL; a raised probe means\n        # \"could not observe\" and, absent a quorum, is fatal.\n        if self.quorum <= 1:\n            r = self._probe(condition)\n            if self.verbose:\n                print(\"  [%s] %s\" % (\"T\" if r else (\"E\" if r is None else \"f\"), condition))\n            if r is None:\n                # while laddering CANDIDATE rungs an undecidable/erroring probe (oracle\n                # returned None OR raised - both surface here as None) means \"this rung is\n                # unusable\", so read it as False and let the ladder move on; only OUTSIDE\n                # probing (reading committed data) is it fatal, so a flaky read never\n                # silently coerces to a definite bit\n                if self._probing:\n                    return False\n                self._errors += 1\n                raise OracleUndecided(\"oracle could not decide: %s\" % condition)\n            return r\n\n        samples = 2 * self.quorum - 1\n        yes = no = tries = 0\n        while (yes + no) < samples and tries < samples + self.quorum + 2:\n            tries += 1\n            r = self._probe(condition)\n            if r is None:\n                self._errors += 1\n                continue\n            yes, no = (yes + 1, no) if r else (yes, no + 1)\n            if yes >= self.quorum or no >= self.quorum:\n                break\n        if self.verbose:\n            state = \"T\" if yes >= self.quorum else (\"f\" if no >= self.quorum else \"E\")\n            print(\"  [%s %d:%d] %s\" % (state, yes, no, condition))\n        if yes >= self.quorum:\n            return True","sourceCodeStart":70,"sourceCodeEnd":106,"githubUrl":"https://github.com/sqlmapproject/sqlmap/blob/0a35b20e3953d341be6c7ac75ccb0b3362540c8d/extra/esperanto/oracle.py#L70-L106","documentation":"Error \"oracle could not decide: %s\" thrown in sqlmapproject/sqlmap.","triggerScenarios":"Thrown at extra/esperanto/oracle.py:88 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"}