Bug: pending subset

From SuperMemopedia
Revision as of 12:13, 8 July 2022 by SuperMemoHelp (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Bug report: strange pending subset review

Username: K.N.

Date: 2022-06-29

How to reproduce:

1. create a new branch "MyBranch"
2. In this branch you should have at least "1" Item, that is outstanding today
3. In addition in this branch you should have at least "2" Items that are pending (light blue Item)

Now make this:
1. Right click on the branch "MyBranch", choose learn. --> You have now created a subset
2. First, SM will show you all outstanding Items from this branch in the learning process
3. When the outstanding queue is empty, SM asks, if you want to repeat "new Items"
4. Click "yes"

What happens?:
5. SM shows you one of the pending Items from the branch "MyBranch", although it is not at place "one" in the pending queue.
6. Grade this Item and press "next repetition"

7. My expectation is, that now SM will show me the remaining pending Items from the branch "MyBranch", but now it shows me the "pending Item" that is not in the branch "MyBranch", but at position "one" in the pending queue.

My expectation was, that SM ...
... either has not a function like "pending subset":
--> If this is the case, then SM should show me in step 5) the pending Item that is at position "one" in the pending queue.
... or SM has a function like "pending subset":
--> If this is the case, then SM should show me in Step 7) a further pending Item from the branch "MyBranch", instead of showing me the pending Item that is at position "one" in the pending queue, but out of the branch "MyBranch".

The way SM currently works is a mix of both variants.


Reply from user

Hmmm, I have always thought that this was how it is supposed to function. Because I thought that there is a unique subset which is known as the “Pending queue” that is executed when SuperMemo asks you about whether or not you want to learn new/pending Items.

Anyway, wait for the official answer. I’m also interested in this.

Harvey R.

Bug notes

This looks like a bug introduced a few years ago when changing subset operations. Perhaps you can find it on sm17/sm18 bug list. Pending queue is now used only on ready-made collections, which become less popular. Fewer complaints keep this bug out of view. As it seems well-documented above, it would make sense to unify all mentions, and place it prominently on sm18 buglist (Bugs). Its fate will depend also on the gravity of the issue. Does it require some re-think of subsets (major changes bring new bugs, like last time), or it is just minor omission in some code in the program.


Thank you for excellent analysis and documenting the case. It was easy to reproduce and diagnose. This is a bug. In short, as you have noticed, it is "a confusing mix of two approaches": on one hand, subset review uses the pending queue correctly, but only once. The learning process then enters standard pending queue review. This bug will be fixed, however, it is unlikely it will make into sm18 update


  1. when the memorized subset review is over, SuperMemo proceeds with pending subset review
  2. when the first pending subset item is picked (first mode of operation), SuperMemo uses that item and asks if the pending mode should be used
  3. once the user confirms the transition to pending review, SuperMemo switches the mode and switches from pending subset to pending queue (second mode of operation)

Naturally, despite providing the permission to switch the mode, the user must be confused on the sequence of review. It is a design bug then.


The user can chose the subset of the pending subset to enter into the learning process (Memorize subset in the browser). If that subset should be reviewed on the same day, Add to outstanding would need to be used. As of that point, all forms of subset review can be used without entering the pending stage.