Problem with temporary files


I have a problem using the tempfile library on Spaces. This problem occurs sometimes.

I have this space that generates an output file that is a disk write and the main function returns the path to this file.

I know that if I do not use a tempfile, this works correctly, but I’d like to use tempfile to prevent generations of outputs in a local execution.

This is the function that generates the problem (temporary file lines are commented out to avoid errors).

And the logs when the execution fails are the following:

Traceback (most recent call last):
File “/home/user/.local/lib/python3.8/site-packages/gradio/”, line 259, in run_predict
output = await app.blocks.process_api(
File “/home/user/.local/lib/python3.8/site-packages/gradio/”, line 691, in process_api
predictions = self.postprocess_data(fn_index, predictions, state)
File “/home/user/.local/lib/python3.8/site-packages/gradio/”, line 657, in postprocess_data
File “/home/user/.local/lib/python3.8/site-packages/gradio/”, line 1676, in postprocess
y = processing_utils.create_tmp_copy_of_file(y, dir=self.temp_dir)
File “/home/user/.local/lib/python3.8/site-packages/gradio/”, line 296, in create_tmp_copy_of_file
File “/usr/local/lib/python3.8/”, line 435, in copy2
copyfile(src, dst, follow_symlinks=follow_symlinks)
File “/usr/local/lib/python3.8/”, line 264, in copyfile
with open(src, ‘rb’) as fsrc, open(dst, ‘wb’) as fdst:
FileNotFoundError: [Errno 2] No such file or directory: ‘/tmp/tmpsp16mbfp/soccer532nbnksvotwvex0_out.mp4’

As I mentioned earlier, this code runs perfectly in many situations, but sometimes finish with the above error.

Any suggestions to use the tempfile library capabilities properly on Spaces?

Thank you,

Hi @diegofernandezc !

You may have to copy your file into your temporary directory so that it doesn’t get deleted?

I think it’s fine if your demo doesn’t create a temporary file. Gradio will do that under the hood for you when your output component is File.