Why won't this qzv load in view.qiime2.org by URL

I am trying to load https://dnasubway.org/backend/demux_files/d28f36cc-ce2d-4a23-a6b9-51d618fabefb-007-imported-demux.qzv on https://view.qiime2.org/, but am getting the error message “This was a temporary page based on local data. If you have access to this data, please reload it. To share QIIME 2 Artifacts and Visualizations, please upload your file to a file hosting service and provide the resulting URL to the home screen of this application.”

Note that I control this website, so I can add needed headers or whatever else, I just don’t understand the issue. That file exists, and when I download and then upload it the viewer shows it properly. It also has Access-Control-Allow-Origin of *. https://view.qiime2.org/visualization/?src=https%3A%2F%2Fdnasubway.cyverse.org%2Ffiles%2Fprojects_files%2Fubiome%2F3088%2Fdemux%2F73840.imported-demux.qzv loads just fine for me, so the issue is specific to this URL:

https://view.qiime2.org/visualization/?src=https%3A%2F%2Fdnasubway.org%2Fbackend%2Fdemux_files%2Fd28f36cc-ce2d-4a23-a6b9-51d618fabefb-007-imported-demux.qzv

1 Like

Would you be willing to post all your CORS headers?

HTTP/2 200
server: nginx
date: Mon, 29 Sep 2025 13:57:27 GMT
content-length: 298404
last-modified: Mon, 29 Sep 2025 13:34:12 GMT
etag: "48da4-63ff0b0da49db"
accept-ranges: bytes
access-control-allow-origin: *

This is the working one, do I need the application/octet-stream maybe?

HTTP/1.1 200 OK
Server: nginx
Date: Mon, 29 Sep 2025 13:59:38 GMT
Content-Type: application/octet-stream
Content-Length: 298369
Last-Modified: Thu, 28 Aug 2025 13:35:14 GMT
Connection: keep-alive
ETag: "68b05b12-48d81"
Access-Control-Allow-Origin: *
Accept-Ranges: bytes

Nah, added that and it did not help:

curl -s -D - -o /dev/null https://dnasubway.org/backend/demux_files/d28f36cc-ce2d-4a23-a6b9-51d618fabefb-007-imported-demux.qzv
HTTP/2 200
server: nginx
date: Mon, 29 Sep 2025 14:05:49 GMT
content-type: application/octet-stream
content-length: 298404
last-modified: Mon, 29 Sep 2025 13:34:12 GMT
etag: "48da4-63ff0b0da49db"
accept-ranges: bytes
access-control-allow-origin: *

Are you changing this from the client side or server side?

When I've set up CORS, it's from the server side.

Ok, so my URL is assumed to be a uuid4 local source because it contains a uuid4 local source…

This probably shouldn't assume a local source just because the URL contains a uuid4.

See above, seems to be a bug in q2view.

I don't know how q2 view works, so I'll let the devs take a look!

Thank you for bringing this to our attention!

Opened IF URL of remote file contains a uuid4 in the path, q2view will "throw a fit" (using the comment's terminology) · Issue #56 · qiime2/q2view · GitHub

1 Like

Opened a PR which I think should fix the issue: Anchor regex so uuid4 check only matches with no surrounding characters by danielhjacobs · Pull Request #57 · qiime2/q2view · GitHub

3 Likes

PR merged. Thanks for handling that @jacobs!

3 Likes

This topic was automatically closed 31 days after the last reply. New replies are no longer allowed.