PaddlePaddle/PaddleOCR · warning · InvalidRequestError
destination is required.
Error message
destination is required.
What it means
InvalidRequestError raised by save_resource when destination is empty/None. Pure client-side guard executed before URL validation, path resolution, and download — no filesystem or network access has happened yet.
Source
Thrown at paddleocr/_api_client/_resources.py:38
import requests
from .errors import InvalidRequestError, NetworkError, RequestTimeoutError
from .results import DocParsingResult, OCRResult
def save_resource(
resource_url: str,
destination: str,
*,
overwrite: bool = False,
filename: Optional[str] = None,
timeout: float = 300.0,
) -> str:
if not resource_url:
raise InvalidRequestError("resource_url is required.")
if not destination:
raise InvalidRequestError("destination is required.")
parsed_url = urlparse(resource_url)
if parsed_url.scheme not in ("http", "https") or not parsed_url.netloc:
raise InvalidRequestError(f"Invalid resource URL: {resource_url}")
target = _resolve_destination(parsed_url.path, destination, filename)
_require_writable_target(target, overwrite)
try:
response = requests.get(resource_url, timeout=timeout)
except requests.Timeout as e:
raise RequestTimeoutError(f"Request timed out: {e}") from e
except requests.ConnectionError as e:
raise NetworkError(f"Connection failed: {e}") from e
try:
response.raise_for_status()
except requests.RequestException as e:View on GitHub (pinned to 2661c7c0ef)
Solutions
- Set the destination: pass an explicit directory or file path
- If it comes from config/env, fail fast at startup with a clear message when it is unset rather than deep in the download call
- Add a default destination (e.g. Path.cwd()) if an empty destination should be legal in your app
Example fix
# before
save_resource(url, os.environ.get('OUT_DIR')) # OUT_DIR unset -> None
# after
out_dir = os.environ['OUT_DIR'] # fails early with clear KeyError
save_resource(url, out_dir) Defensive patterns
Strategy: validation
Validate before calling
destination = destination or str(Path.cwd()) assert destination, 'destination must be configured'
Try / catch
try:
save_resource(url, destination)
except InvalidRequestError as e:
raise RuntimeError(f'output destination misconfigured: {e}') from e Prevention
- Validate output paths once at startup, not per download
- Fail fast on unset config env vars with explicit messages
When it happens
Trigger: Calling save_resource(url, '') or save_resource(url, None); passing an unconfigured destination variable (e.g. from os.environ.get('OUT_DIR') that returned None because the env var is unset).
Common situations: Destination read from a config/env var that is missing in the current environment; CLI flag with a default of None that the user forgot to supply; refactor dropping the destination argument.
Related errors
- File not found: ${path}
- resource_url is required.
- OCR result is required.
- document parsing result is required.
- Destination parent must be a directory: {parent}
AI-assisted analysis of PaddlePaddle/PaddleOCR@2661c7c0ef (2026-08-14).
Data as JSON: /api/errors/9d2054ec777e2cfd.
Report an issue: GitHub.