I can't find if anyone here mentioned this reason, but in the case of the Prusa i3 Mk3 s+, the resume after failure function only works if the print is being run from the Prusa SD card. Apparently, it edits a temporary file as it goes so that even after power failure, a good record of exactly where it left off remains and it can be used to resume, or resume automatically. I had a recent case where a 56 hour print failed with 10 hours to go. It was heartbreaking. I managed to hack and slash a way through where I got something half-useable, but it would have been much easier if I had been running the job from the SD card. Hope this helps.
This is a very valid reason for you to push the gcode to the SD card instead of loading it on the fly from the pi.
The Prusa has a very sweet resume after failure support which you lose if you load the file directly from octopi instead of the SD card.
As others said, you will probably want to copy the file to the printer by moving the SD card to your PC, otherwise it will take ages to load to the file into the SD card if done via serial connection.
Quick back of the napkin math:
Assuming the serial streaming does not have any overhead (which I doubt but did not investigate), you would have (on a Prusa at least), 115200 baud, meaning 11520 bytes/sec
Even a rather simple 5MB gcode file would take, in the best possible scenario (and not accounting for any overhead of the copy process) around 7:30 minutes to stream from the pi to the printer's sd card.
The worst part being that you don't have any kind of progress indication on the UI for this process.
It's like the Internet in the 90's all over again
So, you might want to get your ass out of the chair and go grab the sd card instead
Edit: There's actually a pretty clear article about this in the FAQs:
and a thread showing that actually the effective bitrate is like 8 times slower than what my calculations above implied, due to the overhead:
I guess you don't realize that you have been printing from the Pi the whole time. When you upload to SD, it first saves the file to the pi, then streams it, actually copies it, to the SD card. If you cancel the streaming it has not copied the file to SD. So when you print you are printing from the Pi. Click the Wrench icon and tell it to show you only files stored on SD. Your cancelled streaming file will not be there.