{"record":{"id":"60a0a3d080b28bc5","repo":"scrapy/scrapy","slug":"unknown-setting-name-value-setting","errorCode":null,"errorMessage":"Unknown {setting_name} value: {setting}","messagePattern":"Unknown (.+?) value: (.+?)","errorType":"exception","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"scrapy/utils/ssl.py","lineNumber":44,"sourceCode":"\nlogger = logging.getLogger(__name__)\n\n_T = TypeVar(\"_T\")\n\n\n# common\n\n\ndef _get_tls_version_limit(\n    settings: BaseSettings, setting_name: str, converter: Callable[[str], _T]\n) -> _T | None:\n    setting: str | None = settings[setting_name]\n    if setting is None:\n        return None\n    try:\n        return converter(setting)\n    except Exception as ex:\n        raise ValueError(f\"Unknown {setting_name} value: {setting}\") from ex\n\n\ndef _get_tls_version_limits(\n    settings: BaseSettings, converter: Callable[[str], _T]\n) -> tuple[_T | None, _T | None]:\n    return (\n        _get_tls_version_limit(settings, \"DOWNLOAD_TLS_MIN_VERSION\", converter),\n        _get_tls_version_limit(settings, \"DOWNLOAD_TLS_MAX_VERSION\", converter),\n    )\n\n\n# stdlib ssl module utils\n\n_STDLIB_VERSION_MAP: dict[str, ssl.TLSVersion] = {\n    \"TLSv1.0\": ssl.TLSVersion.TLSv1,\n    \"TLSv1.1\": ssl.TLSVersion.TLSv1_1,\n    \"TLSv1.2\": ssl.TLSVersion.TLSv1_2,\n    \"TLSv1.3\": ssl.TLSVersion.TLSv1_3,","sourceCodeStart":26,"sourceCodeEnd":62,"githubUrl":"https://github.com/scrapy/scrapy/blob/06af687662112027b4482d31e2714a3cf280a91f/scrapy/utils/ssl.py#L26-L62","documentation":"Error \"Unknown {setting_name} value: {setting}\" thrown in scrapy/scrapy.","triggerScenarios":"Raised when the DOWNLOAD_TLS_MIN_VERSION or DOWNLOAD_TLS_MAX_VERSION setting contains a value that the TLS version converter cannot parse. The setting value is validated at startup when the TLS version limits are computed from settings; any string not in the supported set (e.g. 'TLSv1.2', 'TLSv1.3') triggers this ValueError. Defense: validate DOWNLOAD_TLS_MIN_VERSION/DOWNLOAD_TLS_MAX_VERSION values against the supported TLS version names in configuration before running the crawler.","commonSituations":"See trigger scenarios.","solutions":["Set the DOWNLOADER_CLIENT_TLS_MIN_VERSION or DOWNLOADER_CLIENT_TLS_MAX_VERSION setting to a valid TLS version name accepted by OpenSSLVersion, e.g. 'TLSv1.2' or 'TLSv1.3'.","Check the setting value for typos or unsupported values such as 'SSLv3' on platforms where it is unavailable, and use one of the TLSVersion constants instead.","Remove the setting entirely if you do not need to restrict TLS versions, so Scrapy uses the OpenSSL defaults."],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"06af687662112027b4482d31e2714a3cf280a91f","analyzedAt":"2026-08-15T00:21:48.041Z","schemaVersion":2},"datasetVersion":"2026-08-15T22:17:37.221Z"}