Skip to content

[BUG] [Self-Hosted] DOMException and failing downloads #35

@CrunchySlime

Description

@CrunchySlime

Please check the box indicating where you encountered the bug:

  • Self-hosted instance

Describe the bug
when downloading some files of various sizes through file vault, i sometime get an error popup "error downloading file!". I've been unable to replicate with certainty, some files work, some don't and some download correctly but seem to be corrupted (videos no longer playable for example).

I get this issue on files ranging from 200MB to 1.2GB

The docker logs are not helpful : they just stop when i get the error

[...]
2025/04/01 13:29:52 GET /api/vault/d/redacted/92
2025/04/01 13:29:53 GET /api/vault/d/redacted/93
2025/04/01 13:29:54 GET /api/vault/d/redacted/94
[end of logs]

The firefox client logs give me a DOMException

15:29:55.899 DOMException: The operation failed for an operation-specific reason transfer.js:1:2207
    onreadystatechange https://securefiles.mydomaine.com/static/js/0.2.0/transfer.js:1
    (Async: promise callback)
    onreadystatechange https://securefiles.mydomaine.com/static/js/0.2.0/transfer.js:1
    r https://securefiles.mydomaine.com/static/js/0.2.0/transfer.js:1
    onreadystatechange https://securefiles.mydomaine.com/static/js/0.2.0/transfer.js:1
    (Async: promise callback)
    onreadystatechange https://securefiles.mydomaine.com/static/js/0.2.0/transfer.js:1
    (Async: promise callback)
    onreadystatechange https://securefiles.mydomaine.com/static/js/0.2.0/transfer.js:1
    r https://securefiles.mydomaine.com/static/js/0.2.0/transfer.js:1
    onreadystatechange https://securefiles.mydomaine.com/static/js/0.2.0/transfer.js:1
    (Async: promise callback)
    onreadystatechange https://securefiles.mydomaine.com/static/js/0.2.0/transfer.js:1
    (Async: promise callback)
    onreadystatechange https://securefiles.mydomaine.com/static/js/0.2.0/transfer.js:1
    r https://securefiles.mydomaine.com/static/js/0.2.0/transfer.js:1
    onreadystatechange https://securefiles.mydomaine.com/static/js/0.2.0/transfer.js:1
    (Async: promise callback)
    onreadystatechange https://securefiles.mydomaine.com/static/js/0.2.0/transfer.js:1
    (Async: promise callback)
    onreadystatechange https://securefiles.mydomaine.com/static/js/0.2.0/transfer.js:1
    r https://securefiles.mydomaine.com/static/js/0.2.0/transfer.js:1
    onreadystatechange https://securefiles.mydomaine.com/static/js/0.2.0/transfer.js:1
    (Async: promise callback)
    onreadystatechange https://securefiles.mydomaine.com/static/js/0.2.0/transfer.js:1
    (Async: promise callback)
    onreadystatechange https://securefiles.mydomaine.com/static/js/0.2.0/transfer.js:1
    r https://securefiles.mydomaine.com/static/js/0.2.0/transfer.js:1
    onreadystatechange https://securefiles.mydomaine.com/static/js/0.2.0/transfer.js:1
    (Async: promise callback)
    onreadystatechange https://securefiles.mydomaine.com/static/js/0.2.0/transfer.js:1
    (Async: promise callback)
    onreadystatechange https://securefiles.mydomaine.com/static/js/0.2.0/transfer.js:1
    r https://securefiles.mydomaine.com/static/js/0.2.0/transfer.js:1
    onreadystatechange https://securefiles.mydomaine.com/static/js/0.2.0/transfer.js:1
    (Async: promise callback)
    onreadystatechange https://securefiles.mydomaine.com/static/js/0.2.0/transfer.js:1
    (Async: promise callback)
    onreadystatechange https://securefiles.mydomaine.com/static/js/0.2.0/transfer.js:1
    r https://securefiles.mydomaine.com/static/js/0.2.0/transfer.js:1
    onreadystatechange https://securefiles.mydomaine.com/static/js/0.2.0/transfer.js:1
    (Async: promise callback)
    onreadystatechange https://securefiles.mydomaine.com/static/js/0.2.0/transfer.js:1
    (Async: promise callback)
    onreadystatechange https://securefiles.mydomaine.com/static/js/0.2.0/transfer.js:1
    r https://securefiles.mydomaine.com/static/js/0.2.0/transfer.js:1
    onreadystatechange https://securefiles.mydomaine.com/static/js/0.2.0/transfer.js:1
    (Async: promise callback)
    onreadystatechange https://securefiles.mydomaine.com/static/js/0.2.0/transfer.js:1
    (Async: promise callback)
    onreadystatechange https://securefiles.mydomaine.com/static/js/0.2.0/transfer.js:1
    r https://securefiles.mydomaine.com/static/js/0.2.0/transfer.js:1
    onreadystatechange https://securefiles.mydomaine.com/static/js/0.2.0/transfer.js:1
    (Async: promise callback)
    onreadystatechange https://securefiles.mydomaine.com/static/js/0.2.0/transfer.js:1

If self-hosted, please include non-private environment variables below
I'm using the docker-compose.yml provided routing through a traefik proxy

services : 
  api-yeet:
    [...]
    volumes:
      - "/path/to/my/local/folder:/app/uploads"
    labels:
     - "traefik.enable=true"
     - "traefik.http.routers.api-yeet.rule=Host(`securefiles.mydomaine.com`)"
     - "traefik.http.routers.api-yeet.entrypoints=websecure"
     - "traefik.http.routers.api-yeet.tls=true"
     - "traefik.http.routers.api-yeet.tls.certresolver=myresolver"

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions