Uploaded image for project: 'mod-circulation'
  1. mod-circulation
  2. CIRC-1163

Notices scheduled in the past are being sent



    • Type: Bug
    • Status: Open (View Workflow)
    • Priority: P3
    • Resolution: Unresolved
    • Affects Version/s: None
    • Fix Version/s: None
    • Labels:
    • Template:
      Standard Bug Write-Up Format
    • Development Team:
    • Affected Institution:
    • Epic Link:



      WHEN a loan record is updated long after it’s due date + the due date not being update via the loan record,

      THEN overdue notices are resent immediately because their send date (base on the still unchanged due date) is in the past.


      Steps to Reproduce: Here's the broad scenario from Chalmers: 

      1_ A Book is checked out by PatronA on 1-Jul-2020  >>  Due back by 30-Sept-2020  >>  Overdue on 1-Oct-2020  >>  In the next few weeks, 8 overdue notices are sent out. 

      2_ On 11-Apr-2021, PatronB recalls the Book  >>  The Book’s loan record is updated accordingly  AND  the Book’s due date of 30-Sept-2020 has not changed. 

      3_ The update of the Book’s loan record repopulates the notice schedule table with all possible applicable notices (because this is a non-recurring loan)  >>  So on 11-Apr-2021 (= record update, due to recall action), overdue notices are being set up to be sent out on due date = 30-Sept-2020.

      4_ Because 30-Sept-2020 is so far in the past (on the date of 11-April-2021), all 8 overdue notices (with send date also now in the past) are sent out immediately to PatronA.

      --> This should not happen, because the overdue notices have already been sent (in the weeks after 1-Oct-2020).

      N.B.1: The current example is with overdue notices, but I believe this would be the case with any kind of loan notices (e.g. curtesy).

      N.B.2: One scenario supporting creating notices in the past: An institution decides they are not noticing their patrons enough, so decide to add (let’s say) 2 new overdue notices, and would like these 2 new overdue notices to be sent to the patrons immediately, which would happen because the due date is in the past.


      Expected Results:

      Because the schedules date of those overdue notices are in the past, then FOLIO should be not sending/generating them.

      Actual Results:

      8 overdue notices are sent at once, which feels like spamming for PatronA.


      Additional Information:

      Proposed solution/stories

       FOLIO dealing with past send dates:

      1. Should FOLIO be generating notices with a past send date?  
      2. When a loan record gets updated, can FOLIO re-evaluate which notices must be sent or not, based on the current due date (and in the above scenario, would decide not to).

      Patron notice to PatronA:

      A) Rather than all the “old” overdue notices being resent, the Patron should receive a recalled/overdue notice as per UXPROD-2112, which could contain stronger wording than in a “standard” recall notice.


      How frequently has this occurred:

      Due to the extreme nature of this example (i.e. the book is so overdue, and still recalled  +  there are 8 overdue emails), PatronA did reach out to wonder why they were being spammed.

      This is the only case we know of so far, however it may indeed happen more often, but we don’t know about it, because i) patrons with long overdue items don’t care about overdue notices; ii) if the institution has fewer overdue notices, it wouldn’t feel quite like spamming; iii) the patron is ok with all the emails because their book is so overdue anyway, etc.



      _ Does this behaviour appear only for loan notice policies?

      _ Indeed: “If we will use the lost item fee policy to change item status to “aged to lost”, and use this item status change as a trigger to send out emails to these overdue loans, will they not also get extra overdue notices?”


      Interested parties:

        TestRail: Results


            Issue Links



                Unassigned Unassigned
                JulieBickle_LMU Julie Bickle
                0 Vote for this issue
                3 Start watching this issue



                    TestRail: Runs

                      TestRail: Cases