Just to clarify for anyone who comes across this later:
My pre_get_posts
action was setting query parameters not just for the main query (as I intended) but also the query by the Gallery plugin that gets the attachment data. These query parameters caused the get_posts
query in gallery.php
to return nothing.