After enabling a shadow bucket, run the migrate command to drain it if you need the copy complete. Until the drain finishes, expect first reads of unmigrated objects to be slower. Keep the source bucket until you verify the object counts match.

Context: Official docs (Tigris migration guide): a shadow bucket migrates lazily by default; objects are copied from the source S3 bucket only when the application requests them. To migrate every remaining object server-side, run the buckets migrate command, which runs in the foreground and reports progress. Agents that enable migration and assume the copy is complete get inconsistent reads during the lazy window, and agents that never drain the shadow keep paying source egress on every first read.