For the ease of transition from the old global secondary index design to the new one (without having read performance impact), GlobalIndexChecker treats existing index rows (i.e., the rows created by the previous design) as verified. We have discovered that this would lead to keeping stale index rows around forever and including them in the result of queries. A stale index row is a row for which we do not have the corresponding data table row. The reason that we do not have the data table row is either the row is deleted (but not the corresponding index row(s)), or the data table and index rows are written with different timestamps. The assumption was that such rows would be fixed by index rebuild. Unfortunately, without dropping or truncating index tables, these stale rows may not be fixed by index rebuild. Thus, GlobalIndexChecker should treat the rows created by the previous design as unverified.