-
-
Notifications
You must be signed in to change notification settings - Fork 353
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Missing Registrant and Registration Form Data #5091
Comments
Here's a link to a conversation in Rocket.Chat where one other user confirmed this has happened to them. @IzabellaDTS I have just a few questions to help gather more info on this. As you mentioned, it's one of issues that is tricky and difficult to reproduce.
|
Hey Leah,
Yes, that conversation in RocketChat was posted by me when I was initially investigating this issue, but to answer your questions:
1) For the particular Rock Instance pictured in the bug report, they know for a fact that it has occurred on two registration templates. However, I've seen it occur on other Rock Instances. On one such Rock instance it occurred 3 times. From what I can see it tends to happen on a handful of registration templates.
2) I have most often seen this bug on registrations with fees/costs; however, there have been a few occurrences on other Rock Instances where the registration template had no fees or costs.
3) No, this bug appears to happen at random. When a registration comes through with an empty registrant, any following registrations may or may not have a registrant.
4) I have done some SQL and for the particular Rock Instance pictured in the bug report, the PersonAliasId is not empty but instead goes to a person with no first name or last name. However, on another Rock Instance, there is no registrant tied to the registration.
To clarify a few of the findings noted above, there is a difference in what I am seeing from the Rock Instance pictured in the bug report versus other Rock Instances.
- The Rock Instance pictured in the bug report has had this issue for a few months now (since before their update to v13). It appears to happen at random, but all the registration templates this bug affects does have an associated fee or cost. What is peculiar about the Rock Instance pictured in the bug report is that the registrant is missing, not empty. There is a PersonAliasId in the RegistrationRegistrant table, but that PersonAliasId goes to an anonymous person ( lacking a first name, last name, email, and phone). Further some aspects of the registration's registrant does save (some form answers come through but others don't).
- However, the other Rock Instances noted above in my response to your questions are different. First, the registrants are truly empty. There is no registrant associated with the registration. This could be a bug or an Internal Rock User of that instance deleting the registrant from the registration. Some registration templates affected by this issue do have fees/costs while others don't.
I hope this helps. Thank you for your time on this matter!
Cheers!
- Izabella
…On Mon, Aug 1, 2022 at 8:20 AM Leah Jennings ***@***.***> wrote:
Here's a link to a conversation
<https://chat.rockrms.com/channel/troubleshooting?msg=T7enJ64FWPTCEPait>
in Rocket.Chat where one other user confirmed this has happened to them.
@IzabellaDTS <https://github.com/IzabellaDTS> I have just a few questions
to help gather more info on this. As you mentioned, it's one of issues that
is tricky and difficult to reproduce.
- How many different registration templates has this occurred across?
- Has it only occurred with registrations that have fees/cost attached
to them?
- Once an empty registrant comes through, does *every* registrant
after that also come through empty?
- Have you ran any SQL to see what value is in the PersonAliasId field
on the RegistrationRegistrant table for one of the registrants that is
"empty"?
—
Reply to this email directly, view it on GitHub
<#5091 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AUDOMZQ5XBLAHKZPDOEHK43VW7FJVANCNFSM55BYO3LQ>
.
You are receiving this because you were mentioned.Message ID:
***@***.***>
--
Izabella Whisenant
Developer
785.813.1870 x105
Calera, AL
***@***.***
www.dtschurch.com <https://dtschurch.com>
<https://www.facebook.com/divinetechsystems/> <https://www.linkedin.com/>
<https://twitter.com/dtschurch> <https://instagram.com/dtschurch>
<https://dtschurch.com>
|
@IzabellaDTS thank you for the detailed response, this is helpful! One last question, do you know which event registration block is being used? The new Obsidian Registration Entry block or the pre-existing, regular Registration Entry block? |
I don't know for sure, but I think it is the regular pre-existing registration entry block.
…On Mon, Aug 1, 2022 at 12:48 PM Leah Jennings ***@***.***> wrote:
@IzabellaDTS <https://github.com/IzabellaDTS> thank you for the detailed
response, this is helpful! One last question, do you know which event
registration block is being used? The new Obsidian Registration Entry block
or the pre-existing, regular Registration Entry block?
—
Reply to this email directly, view it on GitHub
<#5091 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AUDOMZTBKOLQE7SK5VOTGIDVXAEWZANCNFSM55BYO3LQ>
.
You are receiving this because you were mentioned.Message ID:
***@***.***>
--
Izabella Whisenant
Developer
785.813.1870 x105
Calera, AL
***@***.***
www.dtschurch.com <https://dtschurch.com>
<https://www.facebook.com/divinetechsystems/> <https://www.linkedin.com/>
<https://twitter.com/dtschurch> <https://instagram.com/dtschurch>
<https://dtschurch.com>
|
We just had a church ask us about registration issue that looks like this same thing. They are on version 12.8. They are using the legacy registration entry block. The registration did have a cost. None of the attribute values were saved (the two with values in screenshot are person attributes updated after the registration was completed). |
I would recommend parties interested continue to focus their efforts on reproducing this error. Here are some ideas I have:
Also for consideration. Rock is moving to the obsidian registration block long term, perhaps now is a good time to start exploring the use of that instead. |
I encountered this issue moments ago using the Obsidian Registration block on Rock McKinley 14.0 (1.14.0.18). The registration form was very simple - had only a couple of fields, one of them was a required field. A value was entered into the field for registration, but is blank "internally". I am able to reproduce this. |
@azturner - should the label on this issue "Not Yet Reproduced" be removed? Or is that only removed when the Spark team has reproduced it? @jeremyhoff - would you mind listing out your steps so that we can confirm the bug is reproducible? |
I will be assigning this out to someone on our team to see if we can get to the bottom of this issue. |
Mountain Christian Church is seeing this happen as well. They are on v13.7. Sometimes when it happens Family Analytics is running. Those registrations were submitted during overnight hours. That does not encompass all of the times they are like this, just some. The registration person is created/matched but the registrant is tied to a person record that contains no info. That new person is not tied to the registration persons family. |
We are experiencing the same issue on our rock instance, version 14.1 (1.14.1.1), however our situation is a little different. This is occurring using the obsidian registration block. Not sure if this should be kept here or if a new bug report should be opened. We haven't figured out how to reproduce the issue consistently. |
…d a possible solution to prevent future event registrations from coming through with missing registrant data. (#5091)
…d a possible solution to prevent future event registrations from coming through with missing registrant data. (#5091)
We spent some time investigating this issue; like many of you, we haven't yet been able to truly reproduce the issue in our local environment. I use the phrase "truly reproduce", because I was able to manually reproduce the issue by going out of my way to create one of the 2 most likely scenarios - detailed below - that can can lead to the outcome you're seeing: registrants with missing We understand the importance of identifying the culprit(s) for this issue, and will do our best to resolve it as soon as possible! Unfortunately, this is quite a complex area of Rock, further complicated by the dynamic nature of each registration template and its forms, as well as the hit-or-miss nature of this bug. Observations (please correct me if you disagree):
What We've Done So Far:To further assist with identifying the true cause of this bug moving forward, we've added some exception logging in key areas of the registration code. This new logging will be in v16.0 of Rock, and will be seen as follows:
We're Requesting Your Help:After updating your Rock instance to v16.0 (currently in alpha testing) if you happen to see new, failed registrations that match this bug's signature, can you please post back here with some updates regarding which of the 2 scenarios you see in your exception log, if either? More Technical Details for Those InterestedBecause of the way we process registration information in both legacy (Web Forms) and new (Obsidian) Registration Entry blocks, there appear to be only two high level possibilities that can lead to the reported outcome of missing Scenario 1 (more likely):When saving a given Registrant, the field values for a specific form are simply not being sent back to the server. With the added complexity of conditional fields, it's even possible that we're failing to present an entire form's-worth of fields to the Registrar when they're actively registering individuals, although the latter part of this hypothesis has not been fully vetted yet. If this scenario is encountered, we'll see exception log entries detailing which of the required, non-conditional field values were missing - per registrant - at the time of saving a Scenario 2 (less likely):When looping through the Registrants to save their values on the server, the Note that this is the scenario I manually simulated in my local development environment, and as a result I saw a Registrants grid exactly like what some of you have posted screen shots of, above. If this scenario is encountered, also note that we've added some failsafe code to load these missing form fields into memory on-demand, which should prevent the issue moving forward, while also creating an exception log so we can know we've potentially found the issue that led to past failures: |
@jasonhendee - Do either of the two scenarios explain the infrequent nature of the bug or why this might be occurring on some people's instances and not others? Also does the team have a sense of what could cause the system to fail to present an entire form's-worth of fields or fail to load fields into memory? |
These scenarios directly explain neither, but were provided to 1) indicate that we are actively working on this issue and 2) explain the newly-introduced exception logging made visible in the timeline of this issue's comment thread, by way of the commits I made a few days ago.
This is a hypothesis I have, but haven't yet had a chance to fully vet; it's in no way been proven to occur. I admittedly posted that a little prematurely, and should have been a bit more sure before mentioning it. Something is apparently causing the process to sometimes miss a form's-worth of fields at a time, so I want to spend more time in this area of the registration entry's code to ensure it's operating as designed.
This could be related to something called View State on the Legacy Web Forms side or could be related to something called lazy loading on the Obsidian side. Either way, the commit above will address this if it was the culprit, by ensuring the fields are loaded on-demand, as needed. I took more of an inside-out approach to attempting to uncover the true cause of the issue, and haven't found it yet, but will continue to dig as time allows. Thank you for your patience, and I truly appreciate your comments and questions throughout this thread! |
@jasonhendee - thanks for the feedback and your hard work on this, curious to see how this one pans out. |
I wonder if we can add some sort of tracking that shows when someone starts a registration. That could help with troubleshooting around issues arising from registration pages kept open for a long time. Perhaps the start time for a registration could show up in the Registration Audit Log. |
If anybody runs into this again (or has recently) and would like to run this SQL (after filling in the registration id on the first line) and post a screenshot of the results (feel free to blur out any values you need to, the big thing will be to know if the DECLARE @RegistrationId INT = 0
SELECT
[Caption]
, [Verb]
, [ChangeType]
, [ValueName]
, [NewValue]
, [OldValue]
, [CreatedDateTime]
, [CreatedByPersonAliasId]
FROM [History] AS [H]
INNER JOIN [EntityType] AS [ET] ON [ET].[Id] = [H].[EntityTypeId]
WHERE [ET].[Name] = 'Rock.Model.Registration'
AND [H].[EntityId] = @RegistrationId |
@cabal95 I ran the following SQL to find any Registrants with empty first/last names to get the Registrations affected:
The most recent one we had (preserved in our development instance) was August 2023. Here's the results of the SQL you posted: With this Registration Template, we have two forms. Information from neither of them got recorded. The first form asks for some of their personal info (all |
@leahjennings Are you able to confirm if, when looking at the Registrant in the UI, that the person shows up without a first and last name? I want to confirm that the history data does indeed show that it set the First and Last name - but that now when you look in the UI those values are blank. |
@cabal95 correct. The name listed in the screenshot of SQL results is the registrar. Registrar gets set correctly, the Registrant however is blank. When we've caught this and corrected it, I have to merge the empty profile (which is attached to the registrant) with the profile of whoever it should've merged with (typically the registrar). |
Thanks @leahjennings, I'll do some additional digging with that data! |
Hello everybody, wanted to give everybody an update on where we are at with this. Based on the information Leah was able to provide from the History table (and various local experiments on ways the exact same thing could happen), it seems clear that the core issue is happening on initial save. Meaning, it isn't a problem of some process running after the registration is created that is somehow erasing the data. The history table should contain a row for every single property that is filled in on a Registrant. Since it is essentially empty (other than the data about the registration itself) we feel that is a pretty clear indication that somehow the data is not making it there in the first place. As Jason pointed out previously, we can't find anything in the code that would cause this to happen. Essentially, part of the registration data (number of registrants, the registrar information, discount details, etc.) is making it to the "Save" logic. But other parts of the data (the details entered about the individual registrants) is not. From looking at code, stepping through it, and trying various things to intentionally break it, it just doesn't make sense that this would happen. Another option is that the field data is making it to the "Save" logic, but somehow all the details from the Registration Template that describes the fields are somehow missing so it can't actually do anything with those fields. Again, this doesn't make sense because it would have to be only part of the template data missing - again specifically the form field information. If other parts of the template data are missing, an exception gets thrown and displayed to the user and nothing is saved. Basically, the problem seems to be one of those things where probably many things have to align properly, even possibly down to something like a registration being completed as the Rock server is in the process of restarting or something bizarre like that. (We even tried to replicate the bug by doing that a few dozen times) The planFirst: In addition to the changes Jason already made to add logging whenever something like this is encountered (as best we can tell anyway), we have also added some additional logic in Rock 15.3. If the "First Name" or "Last Name" are missing from any Registrant, than the entire registration will be blocked and an error will be displayed to the end-user. No registration information should be saved. While this may not catch every single instance of this happening, from looking at the data it does seem like it will catch the majority of them. If you have a multi-form registration and the data on the first form comes through but the data on the second form does not, you might still get those slipping through. First and Last name are easy to get to and verify because they are essentially hard-coded into all registrations. all the other fields get to be more complex and run into issues of the "empty check" code being skipped entirely if the field is somehow missing from the registration template too. Second: We don't believe this same issue is occurring in Obsidian. There were two reports (one on 14.0 and the other on 14.1) of this happening with the Obsidian block, and one of those specifically said the issue they were seeing was slightly different. In addition, we have fixed many bugs on the Obsidian side - some specifically around data showing up null on the internal page related to certain types of form fields - since then. To that end, we believe the two mentions of Obsidian were probably not the same exact issue as the one being discussed here. Therefore, the long term solution would be to move to the Obsidian Event Registration block. Rock 15.3 and 16.1 should have nearly all the recent fixes for bugs regarding Obsidian Event Registration. Finally: We plan to close this issue in a week or two. This does not mean we don't care or are not willing to look into this again if more details become available. Such as somebody finding a way to reproduce this on their server. We really appreciate all the details and screenshots everybody here has provided. What it does mean is that we have a number a mitigation checks in place that should hopefully reduce or possible entirely prevent this from happening in the future. And the new Obsidian block should not have this same bug. Below you can see a sample of what the new First Name and Last Name check will look like: |
@cabal95 ++ for a thorough explanation. Appreciate the detail here. |
We just upgraded from v14.3 to v16.2 last week - and have started to see the new exceptions put in by Jason. In our case they all appear to be scenario #1. Here's the list of 5 we received in the past 3 days... Setup for 1 of the 2 Registrant attributes... Here are the details for the 1 exception entry that was for a Person Field (Birthdate). Running the SQL from above ... noticed that Birthdate isn't listed at all. Here is the setup of the registration form that included the Birthdate... |
@stanalyst Thank you for that data. Are you using the original (webforms) Registration Entry block or the newer Registration Entry (Obsidian). The Obsidian version has that different progress bar as seen in this screenshot: |
we are on the webforms version of the block |
@nateh777 - Did the data in the mentioned fields for individual 50268 also get deleted as a result of submitting the payment? |
@dataCollegechurch no, the data did not get deleted, just generated the exception, I think it was a false exception more than anything for my scenario, just wanted to point it out. |
the issue is still occurring in the Obsidian Reg Entry block. Carl has further details. Please reopen the issue. Thanks! |
@markburlesoncrds Hi Mark - thanks for reaching out and letting us know that this issue is still occurring on the Obsidian Registration Entry block. I will reopen the issue and reach out to Carl to get more details. |
A Picture Is worth a Thousand Words
Description
Occasionally, when a person submits an event registration, the registrant(s) and form data are "missing". As time has progressed more and more registrations continue to be missing this necessary information. Pictured below is a screenshot of a registrant table that has missing registrants and form data.
As you can see from the image above there are four occurrences of missing registrant info. Three of the four occurrences have some data attached to it (such as any food/medication allergies); however, one of the four occurrences is missing all the form data.
No registration should be missing this information as the majority of the questions on the form are required and a person is unable to complete the registration if any of the required questions are left blank. [See image below for partial screenshot of registration form for this event registration]
This issue has also been observed across varying Rock instances (as early as version 12.8 although seemingly more prevalent on newer Rock versions )
Steps to Reproduce
Unfortunately, this issue has yet to be reproduced. Many hypotheses as to why this error could be occurring have been tested. One such hypothesis was the user partially completing a registration and then finishing the registration a few hours later. A test was conducted and the registration behaved as expected. This along with other tests has lead us to believe that this issue occurs at random or has a cause that is not something that can be discovered through ordinary means.
Expected behavior:
When a registration is completed, any and all information from the registration is properly saved.
Actual behavior:
Most registrations save properly but, at random, some registrations are missing registrant and form data.
Versions
The text was updated successfully, but these errors were encountered: