Skip to content

Requesting > 1 reports in parallel can lead to reports overwriting each other #1035

@agross

Description

@agross

Description

I've been running tests in parallel against our Solidtime instance, requesting PDF reports. Under certain timing circumstances, reports overwrite each other.

For example, the first parallel test requested this:

/api/v1/organizations/e9bb8975-82f5-43a2-bfb6-563352013582/time-entries/export?start=2026-01-04T23%3A00%3A00Z&end=2026-01-11T22%3A59%3A59Z&format=pdf&client_ids%5B%5D=ac90a870-1484-4118-a38f-e854a873be88&member_ids%5B%5D=2ea0e0e5-ba8d-45f3-8602-304a0282639f&project_ids%5B%5D=e11332c4-2912-43d9-8337-87a09d68df6d

and got this report download URL:

https://solidtime.example.com/storage/exports/time-entries-export-2026-03-10_14-44-23.pdf?expires=1773154164&signature=2df580d679dc4b3534c63b660587c585822dfbfa1daeef4009191c459fee4949

While in parallel, another test requested this (no project_ids as opposed to the first request):

/api/v1/organizations/e9bb8975-82f5-43a2-bfb6-563352013582/time-entries/export?start=2026-01-04T23%3A00%3A00Z&end=2026-01-11T22%3A59%3A59Z&format=pdf&client_ids%5B%5D=ac90a870-1484-4118-a38f-e854a873be88&member_ids%5B%5D=2ea0e0e5-ba8d-45f3-8602-304a0282639f

and got this download URL, which is the same as above:

https://solidtime.example.com/storage/exports/time-entries-export-2026-03-10_14-44-23.pdf?expires=1773154164&signature=2df580d679dc4b3534c63b660587c585822dfbfa1daeef4009191c459fee4949

Naming the PDF files with second precision leads to the second request overwriting the first request's PDF.

Steps To Reproduce

  1. Request 2 reports of the same kind but with different parameters in the same second.

Self-hosted or Cloud?

Self-Hosted

Version of solidtime: (for self-hosted)

0.11.5

solidtime self-hosting guide: (for self-hosted)

Official

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions