Trouble Uploading Files to Local Galaxy v25 on Shared HPC

Hi everyone,

I recently set up a local Galaxy v25 instance on a VM in a shared HPC environment. However, I am unable to upload any files to this Galaxy instance.

When I try to upload a file, the upload tool keeps showing forever:

Please wait… 1 out of 1 remaining…

In the backend logs, I see repeated entries like the following:

uvicorn.access INFO 2025-09-05 16:39:16,215 [pN:main.1,p:2195995,tN:MainThread] 10.37.165.137:0 - “GET /api/histories?view=summary&order=update_time&offset=0&limit=10 HTTP/1.1” 200uvicorn.access INFO 2025-09-05 16:39:16,261 [pN:main.2,p:2195996,tN:MainThread] 10.37.165.137:0 - “GET /api/histories/count HTTP/1.1” 200uvicorn.access INFO 2025-09-05 16:39:16,264 [pN:main.1,p:2195995,tN:MainThread] 10.37.165.137:0 - “GET /api/users/current HTTP/1.1” 200uvicorn.access INFO 2025-09-05 16:39:16,306 [pN:main.1,p:2195995,tN:MainThread] 10.37.165.137:0 - “GET /api/tool_panels HTTP/1.1” 200uvicorn.access INFO 2025-09-05 16:39:16,363 [pN:main.1,p:2195995,tN:MainThread] 10.37.165.137:0 - “GET /api/tools?in_panel=False HTTP/1.1” 200uvicorn.access INFO 2025-09-05 16:39:16,451 [pN:main.3,p:2195997,tN:MainThread] 10.37.165.137:0 - “GET /api/tool_panels/default HTTP/1.1” 200uvicorn.access INFO 2025-09-05 16:39:16,508 [pN:main.1,p:2195995,tN:MainThread] 10.37.165.137:0 - “GET /static/dist/216.bundled.js HTTP/1.1” 304uvicorn.access INFO 2025-09-05 16:39:18,841 [pN:main.1,p:2195995,tN:MainThread] 10.37.165.137:0 - “GET /history/current_history_json?since=2025-09-04T21:26:42.143526 HTTP/1.1” 200uvicorn.access INFO 2025-09-05 16:39:19,257 [pN:main.1,p:2195995,tN:MainThread] 10.37.165.137:0 - “GET /history/current_history_json?since=2025-09-04T21:26:42.143526 HTTP/1.1” 200uvicorn.access INFO 2025-09-05 16:39:21,889 [pN:main.1,p:2195995,tN:MainThread] 10.37.165.137:0 - “GET /history/current_history_json?since=2025-09-04T21:26:42.143526 HTTP/1.1” 200uvicorn.access INFO 2025-09-05 16:39:22,303 [pN:main.1,p:2195995,tN:MainThread] 10.37.165.137:0 - “GET /history/current_history_json?since=2025-09-04T21:26:42.143526 HTTP/1.1” 200uvicorn.access INFO 2025-09-05 16:39:24,931 [pN:main.1,p:2195995,tN:MainThread] 10.37.165.137:0 - “GET /history/current_history_json?since=2025-09-04T21:26:42.143526 HTTP/1.1” 200uvicorn.access INFO 2025-09-05 16:39:25,351 [pN:main.2,p:2195996,tN:MainThread] 10.37.165.137:0 - “GET /history/current_history_json?since=2025-09-04T21:26:42.143526 HTTP/1.1” 200uvicorn.access INFO 2025-09-05 16:39:27,969 [pN:main.1,p:2195995,tN:MainThread] 10.37.165.137:0 - “GET /history/current_history_json?since=2025-09-04T21:26:42.143526 HTTP/1.1” 200uvicorn.access INFO 2025-09-05 16:39:28,394 [pN:main.1,p:2195995,tN:MainThread] 10.37.165.137:0 - “GET /history/current_history_json?since=2025-09-04T21:26:42.143526 HTTP/1.1” 200uvicorn.access INFO 2025-09-05 16:39:31,013 [pN:main.1,p:2195995,tN:MainThread] 10.37.165.137:0 - “GET /history/current_history_json?since=2025-09-04T21:26:42.143526 HTTP/1.1” 200uvicorn.access INFO 2025-09-05 16:39:31,444 [pN:main.1,p:2195995,tN:MainThread] 10.37.165.137:0 - “GET /history/current_history_json?since=2025-09-04T21:26:42.143526 HTTP/1.1” 200uvicorn.access INFO 2025-09-05 16:39:34,076 [pN:main.1,p:2195995,tN:MainThread] 10.37.165.137:0 - “GET /history/current_history_json?since=2025-09-04T21:26:42.143526 HTTP/1.1” 200uvicorn.access INFO 2025-09-05 16:39:34,492 [pN:main.1,p:2195995,tN:MainThread] 10.37.165.137:0 - “GET /history/current_history_json?since=2025-09-04T21:26:42.143526 HTTP/1.1” 200uvicorn.access INFO 2025-09-05 16:39:37,129 [pN:main.1,p:2195995,tN:MainThread] 10.37.165.137:0 - “GET /history/current_history_json?since=2025-09-04T21:26:42.143526 HTTP/1.1” 200uvicorn.access INFO 2025-09-05 16:39:37,536 [pN:main.1,p:2195995,tN:MainThread] 10.37.165.137:0 - “GET /history/current_history_json?since=2025-09-04T21:26:42.143526 HTTP/1.1” 200uvicorn.access INFO 2025-09-05 16:39:41,043 [pN:main.2,p:2195996,tN:MainThread] 10.37.165.137:0 - “GET /history/current_history_json?since=2025-09-04T21:26:42.143526 HTTP/1.1” 200uvicorn.access INFO 2025-09-05 16:39:41,080 [pN:main.1,p:2195995,tN:MainThread] 10.37.165.137:0 - “GET /history/current_history_json?since=2025-09-04T21:26:42.143526 HTTP/1.1” 200uvicorn.access INFO 2025-09-05 16:39:52,041 [pN:main.2,p:2195996,tN:MainThread] 10.37.165.137:0 - “GET /history/current_history_json?since=2025-09-04T21:26:42.143526 HTTP/1.1” 200

Other tools on the local runner work fine, and I can download results from these tools, so I assume my NGINX and folder permission setup is not the issue.

Additional information that might help troubleshooting:

  • Galaxy job runner setup: I am using the default local runner configured in job_conf.yml on the shared HPC.
  • Upload size: I have tried small files (~1 KB) and failed.
  • tusd: I am not currently using tusd for uploads yet.

Could anyone guide me on how to troubleshoot file upload issues in Galaxy? Any tips, parameter changes, or configuration checks that might help resolve this would be greatly appreciated.

Thank you for your time and assistance,
Sharon

Hi @hohosharon

In the default configuration:

jobs are running on the host server (or proxy).

In short, the Upload jobs work a bit differently than the other tools and downloads are only about permissions. The instructions for configuring uploads can be found here → Production Environments — Galaxy Project 25.0.2.dev0 documentation

XRef → Private Galaxy Servers

Hope this helps and you can ask follow-up questions later on! :slight_smile:

Hi Jenna,

Thank you so much for the information!

I was able to solve the issue by installing the tusd tool and enabling it in galaxy.yml. My older Galaxy setup used NGINX for file uploads, but in modern Galaxy versions, uploads are handled through tusd.

Really appreciate your help in pointing me in the right direction!

Best regards,
Sharon

1 Like