sqlmapproject/sqlmap · error · SqlmapSystemException

there has been a problem while accessing temporary…

Error message

there has been a problem while accessing temporary directory location(s) ('%s')

What it means

_createTemporaryDirectory validates the user-supplied --tmp-dir by creating it if missing, then writing and deleting a random probe file inside it; only on success is tempfile.tempdir pointed there. An OSError/IOError anywhere in that sequence (permission denied, read-only filesystem, path is a file, disk full) is caught and re-raised as this SqlmapValueException with the OS error string embedded — the user-chosen temp location is unusable.

Solutions

  1. Point --tmp-dir at a writable location, e.g. `--tmp-dir=/tmp` or on Windows `--tmp-dir=C:\Users\%USERNAME%\AppData\Local\Temp`.
  2. Check permissions: the running user must be able to create and delete files in that directory.
  3. Verify the path is a directory, not an existing regular file, and that the parent path exists.
  4. Omit --tmp-dir to let sqlmap fall back to the default system temporary directory.
Defensive patterns

Strategy: try-catch

When it happens

Trigger: Thrown at lib/core/option.py:1783 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of sqlmapproject/sqlmap@0a35b20e39 (2026-08-26). Data as JSON: /api/errors/7b637ab160f153f7. Report an issue: GitHub.

Appendix: source

Thrown at lib/core/option.py:1783

    if conf.tmpDir:
        try:
            if not os.path.isdir(conf.tmpDir):
                os.makedirs(conf.tmpDir)

            _ = os.path.join(conf.tmpDir, randomStr())

            open(_, "w+").close()
            os.remove(_)

            tempfile.tempdir = conf.tmpDir

            warnMsg = "using '%s' as the temporary directory" % conf.tmpDir
            logger.warning(warnMsg)
        except (OSError, IOError) as ex:
            errMsg = "there has been a problem while accessing "
            errMsg += "temporary directory location(s) ('%s')" % getSafeExString(ex)
            raise SqlmapSystemException(errMsg)
    else:
        try:
            if not os.path.isdir(tempfile.gettempdir()):
                os.makedirs(tempfile.gettempdir())
        except Exception as ex:
            warnMsg = "there has been a problem while accessing "
            warnMsg += "system's temporary directory location(s) ('%s'). Please " % getSafeExString(ex)
            warnMsg += "make sure that there is enough disk space left. If the problem persists, "
            warnMsg += "try to set environment variable 'TEMP' to a location "
            warnMsg += "writable by the current user"
            logger.warning(warnMsg)

    if "sqlmap" not in (tempfile.tempdir or "") or conf.tmpDir and tempfile.tempdir == conf.tmpDir:
        try:
            tempfile.tempdir = tempfile.mkdtemp(prefix="sqlmap", suffix=str(os.getpid()))
        except:
            tempfile.tempdir = os.path.join(paths.SQLMAP_HOME_PATH, "tmp", "sqlmap%s%d" % (randomStr(6), os.getpid()))

View on GitHub (pinned to 0a35b20e39)