Introduction

A registry migration can stand up a new Harbor destination while replication jobs still push images to the old one. Manual pulls and pushes may work against the new platform, but scheduled replication continues sending artifacts to the retired registry, one project rule uses the new endpoint while another still follows the previous target, or failures begin only after the old registry or robot account is removed because replication endpoints, credentials, and project-level policies often change separately.

Treat this as a replication-target problem instead of a generic Harbor outage. Start by checking which destination endpoint an affected replication rule actually uses, because migrations often validate direct registry access first while automated replication jobs continue following older endpoint mappings.

Symptoms

  • Harbor replication still pushes images to the old registry after migration
  • The new registry is healthy, but replicated artifacts still land on the retired destination
  • One project or replication rule uses the new registry while another still uses the previous one
  • Replication failures begin only after the old registry, robot account, or certificate is removed
  • The new Harbor environment exists, but migrated replication jobs never target it consistently
  • The issue started after moving Harbor instances, registry endpoints, replication policies, or credential management

Common Causes

  • The replication endpoint still references the old Harbor or external registry URL
  • A robot account or credential entry was rotated, but the replication destination itself was not updated
  • Project-level replication rules or filters were recreated on one project but not another
  • A configuration export, Terraform run, or bootstrap process restored the earlier endpoint mapping
  • One replication policy was updated while another still points to the retired registry
  • Validation confirmed the new registry accepted manual pushes but did not verify where scheduled replication actually sent artifacts

Step-by-Step Fix

  1. 1.Capture one affected replication job and record the source project, destination endpoint, credential object, and rule or policy it actually uses, because the live replication path determines where images really land.
  2. 2.Compare that active replication path with the intended post-migration registry design, because one stale destination mapping can keep artifact flows tied to the retired registry.
  3. 3.Review Harbor replication endpoints, robot credentials, project rules, filters, and automation templates for references to the old registry, because Harbor replication depends on both endpoint objects and policy-level routing.
  4. 4.Check each project, replication rule, and schedule separately if behavior differs, because migrations often update one image path while another still targets the previous destination.
  5. 5.Update the authoritative destination endpoint and replication policy so affected jobs use the intended registry, because creating the new Harbor environment alone does not retarget existing replication tasks.
  6. 6.Trigger a controlled replication run and confirm the intended destination registry receives the artifact, because successful manual registry access does not prove the right automated target handled replication.
  7. 7.Verify the old registry no longer receives replicated images from migrated Harbor jobs, because split artifact paths can remain hidden while both endpoints stay reachable.
  8. 8.Review robot permissions, TLS trust, project naming, and retention interactions if replication still fails, because the destination can be correct while authorization or artifact policy still blocks the new path.
  9. 9.Document which team owns replication endpoints, credentials, and migration validation so future Harbor cutovers verify the actual runtime destination before retiring the previous registry.

Verification

After applying fixes:

  1. 1.Trigger replication and confirm images land on the new registry only
  2. 2.Check old registry for any continued replication activity
  3. 3.Verify robot credentials work on the new destination
  4. 4.Confirm replication logs show correct target URLs
  5. 5.Test that project filters and rules work as expected

Prevention

To prevent Harbor replication issues during future migrations:

  1. 1.Document replication architecture - Maintain clear documentation of all replication endpoints, policies, and their purposes before migration.
  2. 2.Use infrastructure as code - Define Harbor replication configuration in Terraform or similar tools to ensure consistent updates across all rules.
  3. 3.Audit before migration - Run a complete audit of all replication endpoints, robot accounts, and project rules before starting the migration.
  4. 4.Test in staging - Validate replication changes in a staging Harbor instance before applying to production.
  5. 5.Monitor replication metrics - Set up monitoring for replication success rates and destination endpoints to catch issues early.
  6. 6.Validate end-to-end - After migration, verify actual image flow by checking both source and destination registries, not just configuration.
  7. 7.Clean up old endpoints - After confirming the new registry works, explicitly disable or delete old endpoint references to prevent accidental fallback

Common Pitfalls

  • Updating credentials without updating endpoint targets
  • Testing direct push/pull without testing automated replication
  • Forgetting to check project-level replication rules
  • Not validating all affected projects before removing old registry
  • Missing cron-scheduled replication jobs in validation
  • Assuming configuration export/import preserves all settings correctly
  • [WordPress troubleshooting: Fix CloudFormation Permission Denied - C](fix-cloudformation-permission-denied)
  • [Technical troubleshooting: Fix Cloud Migration Data Transfer Incomplete Issue](cloud-migration-data-transfer-incomplete)
  • [Fix Database Migration Schema Lock Timeout in Infrastructure Migration](database-migration-schema-lock-timeout)
  • [Fix DNS Cutover Propagation Delay Issue in Infrastructure Migration](dns-cutover-propagation-delay)
  • [How to Fix Ansible Automation Controller Still Running Jobs Against the Old Execution Environment After Migration](fix-ansible-automation-controller-still-running-jobs-against-old-execution-environment-after-migration)

<script type="application/ld+json"> { "@context": "https://schema.org", "@type": "TechArticle", "headline": "How to Fix Harbor Replication Still Pushing Images to the Old Registry After Migration", "description": "Troubleshoot Harbor migration issues by checking replication endpoints, robot accounts, project filters, and stale destination settings.", "url": "https://www.fixwikihub.com/fix-harbor-replication-still-pushing-images-to-old-registry-after-migration", "publisher": { "@type": "Organization", "name": "FixWikiHub", "url": "https://www.fixwikihub.com" }, "author": { "@type": "Person", "name": "FixWikiHub Editorial Team" }, "datePublished": "2025-11-02T23:21:40.742Z", "dateModified": "2025-11-02T23:21:40.742Z" } </script>