This can be caused by on-the-fly generation of images or other static files. On the first request, Nginx forwards it to Apache, and an .htaccess rule converts the seemingly static file request to a script call. The script generates the content, returns it to the browser and everything is fine. Now, on furthe requests, Nginx cache remembers that it has served that static file before and now tries to serve the content from cache. However, this is not a physical static file, so there is no cached content and the physical location of the file cannot be accessed (because there is no physical location). This can lead to the 404 not found error.
You can try to disable Nginx caching and also set Nginx to exclude static file extensions for the files that are causing the not-found-error.