Subject: [Jmap] [Technical Errata Reported] RFC8620 (6603)

From: RFC Errata System <[email-masked]>
Date: Tue, 8 Jun 2021 20:41:28 -0700 (PDT)

The following errata report has been submitted for RFC8620,
"The JSON Meta Application Protocol (JMAP)".

--------------------------------------
You may review the report below and at:
https://www.rfc-editor.org/errata/eid6603

--------------------------------------
Type: Technical
Reported by: Neil Jenkins <[email-masked]>

Section: 5.6

Original Text
-------------
In the "upToId" request argument definition:

      If the sort and
      filter are both only on immutable properties, this allows the
      server to omit changes after this point in the results, which can
      significantly increase efficiency.  If they are not immutable,
      this argument is ignored.

In the "removed" response argument definition:

      If the sort and filter are both only on immutable properties and
      an "upToId" is supplied and exists in the results, any ids that
      were removed but have a higher index than "upToId" SHOULD be
      omitted.

In the "added" response argument definition:

      If the sort and filter are both only on immutable properties and
      an "upToId" is supplied and exists in the results, any ids that
      were added but have a higher index than "upToId" SHOULD be
      omitted.

Corrected Text
--------------
In the upToId argument definition:

      The server may be able to omit added or removed items that are 
      after the client's last cached id, making the update more efficient.

In the "removed" response argument definition:

      If an "upToId" is supplied and existed in the old results, any ids
      that were removed but had a higher index than "upToId" in those
      results SHOULD be omitted.  If the server cannot calculate this,
      the "upToId" MUST be ignored.

In the "added" response argument definition:

      If an "upToId" is supplied and exists in the new results, any ids
      that were added but have a higher index than "upToId" SHOULD be
      omitted.

Notes
-----
This errata fixes two issues with the upToId definition:

1. Using upToId doesn't require immutable properties in some server implementations; this is an implementation detail. The important thing is it's an optional optimisation that the server can ignore if it does not have the data to calculate it. The text has been updated to reflect this.

2. Clarify that for the "removed" argument, the indexes we are comparing for the upToId optimisation are of the ids in the *old* results. The original text is unclear and seems to imply you might compare with the index of the id in the new results, which will give an incorrect result.

Instructions:
-------------
This erratum is currently posted as "Reported". If necessary, please
use "Reply All" to discuss whether it should be verified or
rejected. When a decision is reached, the verifying party  
can log in to change the status and edit the report, if necessary. 

--------------------------------------
RFC8620 (draft-ietf-jmap-core-17)
--------------------------------------
Title               : The JSON Meta Application Protocol (JMAP)
Publication Date    : July 2019
Author(s)           : N. Jenkins, C. Newman
Category            : PROPOSED STANDARD
Source              : JSON Mail Access Protocol
Area                : Applications and Real-Time
Stream              : IETF
Verifying Party     : IESG