flexion / ef-cms

An Electronic Filing / Case Management System.
23 stars 10 forks source link

BUG: Process to update contact info fails if DAWSON is also updating other contact info at the same time. #10553

Open ttlenard opened 3 weeks ago

ttlenard commented 3 weeks ago

Describe the Bug A clear and concise description of what the bug is. We have received a handful of helpdesk tickets where a DAWSON external user has gone through the process of updating their own contact information in DAWSON, but their information isn't updated correctly across their cases, or their email wasn't updated, even though we see where they updated their email in the logs. We believe that this happens when a user updates their address/phone information and then immediately updates their email address while the aysnc process of updating their address/phone is still occurring (we do actually let users continue to work in DAWSON while the async process is running - This may actually be causing a problem in this scenario?). I have been able to recreate the issue in the Test environment and have outlined the steps to recreate this problem below.

Business Impact/Reason for Severity

In which environment did you see this bug? Prod, Test

Who were you logged in as? Private Practitioner

What were you doing when you discovered this bug? (Using the application, demoing, smoke tests, testing other functionality, etc.) This issue has been reported to us a handful of times via DAWSON support

To Reproduce Steps to reproduce the behavior:

  1. Log in as a Practitioner that you have an email for, and that is associated with multiple cases.
  2. You might need to set up the data so that you can do step 1. (*Steps on how to do this are outlined below)
  3. Click on the down arrow next to the person icon, and choose My Account
  4. Click on the edit link in the Contact information box
  5. Change your address and phone number
  6. Click save
  7. You should see the async progress bar start (this is b/c it is updating the contact info in all of your cases)
  8. Next, while that progress bar is going (you have to be quick!) click on the change email link
  9. Change your email address
  10. Click Save
  11. Notice that you will have a pending email for just a short amount of time (until the async process finishes), and then it will revert back to your old email
  12. Check you inbox for the new email
  13. Notice you have an email so that you can verify the new email
  14. Click on the Verify email link or button
  15. Receive log in error
  16. Check the logs and see the error that tokens do not match

How to quickly set up a practitioner with lots of cases

Expected Behavior A clear and concise description of what you expected to happen. Users should be able to change both forms of contact info if needed without error, or the system needs to prevent one from not happening until the first change has completed.

Actual Behavior A clear and concise description of what actually happened. The system appears to allow users to change both forms of contact info very near to each other, but the result is that one will be overwritten - Race condition???

Screenshots If applicable, add screenshots to help explain your problem.

Here is the error message the user sees when they click on the verification email Image

Here is a screen grab of error logs Image

Desktop (please complete the following information):

Smartphone (please complete the following information):

Cause of Bug, If Known

Process for Logging a Bug:

Severity Definition:

Definition of Ready for Bugs(Created 10-4-21)

Definition used: A failure or flaw in the system which produces an incorrect or undesired result that deviates from the expected result or behavior. (Note: Expected results are use cases that have been documented in past user stories as acceptance criteria and test cases, and do not include strange behavior unrelated to use cases.)

The following criteria must be met in order for the development team to begin work on the bug.

The bug must:

Process: If the unexpected results are new use cases that have been identified, but not yet built, new acceptance criteria and test cases should be captured in a new user story and prioritized by the product owner.

If the Court is not able to reproduce the bug, add the “Unable to reproduce” tag. This will provide visibility into the type of support that may be needed by the Court. In the event that the Court cannot reproduce the bug, the Court will work with Flexion to communicate what type of troubleshooting help may be needed.

Definition of Done (Updated 4-14-21)

Product Owner

Engineering

ttlenard commented 7 hours ago

Testing Feedback @cruzjone-flexion

Did some testing by following the steps above with a private practitioner that is associated with 40+ cases, but I ended up verifying my email before all of the address updates were made. I believe that doing this may have caused some emails to not get updated appropriately. After talking with John, it sounds like we might need to run a check on both the address AND the email when either process completes?