Skip to content
The docs are now organized by product area. Old links still work. Report a broken link

Upload screenshots, videos and traces

Attach screenshots, videos and Playwright traces to results you upload with qf collect: what uploads by default, --upload-artifacts, Detox files and limits.

Last updated

To attach screenshots, videos and Playwright traces to results you upload to Qualflare, run qf <identifier> collect with --upload-artifacts video,trace. Screenshots upload by default.

Uploaded screenshots, videos and traces are deleted after 30 days

Screenshots, videos and trace files that qf <identifier> collect uploads with your test results are deleted 30 days after upload and can't be restored. Download any you need to keep before then. See Data Retention.

Before you begin

  • A saved identifier: Authenticate with qf login.
  • An access token whose creator still holds the project role that uploads need Editor+ · project (requires the Editor role or higher in the project).
  • A report that references files: a native reporter's output directory, Allure results, or Detox's artifacts folder.

What uploads by default

  • qf knows three artifact kinds: image (screenshots, on by default), video and trace (Playwright traces).
  • Inline PNG, JPEG and GIF screenshots move out of the report before it is sent, up to 8 uploads at a time.
  • Other inline attachments, such as logs and text, stay inside the report.
qf collect uploads the screenshots in a report by default.

Upload videos and traces

  1. Run collect with the kinds you want, and give it more time:
    qf myapp collect ./qualflare-results --upload-artifacts video,trace --timeout 5m
  2. Open a case run in the launch: its Attachments panel lists the uploaded files.

In CI, set QF_UPLOAD_ARTIFACTS=video,trace instead of passing the flag. Without either, collect leaves the videos and traces out and says so:

skipped 2 video attachment(s): upload them with --upload-artifacts=video

Turn off artifact uploads

--upload-artifacts none uploads no artifacts at all, screenshots included. none can't be combined with a kind:

artifact kind "none" cannot be combined with other kinds

Attach Detox artifacts

For Detox, point --artifacts-dir at the Detox artifacts folder so qf can attach its files to the matching tests:

# The @qualflare/detox report directory
qf myapp collect ./qualflare-results --artifacts-dir ./artifacts

# Detox's own Jest JSON
qf myapp collect jest-results.json --format detox --artifacts-dir ./artifacts

--artifacts-dir takes the Detox artifacts root or one <configuration>.<timestamp> run inside it; nothing is scanned without it. It works only for Detox and Jest reports, and fails for any other format:

--artifacts-dir is not supported for playwright reports; it currently applies to detox (and jest, since a Detox report is a Jest report)

Give uploads enough time

Uploading videos and traces uses time from the --timeout deadline, so raise it too, for example --timeout 5m.

Screenshot and video uploads are not cut off by this deadline: each one gets its own 5-minute limit. The deadline starts when collect starts, though, so the time they take still counts against it. Raise --timeout when you upload videos, traces or many screenshots. QF_TIMEOUT (default 120s) caps each single HTTP request, so raise it as well only when one request takes longer than two minutes.

Size limits

Each input file can be up to 100 MB. The report qf sends must fit the server's 10 MB limit, and qf keeps it under 9.5 MB: it moves screenshots out of the report first, then drops the remaining inline attachments, other files before images and the largest first, with a warning for each. If the results alone are still too large, the upload fails.

warning: dropped attachment "<name>" (<size>) from "<case>" to keep the upload under the server's 10 MB limit
the results are <size>, over /collect's 10 MB limit even without attachments; split the upload, e.g. collect fewer files per run
file <file> is too large (<bytes> bytes, max 104857600 bytes)

Troubleshoot

  • unknown artifact kind "vidoe": must be one of video, trace, image, or "none" to upload none: fix the spelling in --upload-artifacts. A misspelt QF_UPLOAD_ARTIFACTS is ignored instead, so check it when videos don't arrive.
  • artifact kind "none" cannot be combined with other kinds: pass none on its own.
  • skipped 2 video attachment(s): upload them with --upload-artifacts=video: the report references videos you didn't ask for. Add the flag it names.
  • skipping video attachment "<name>" (<path>): <error>: that file's upload failed, and the case keeps a placeholder for it. collect still uploads the results.

Next steps