Welcome to the LimeSurvey Community Forum

Ask the community, share ideas, and connect with other LimeSurvey users!

Reopening a completed survey erases existing responses -- is that normal?

  • Mazi
  • Mazi's Avatar
  • Offline
  • Official LimeSurvey Partner
  • Official LimeSurvey Partner
More
6 years 1 week ago #167106 by Mazi
If I remember correctly we faced a similar issue last year with a token based survey we had set up for WHO. They also reported blank surveys randomly when re-enetering with the same token and using the same settings like "Token based answer persistance".
I couldn't really track it down and was assuming that it was caused by using multiple browsers or tabs at the same time which could mess up session details.

Best regards/Beste Grüße,
Dr. Marcel Minke
Need Help? We offer professional Limesurvey support: survey-consulting.com
Contact: marcel.minke(at)survey-consulting.com
The topic has been locked.
  • JanE01
  • JanE01's Avatar
  • Offline
  • Official LimeSurvey Partner
  • Official LimeSurvey Partner
More
6 years 1 week ago #167121 by JanE01
Hi Marcel,

Do you remember if the problems in the WHO case were limited to re-opening surveys that had already been submitted? Both oleggorfinkel and beth193 are indicating this. Was the effect that the existing reponses were wiped?

We tried hard to reproduce the problem, by opening the same survey in different tabs at the same time, opening it in other browsers, leaving sessions open for a really long time. But we never succeeded.

Our TFRResponseLogger plugin learned us that the existing answers are only loaded at the initial opening of the survey. Look at these lines in application/controllers/survey/index.php:
github.com/LimeSurvey/LimeSurvey/blob/ma...urvey/index.php#L540

If ($oResponse !== false), but somehow line 545 is not executed, you end up with a $oResponse that is
  1. set (because it !== false)
  2. does not contain the existing answers, which are in $oResponses[0].
That would explain the vanishing answers. I have no idea yet how $oResponse can !== false and not contain the existing answers.

$oResponse is initially defined in line 536:
Code:
$oResponse = $event->get('response');
If this line returns a not false $oResponse without existing answers, but with a set submitdate, line 545 will not be executed and we really are in troubles.

As a BTW: lines 542 and 546 contain a condition
Code:
isset($oResponse)
, but this condition will always return true, because of the earlier check on
Code:
$oResponse !== false
. Something that is not false cannot be not set at the same time.
The topic has been locked.
  • Mazi
  • Mazi's Avatar
  • Offline
  • Official LimeSurvey Partner
  • Official LimeSurvey Partner
More
6 years 1 week ago #167140 by Mazi

JanE01 wrote: Hi Marcel,

Do you remember if the problems in the WHO case were limited to re-opening surveys that had already been submitted?

Yes, the goal was to let users re-enter any time to update their data set

JanE01 wrote: Hi Marcel,
Both oleggorfinkel and beth193 are indicating this. Was the effect that the existing reponses were wiped?

Yes, if I remember correctly this happened to 1-3 of ~120 data sets.

JanE01 wrote: Hi Marcel,
We tried hard to reproduce the problem, by opening the same survey in different tabs at the same time, opening it in other browsers, leaving sessions open for a really long time. But we never succeeded.

Our TFRResponseLogger plugin learned us that the existing answers are only loaded at the initial opening of the survey. Look at these lines in application/controllers/survey/index.php:
github.com/LimeSurvey/LimeSurvey/blob/ma...urvey/index.php#L540

If ($oResponse !== false), but somehow line 545 is not executed, you end up with a $oResponse that is

  1. set (because it !== false)
  2. does not contain the existing answers, which are in $oResponses[0].
That would explain the vanishing answers. I have no idea yet how $oResponse can !== false and not contain the existing answers.

$oResponse is initially defined in line 536:
Code:
$oResponse = $event->get('response');
If this line returns a not false $oResponse without existing answers, but with a set submitdate, line 545 will not be executed and we really are in troubles.

