Support

Home Forums Event Espresso Premium Duplicate ATT_ID's causing problems?

Duplicate ATT_ID's causing problems?

Posted: June 24, 2020 at 2:38 pm


tyler

June 24, 2020 at 2:38 pm

Our client contacted us today because someone registered for their site, but the confirmation was sent to a previous attendee. 

I’ll post additional details privately, but from what I can see by looking at the DB, it appears that EE has begun reusing the ATT_ID and so there are multiple people with the same ATT_ID


tyler

June 24, 2020 at 2:39 pm

This reply has been marked as private.


tyler

June 26, 2020 at 9:55 am

Circling back here as the client is concerned about registrations being mixed up due to this issue. Please let us know. Thanks!


Tony

  • Support Staff

June 29, 2020 at 6:46 am

Hi tyler,

This is strange because the ATT_ID value is the ID of the espresso_attendee custom post type in the wp_posts table, EE simply can not start reusing them as the row ID is an auto-incrementing ID so adding a new row will always have a new ID.

The client upgraded from EE3 to EE4 several months ago and I’m wondering if that plays a part it what’s going on here.

Because of the above, this again seems unlikely as the espresso_attendee row is inserted into wp_posts and then the ID saves to wp_esp_attendee_meta table you are viewing.

Have the database tables ever been reset/altered? The only way I can think of this happening is if the WP tables were rest, but wp_esp_attendee_meta was not.

Can you send me a copy of the database itself?


tyler

June 29, 2020 at 7:41 am

Hey Tony, thanks for the note back. The database has never been altered. Happy to send a copy along, just let me know where to send it!


tyler

June 29, 2020 at 7:52 am

This reply has been marked as private.


tyler

July 1, 2020 at 7:16 am

Have you had a moment to review the db?


tyler

July 6, 2020 at 8:55 am

Could you please let us know what you see?


Tony

  • Support Staff

July 6, 2020 at 9:40 am

Hi Tyler,

My apologies for the delay, there’s a lot of info to go through in your DB.

EE isn’t ‘reusing’ ID’s but somewhere along the way, something is returning the ‘wrong’ ID. Is there any caching enabled on the site/server?

There’s definitely something strange going on with the site as it appears every attendee has a duplicate entry and then fairly recently entries started referencing ID’s that don’t match their attendee meta.

I’ve requested some feedback from out developers to see if hey can think of a cause for this.


tyler

July 6, 2020 at 9:43 am

Hi Tony,

The site is hosted at WPEngine and has been hosted there since its inception back in the EE3 days (6 years or so). Caching has previously been disabled for EE pages. Again though, they just saw this start happening and as far as I know nothing has changed other than the update to EE4 a couple months back.


tyler

July 7, 2020 at 10:35 am

Hi Tony,

Any word from the developers? Thanks!


Tony

  • Support Staff

July 10, 2020 at 5:11 am

Hi Tyler,

We spent some time working through this and double checking the logic and the short answer is it doesn’t make sense, the logic within EE checks for a current EE_Attendee before we create one, yet you seem to have 2 of every one.

The ATT_ID used on some registrations matches and then the ATT_ID used on others simply does not, it’s not a case of reusing the ATT_ID but that the ATT_ID from one contact has been saved to another and again, that doesn’t make sense.

Is it possible to take a look at the site itself?

Or can you create a dev copy we can have a look at and do little debugging on to see what is going on?


tyler

July 10, 2020 at 10:49 am

Hi Tony, absolutely. I’ll set up a dev copy. What’s the best way to send the credentials?


tyler

July 10, 2020 at 4:17 pm

This reply has been marked as private.


tyler

July 14, 2020 at 8:40 am

Please let me know if you were able to log into the dev site!


Tony

  • Support Staff

July 15, 2020 at 3:00 pm

Hi,

Yes we have access to the dev site and are investigating.

This isn’t something we can rush as we need to find the cause first, otherwise you’ll likely be back in the same situation shortly after.


tyler

July 22, 2020 at 10:47 am

Thanks, Tony. When do you think you’ll be able to give us an update on your findings?


Tony

  • Support Staff

July 22, 2020 at 12:26 pm

The tough part for this is having spent some time looking over your site, there isn’t anything standing out for a cause.

Nothing is hooking into the requests and as far as I can tell there isn’t anything on the site itself that would cause this, which then leaves caching on the live site but I was hoping for a better answer than that.

Fixing this also isn’t going to be simple as the ‘wrong’ ATT_ID is being saved with no obvious method to know which registration ID should be for which attendee.

So whilst I don’t have a solution for you just yet I just wanted to let know we are investigating and haven’t forgotten about you 🙂


tyler

August 17, 2020 at 10:29 am

Hi Tony, it’s been a few weeks and so I wanted to check back in on this. I know you said the team hadn’t found anything but was still looking. You had also alluded to possible caching, but, again, this client’s site has been on WPEngine utilizing EE for well over five years. All required caching blocks for EE has long ago been set up. This problem just started popping up right before I opened this topic up. Any insights you can provide would be great. Thanks!


