Mail pagination ends one Thread short on merged release; classification pending #1494

Open
opened 2026-10-09 01:52:48 +00:00 by kayg · 1 comment
Owner

Merge35b triage (#1479), application head 16250888d, comparison against production cc1af3c12. The first merged real TLS Dovecot run backfills all 2,000 fixture Messages, then reaches the end of UI pagination with 1,998 Threads instead of the unchanged expected 1,999. data-blaze-has-next is false. The original assertion fails at mail-sync-613.mjs:147. This is distinct from #1488's real-wheel timeout.

The first production run fails earlier at the unchanged 15-second real-wheel wait (original line 155). It does not establish the end-of-list count. Production classification of the one-Thread shortfall is pending; no data deletion or corruption is proved. Keep the original expected count.

Added bounded, read-only metadata counts after observed failures, for both second runs. The diagnostic follows at most 60 dependent cursor pages and logs counts only, then preserves the original assertion or error. It distinguishes API completeness from UI pagination. It logs no Message content or credentials. No product code changed.

Evidence: artifacts/m35btriage/mail-merged-1.log, mail-prod-1.log. Both binaries use the same existing mail-test-provider feature, required for the isolated localhost TLS fixture. Final comparison evidence will follow on #1479 and this issue. Do not close this issue.

Merge35b triage (#1479), application head 16250888d, comparison against production cc1af3c12. The first merged real TLS Dovecot run backfills all 2,000 fixture Messages, then reaches the end of UI pagination with 1,998 Threads instead of the unchanged expected 1,999. `data-blaze-has-next` is false. The original assertion fails at mail-sync-613.mjs:147. This is distinct from #1488's real-wheel timeout. The first production run fails earlier at the unchanged 15-second real-wheel wait (original line 155). It does not establish the end-of-list count. Production classification of the one-Thread shortfall is pending; no data deletion or corruption is proved. Keep the original expected count. Added bounded, read-only metadata counts after observed failures, for both second runs. The diagnostic follows at most 60 dependent cursor pages and logs counts only, then preserves the original assertion or error. It distinguishes API completeness from UI pagination. It logs no Message content or credentials. No product code changed. Evidence: artifacts/m35btriage/mail-merged-1.log, mail-prod-1.log. Both binaries use the same existing mail-test-provider feature, required for the isolated localhost TLS fixture. Final comparison evidence will follow on #1479 and this issue. Do not close this issue.
Author
Owner

#1479 production comparison complete: two runs per release. Production cc1af3c12 reproduces the original real-wheel 15-second wait timeout in 2/2 runs. Merged 16250888d does so in 1/2; the other merged run reaches pagination end with 1,998 Threads versus unchanged expected 1,999. On the second pair, a failure-only metadata diagnostic reads 40 API pages on BOTH releases and gets exactly 1,998 rows / 1,998 unique Messages / 1,998 unique Threads, no next cursor; both UIs are at 250 with hasNext=true. Therefore both the wheel timeout and the API count shortfall occur on production. Classify #1488 and #1494 as pre-existing/nonblocking, keep them open. No test expectation changed. This does not identify the cause or prove data deletion. Backfill still reports all 2,000 Messages complete on both releases. CSP reports are zero. Logs: artifacts/m35btriage/mail-{prod,merged}-{1,2}.log; raw count profiles and summary JSON retained.

#1479 production comparison complete: two runs per release. Production cc1af3c12 reproduces the original real-wheel 15-second wait timeout in 2/2 runs. Merged 16250888d does so in 1/2; the other merged run reaches pagination end with 1,998 Threads versus unchanged expected 1,999. On the second pair, a failure-only metadata diagnostic reads 40 API pages on BOTH releases and gets exactly 1,998 rows / 1,998 unique Messages / 1,998 unique Threads, no next cursor; both UIs are at 250 with hasNext=true. Therefore both the wheel timeout and the API count shortfall occur on production. Classify #1488 and #1494 as pre-existing/nonblocking, keep them open. No test expectation changed. This does not identify the cause or prove data deletion. Backfill still reports all 2,000 Messages complete on both releases. CSP reports are zero. Logs: artifacts/m35btriage/mail-{prod,merged}-{1,2}.log; raw count profiles and summary JSON retained.
Commenting is not possible because the repository is archived.
No labels
No milestone
No project
No assignees
1 participant
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
kayg/calternal-v0#1494
No description provided.