Geo::SyncWorker fails with ActiveRecord::RecordNotFound for deleted MergeRequestDiff and Upload records
### Impact
**Severity 1 - Data Loss**: Merge requests are not syncing to the Geo secondary, compromising disaster recovery readiness for GitLab Dedicated tenant `professional_teal_sparrow`. **In the event of a failover, MergeRequestDiff data would be lost.**
Sustained high Sidekiq error rates (>7%) on Geo secondary for this tenant.
### Summary
`Geo::SyncWorker` on secondary raises `ActiveRecord::RecordNotFound` when attempting to sync `MergeRequestDiff` and `Upload` records that have been deleted on the primary. This causes sustained Sidekiq error rates and impacts Geo replication reliability.
### Problem
When records (primarily `MergeRequestDiff`, also `Upload`) are deleted on the primary site, the Geo secondary still attempts to sync them. The `Geo::SyncWorker` calls `model_record` which uses `ActiveRecord.find()` and raises `RecordNotFound` instead of gracefully handling the missing record.
### Steps to Reproduce
1. Configure Geo replication between primary and secondary
2. Create MergeRequestDiff records on primary (via MR activity)
3. Delete or expire MergeRequestDiff records on primary (e.g., via cleanup jobs)
4. Observe `Geo::SyncWorker` failures on secondary
### Example Error Log (sanitized)
```json
{
"severity": "WARN",
"class": "Geo::SyncWorker",
"args": ["merge_request_diff", "<ID>"],
"job_status": "fail",
"exception.class": "ActiveRecord::RecordNotFound",
"exception.message": "Couldn't find MergeRequestDiff with 'id'=<ID>",
"exception.backtrace": [
"activerecord lib/active_record/core.rb:268:in find",
"ee/lib/gitlab/geo/replicator.rb:239:in model_record",
"ee/lib/gitlab/geo/replicator.rb:25:in in_replicables_for_current_secondary?",
"ee/app/models/concerns/geo/blob_replicator_strategy.rb:85:in sync",
"ee/app/services/geo/sync_service.rb:16:in execute",
"ee/app/workers/geo/sync_worker.rb:18:in perform"
],
"meta.feature_category": "geo_replication",
"meta.caller_id": "Geo::RegistrySyncWorker",
"duration_s": 0.014
}
```
**Sample error patterns observed:**
```
Time exception.message
Mar 19, 2026 00:20:31 Couldn't find MergeRequestDiff with 'id'=<ID>
Mar 19, 2026 00:20:27 Couldn't find Upload with 'id'=<ID>
Mar 19, 2026 00:20:26 Couldn't find MergeRequestDiff with 'id'=<ID>
(~50+ similar errors in 30 seconds)
```
### Related Issues
- Dedicated Incident: https://gitlab.com/gitlab-com/gl-infra/gitlab-dedicated/incident-management/-/issues/3002
### Environment
- GitLab version: 18.8.6
- Deployment: GitLab Dedicated (Kubernetes) - tenant professional_teal_sparrow
- Geo configuration: Primary + Secondary (R1)
issue