tyler

September 16, 2020 at 12:29 pm

Hello, any updates/ideas on this one?


tyler

September 30, 2020 at 5:33 pm

Hi, the client has noticed some other weird crossovers and would like to get to the bottom of this. We haven’t heard anything back recently. I’m going to post some additional documentation privately, but the client would like to be able to have your team take a closer look – do you suggest the 30 minute or 90 minute paid token?


tyler

September 30, 2020 at 5:36 pm

This reply has been marked as private.

You must be logged in to reply to this support post. Sign In or Register for an Account

Support forum for Event Espresso 3 and Event Espresso 4.
Documentation for EE3 and EE4
Documentation for Event Espresso 3 Documentation for Event Espresso 4

Status: publish

Updated by  tyler 21 hours, 1 minute ago ago

Topic Tags

Notifications

This topic is: not resolved
Do NOT follow this link or you will be banned from the site!
[gravityform id=80 title=false description=false ajax=false]
<div class='gf_browser_unknown gform_wrapper' id='gform_wrapper_80' ><form method='post' enctype='multipart/form-data' id='gform_80' action='/topic/duplicate-att_ids-causing-problems/'> <div class='gform_body'><ul id='gform_fields_80' class='gform_fields top_label form_sublabel_below description_below'><li id='field_80_1' class='gfield gfield_contains_required field_sublabel_below field_description_below gfield_visibility_visible' ><label class='gfield_label' for='input_80_1' >First name<span class='gfield_required'>*</span></label><div class='ginput_container ginput_container_text'><input name='input_1' id='input_80_1' type='text' value='' class='medium' aria-required="true" aria-invalid="false" /></div></li><li id='field_80_2' class='gfield gfield_contains_required field_sublabel_below field_description_below gfield_visibility_visible' ><label class='gfield_label' for='input_80_2' >Email address<span class='gfield_required'>*</span></label><div class='ginput_container ginput_container_email'> <input name='input_2' id='input_80_2' type='email' value='' class='medium' aria-required="true" aria-invalid="false" /> </div></li><li id='field_80_3' class='gfield gfield_contains_required field_sublabel_below field_description_below gfield_visibility_visible' ><label class='gfield_label' >GDPR Agreement<span class='gfield_required'>*</span></label><div class='ginput_container ginput_container_checkbox'><ul class='gfield_checkbox' id='input_80_3'><li class='gchoice_80_3_1'> <input name='input_3.1' type='checkbox' value='I consent to have this website store my submitted information so they can respond to my inquiry.' id='choice_80_3_1' /> <label for='choice_80_3_1' id='label_80_3_1'>I consent to have this website store my submitted information so they can respond to my inquiry.</label> </li></ul></div></li><li id='field_80_4' class='gfield gform_validation_container field_sublabel_below field_description_below gfield_visibility_visible' ><label class='gfield_label' for='input_80_4' >Comments</label><div class='ginput_container'><input name='input_4' id='input_80_4' type='text' value='' autocomplete='off'/></div><div class='gfield_description' id='gfield_description_80_4'>This field is for validation purposes and should be left unchanged.</div></li> </ul></div> <div class='gform_footer top_label'> <input type='submit' id='gform_submit_button_80' class='gform_button button' value='Download Now' onclick='if(window["gf_submitting_80"]){return false;} if( !jQuery("#gform_80")[0].checkValidity || jQuery("#gform_80")[0].checkValidity()){window["gf_submitting_80"]=true;} ' onkeypress='if( event.keyCode == 13 ){ if(window["gf_submitting_80"]){return false;} if( !jQuery("#gform_80")[0].checkValidity || jQuery("#gform_80")[0].checkValidity()){window["gf_submitting_80"]=true;} jQuery("#gform_80").trigger("submit",[true]); }' /> <input type='hidden' class='gform_hidden' name='is_submit_80' value='1' /> <input type='hidden' class='gform_hidden' name='gform_submit' value='80' /> <input type='hidden' class='gform_hidden' name='gform_unique_id' value='' /> <input type='hidden' class='gform_hidden' name='state_80' value='WyJbXSIsIjBiNjdjZjkyMDUzOWUxOWY5Y2NiZjIwMzM4YjA1Mjk4Il0=' /> <input type='hidden' class='gform_hidden' name='gform_target_page_number_80' id='gform_target_page_number_80' value='0' /> <input type='hidden' class='gform_hidden' name='gform_source_page_number_80' id='gform_source_page_number_80' value='1' /> <input type='hidden' name='gform_field_values' value='' /> </div> </form> </div><script type='text/javascript'> jQuery(document).bind('gform_post_render', function(event, formId, currentPage){if(formId == 80) {} } );jQuery(document).bind('gform_post_conditional_logic', function(event, formId, fields, isInit){} );</script><script type='text/javascript'> jQuery(document).ready(function(){jQuery(document).trigger('gform_post_render', [80, 1]) } ); </script>
[i]
[i]