As a BTW: lines 542 and 546 contain a condition
Code:
isset($oResponse)
, but this condition will always return true, because of the earlier check on
Code:
$oResponse !== false
. Something that is not false cannot be not set at the same time.

Please check the bugtracker for similar issues or - if none found - please create a new ticket and share your details there so the developers can look into this and join the discussion.
Thanks!

Best regards/Beste Grüße,
Dr. Marcel Minke
Need Help? We offer professional Limesurvey support: survey-consulting.com
Contact: marcel.minke(at)survey-consulting.com
The topic has been locked.
More
5 years 1 month ago #181371 by lemmon
I can confirm that this is still happening in version 3.15.9. We are currently running a very complex survey which takes the respondent well over an hour to complete. So far we have lost numerous responses because we had "Allow multiple responses or update responses with one token" enabled. We removed the "Clear Survey" button from the template (Vanilla) before launching, so it is not possible that user action is responsible for this. It also happened to one of the survey admins, who also wanted to take the survey in production. All he did was that he re-visited the link to go back and edit his responses, only to find his data had been wiped.

Needless to say, this is a very serious problem and unacceptable behavior from a survey application. There is no justification whatsoever that it randomly erases respondent data without at least warning the user, contrary to what some of the early respondents to this topic seem to suggest.

Has anyone reported a bug on this in the mean time?
The topic has been locked.
More
5 years 1 month ago #181378 by jelo

lemmon wrote: So far we have lost numerous responses because we had "Allow multiple responses or update responses with one token" enabled.


I recommend to open a bugticket. Even if one is existing, you will get the answer "Test with newest version", cause the bugticket might has an older version in the metadata.
Always open a new ticket and then search for older ones. If you find older ones, leave a remark to point to your new ticket.

I would like to know the complete "Survey participant settings" for surveys showing this issue.
So put that in your bugticket too.

Needless to say, this is a very serious problem and unacceptable behavior from a survey application.

As far as I'm aware of LimeSurvey has no QA-team. The people which download the released version are the QA-team. Automated tests are used more and more. But testing the application with real surveys is something different.Discussing issues in the forum first, will delay bugtickets. Even if the bug is no bug, the bugticket might indicate a UI issue.

The meaning of the word "stable" for users
www.limesurvey.org/forum/development/117...ord-stable-for-users
The topic has been locked.
  • DenisChenu
  • DenisChenu's Avatar
  • Offline
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
5 years 1 month ago #181723 by DenisChenu

lemmon wrote: I can confirm that this is still happening in version 3.15.9. We are currently running a very complex survey which takes the respondent well over an hour to complete. So far we have lost numerous responses because we had "Allow multiple responses or update responses with one token" enabled. We removed the "Clear Survey" button from the template (Vanilla) before launching, so it is not possible that user action is responsible for this. It also happened to one of the survey admins, who also wanted to take the survey in production. All he did was that he re-visited the link to go back and edit his responses, only to find his data had been wiped.

Has anyone reported a bug on this in the mean time?

What is checked on manual.limesurvey.org/Participant_settin...response_persistence ?

Assistance on LimeSurvey forum and LimeSurvey core development are on my free time.
I'm not a LimeSurvey GmbH member, professional service on demand , plugin development .
I don't answer to private message.
The topic has been locked.
More
4 years 4 months ago #191489 by mos3465
We encountered the same problem, Limesurvey version 3.5.0 (build 180309).
(I know, but I still wanted to contribute my findings...)

- It's a pretty big and complex survey as well
- we enabled "token-based response persistence"
- we allowed "multiple responses or update responses with one token"

We get occasional reports from respondents and our quality control team, that random variables are cleared upon re-accessing formely submitted surveys. In our case it's never the complete survey that is wiped, but from what I have seen so far it seems to be a complete question page in each instance.

