## TL;DR

Set persist_results or poll and download within the retention window. For files over 100MB use presigned uploads, and for giant files stream a URL instead of uploading. Fetch result URLs immediately; they are dead after an hour.

## Fix

1. Set persist_results or poll and download within the retention window.
   Expected: You get the expected result; the problem is gone.
2. For files over 100MB use presigned uploads, and for giant files stream a URL instead of uploading.
   Expected: You get the expected result; the problem is gone.

## When to use

- You are dealing with this situation.
- The symptom matches: Reducto result URLs expire in an hour and large results come back as URLs.

## When NOT to use

- Unrelated issues with a different cause.
- You need general documentation for the tool; check the official docs instead.

## Compatibility

Reported per the linked source.

## Variant phrasings

### Reducto result URLs expire in an hour and large results come back as URLs

## Why it happens

Official docs (Reducto FAQ): documents that result and image and PDF URLs expire after 1 hour, that job results are normally retained about 12 hours and purged within 24 hours unless persistence is enabled, that persist_results stores output indefinitely (needs Reducto Studio opt-in), that force_url_result makes large results consistently URL-backed, and file caps of 100MB direct, 5GB presigned, 100 page per-document max with URL passthrough unlimited.

## Edge cases

- If your error message differs even slightly, this is probably a different issue; search the exact text.
- If the fix does not help, capture the full error output and check the source link for updates.