X_QUERY_DOWNLOAD_ONLY
Means
rows were asked of a query that answers a file
Typical cause
a download query was read for rows — called through sourceFor, .as(), .page(), .live(), explain or an MCP tool — and it has no sql to read them with
Fix
await recording.url(input) # a download query mints its signed URL; await recording(input) is the file in-process