If fetchCurrentRecords in QuickSearchRecordChangeListener throws (for example a possible-value translation against an unavailable backend), the exception escapes onRecordsChanged before publish. QQQ logs it at warn and the update is dropped with no quickSearchFailedEvent row, contrary to the class contract. The basepull watermark is the only backstop, and there is none for tables without a timestamp field.
Fix: catch around the re-read and call recordFailures with the primary keys from the event's records. A LinkageError from the lazy publisher (optional AWS SDK missing in DEGRADED startup) has the same gap.
If `fetchCurrentRecords` in `QuickSearchRecordChangeListener` throws (for example a possible-value translation against an unavailable backend), the exception escapes `onRecordsChanged` before publish. QQQ logs it at warn and the update is dropped with no `quickSearchFailedEvent` row, contrary to the class contract. The basepull watermark is the only backstop, and there is none for tables without a timestamp field.
Fix: catch around the re-read and call `recordFailures` with the primary keys from the event's records. A `LinkageError` from the lazy publisher (optional AWS SDK missing in `DEGRADED` startup) has the same gap.
Found in the PR #10 review.
Part of #12.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
If
fetchCurrentRecordsinQuickSearchRecordChangeListenerthrows (for example a possible-value translation against an unavailable backend), the exception escapesonRecordsChangedbefore publish. QQQ logs it at warn and the update is dropped with noquickSearchFailedEventrow, contrary to the class contract. The basepull watermark is the only backstop, and there is none for tables without a timestamp field.Fix: catch around the re-read and call
recordFailureswith the primary keys from the event's records. ALinkageErrorfrom the lazy publisher (optional AWS SDK missing inDEGRADEDstartup) has the same gap.Found in the PR #10 review.
Part of #12.