I can also rule out that it's the some kind of user's fault, as there were 2 instances where the question that got cleared
1) was a mandatory List (radio) question where the users can't "de-select" once something is selected
2) is itself always shown (relevance=1) and was on a page with relevance=1 (so no messing with earlier questions that could have made the page / question irrelevant)
3) still has values for the same token in an earlier backup of the exported data

I didn't find anything on bugs.limesurvey.org, and I'd be happy to add a ticket, but then I
- don't have the latest version installed, although this seems to be an issue in later version as well (according to lemmon) - we are a bit afraid to apply Comfort Update now with the live survey
- the idea of minimal test case doesn't really apply as it only seems to be happening for sufficiently large surveys AND at random, making it not easily reproducible anyways (even with the original survey lss)

Any suggestions on how to progress? Is anyone aware of bug reports or maybe even solutions to this problem?
I gotta second lemmon in that it is a pretty serious problem, as this is hard, if not impossible to spot from just opening a survey to modify one or two things. So there are probably lots of unreported cases.
The topic has been locked.
  • holch
  • holch's Avatar
  • Offline
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
4 years 4 months ago - 4 years 4 months ago #191497 by holch
I don't see much you can do at this stage. With the information provided it will be difficult to reproduce, as you said.

And with a version that is over 1,5 years old, if this is actually a bug it might be long solved. The most current version is 3.20.x, so there has changed a lot since your version has been released.

3) still has values for the same token in an earlier backup of the exported data

With your setting, this says very little, because you can have more than one response from the same token, as you allow multiple response with the same token.

I answer at the LimeSurvey forum in my spare time, I'm not a LimeSurvey GmbH employee.
No support via private message.

Last edit: 4 years 4 months ago by holch.
The topic has been locked.
More
4 years 4 months ago #191499 by jelo

mos3465 wrote: Any suggestions on how to progress?

Open a bugticket, even with an old version. You will receive the answer that your version is old, but you might get the answer that there already is a bugticket for that and it was solved or not.

Install a fresh version of LimeSurvey beside your current installation and try to reproduce the issue there.
That is the only way to check Comfortupdates before applying them to production. A comfortupdate is not tested against many systems when it is released.

The meaning of the word "stable" for users
www.limesurvey.org/forum/development/117...ord-stable-for-users
The topic has been locked.
More
4 years 4 months ago #191505 by mos3465
Thanks a lot for your super-quick replies. I really appreciate the feedback!

holch wrote:

3) still has values for the same token in an earlier backup of the exported data

With your setting, this says very little, because you can have more than one response from the same token, as you allow multiple response with the same token.

Together with the "token-based response persistence" enabled this setting makes re-using tokens open the filled out survey submitted (or even only partially filled) earlier and not open a new blank survey, correct?
My point is that there is no way way for a user to "un-select" radio-questions where a selection has been made and submitted before (please refer to the attached image).

It's probably possible to manipulate those questions using URL-parameters (something like "&qcode=NA" at the end of the survey link) but that's definitely not what has happened in those instances.

jelo wrote:

mos3465 wrote: Any suggestions on how to progress?

Open a bugticket, even with an old version. You will receive the answer that your version is old, but you might get the answer that there already is a bugticket for that and it was solved or not.


Did just that, adding the link here for future googlers' reference:
bugs.limesurvey.org/view.php?id=15621
The topic has been locked.
  • holch
  • holch's Avatar
  • Offline
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
4 years 4 months ago #191507 by holch

My point is that there is no way way for a user to "un-select" radio-questions where a selection has been made and submitted before (please refer to the attached image).

Probably not, if it has been submited (click on a button to send the page, e.g. next or submit).

I answer at the LimeSurvey forum in my spare time, I'm not a LimeSurvey GmbH employee.
No support via private message.

The topic has been locked.
More
4 years 4 months ago #191572 by mos3465
Yeah, that was the case. Several days between such a value being submitted and vanishing again.
Let's see whether the bug report yields anything. Will update this thread if it does.
The topic has been locked.

Lime-years ahead

Online-surveys for every purse and purpose