View Issue Details

This issue affects 2 person(s).
 16
IDProjectCategoryView StatusLast Update
19370Feature requestsImport/Exportpublic2026-08-09 23:53
Reportermhladun Assigned To 
PrioritynoneSeverityfeature 
Status newResolutionopen 
Summary19370: Importing a large number of participants from CSV - Performance and UX
Description

I submitted a post about this topic at https://forums.limesurvey.org/forum/design-issues/145369-importing-large-number-of-participants-from-a-csv-results-in-gateway-timeout.

Essentially, uploading a CSV containing 45 thousand participant records (firstname, lastname, email), reaching 1.7 MB in size, takes more than 60 seconds to complete with no visual feedback about progress. The default gateway timeout error for PHP and Apache is thrown - "The gateway did not receive a timely response from the upstream server or application.". After this error, the site freezes, and in order to get back to the site, I must close my browser, and open it again.

The upload button should be disabled during the uploading of CSV imports. And including some user feedback like a progress bar, and a mechanism to keep the connection alive would be ideal.

Steps To Reproduce

Steps to reproduce

Import a large number of participants via a CSV. Something like 30 thousand+ should reproduce this.

Expected result

The import is takes less than 10 seconds to complete. The upload button is disabled so users don't repeatedly click it. A progress bar, or upload feedback is displayed.

Actual result

The CSV appears to be uploading, with a loading icon in the browser's tab, but when the Gateway Timeout is reached, we have no idea about the results of the upload.

Tagscsv, import, participants, ux
Bug heat16
Story point estimate
Users affected %

Users monitoring this issue

superuser_does

Activities

mhladun

mhladun

2024-01-21 19:07

reporter   ~79254

It looks like, after the Gateway Timeout error, participant records are increasing at about 10-50/second. This might just be a UX issue, and not a backend problem since all the records are still being created, just not instantly after clicking "upload".

DenisChenu

DenisChenu

2024-01-22 08:39

developer   ~79259

The upload button should be disabled during the uploading of CSV imports.

:+1: easy to do

And including some user feedback like a progress bar, and a mechanism to keep the connection alive would be ideal.

About keep connection : more complex but there are solution using ajax and https://www.php.net/manual/fr/function.ob-flush.php and https://www.php.net/manual/fr/function.flush.php
But if we create something : we create it for more upload (VV for example)

c_schmitz

c_schmitz

2026-08-07 09:49

administrator   ~85388

"The gateway did not receive a timely response from the upstream server or application." is a problem of your webserver configuration.
Your webserver has a shorter timeout than the PHP-FPM process, that's why it keeps working in the background. You need to raise the timeout on the webserver here.

DenisChenu

DenisChenu

2026-08-07 18:09

developer   ~85405

@mhladun : see https://gitlab.com/SondagesPro/TokenManagement/BigSizeTokenUpload

Allow you to separate the uploading file and import part: you can upload, then you can import.

superuser_does

superuser_does

2026-08-09 23:53

reporter   ~85409

There is a separate and valid request in here for some kind of visual indication that the import is currently taking place, because these can take a while.
It should also give an alert that you should not navigate away.

As for DenisChenu's solution above - it probably solves a large part of the problem but the fact it's needed at all implies that the core itself needs to change to accommodate this user scenario. It is a workaround for something that should "just work".

Issue History

Date Modified Username Field Change
2024-01-21 19:01 mhladun New Issue
2024-01-21 19:03 mhladun Tag Attached: import
2024-01-21 19:03 mhladun Tag Attached: ux
2024-01-21 19:03 mhladun Tag Attached: csv
2024-01-21 19:03 mhladun Tag Attached: participants
2024-01-21 19:07 mhladun Note Added: 79254
2024-01-21 19:07 mhladun Bug heat 0 => 2
2024-01-22 08:39 DenisChenu Note Added: 79259
2024-01-22 08:39 DenisChenu Bug heat 2 => 4
2026-08-07 01:49 superuser_does Issue Monitored: superuser_does
2026-08-07 01:49 superuser_does Bug heat 4 => 6
2026-08-07 01:49 guest Bug heat 6 => 12
2026-08-07 09:49 c_schmitz Note Added: 85388
2026-08-07 09:49 c_schmitz Bug heat 12 => 14
2026-08-07 11:24 c_schmitz Project Bug reports => Feature requests
2026-08-07 18:09 DenisChenu Note Added: 85405
2026-08-07 18:09 DenisChenu File Added: Capture d’écran du 2026-08-07 18-06-43.png
2026-08-07 18:09 DenisChenu File Added: Capture d’écran du 2026-08-07 18-08-51.png
2026-08-09 23:53 superuser_does Note Added: 85409
2026-08-09 23:53 superuser_does Bug heat 14 => 16