Metadata Xfer Not Supported May 2026
# Extract user metadata (may be empty) CUSTOM=$(jq -r '.metadata' src-meta.json)
# Re‑upload with metadata gsutil cp gs://src-bucket/file.txt - | \ gsutil -h "x-goog-meta-$CUSTOM" cp - gs://dest-bucket/file.txt Add a metadata filter to your sync profile: metadata xfer not supported
Posted on April 17, 2026 • By ChatGPT TL;DR | Symptom | “Metadata transfer not supported” error (or similar) appears when you try to copy/move a file or object and the underlying service can’t preserve its extra attributes (timestamps, ACLs, tags, etc.). | |---|---| | Common culprits | Cloud storage SDKs (AWS S3, Azure Blob, Google Cloud Storage), on‑premise backup tools, FTP/SFTP clients, container image registries, data‑lake migration utilities. | | Why it happens | The source and destination have different metadata models, or the transfer protocol simply doesn’t expose a “metadata‑copy” operation. | | Quick fix | Explicitly tell the tool to skip metadata, or map it to a supported format; upgrade to a newer client/SDK; use a staging area that understands both sides. | | Long‑term fix | Align your data‑governance strategy with the capabilities of the storage platform, and automate metadata handling in your pipelines. | 1️⃣ What Is “Metadata” Anyway? When you hear “metadata” in the context of files, objects, or containers, think of the data about the data : # Extract user metadata (may be empty) CUSTOM=$(jq -r '
If you’re not seeing that exact wording, you’re probably dealing with an equivalent error—look for the word metadata and unsupported . 3️⃣ Why Does It Happen? The Technical Deep‑Dive 3.1 Mismatched Metadata Models | Source | Destination | Gap | |--------|-------------|-----| | POSIX FS (mtime, atime, uid/gid) | S3 Object (no POSIX timestamps) | No place to store mtime ; you need to map to x-amz-meta-mtime custom header. | | Azure Blob (Blob Index Tags) | Google Cloud Storage (Labels) | Tag key‑value limits differ; some tags exceed length limits. | | S3 Object (User‑Defined Metadata) | Azure Blob (User‑Defined Metadata) | S3 allows up to 2 KB total, Azure only 8 KB; naming restrictions differ. | | FTP (UNIX permissions in “mode” field) | S3 (no ACL per object) | Only bucket‑level ACLs exist; object‑level ACL must be emulated. | | | Quick fix | Explicitly tell the
[remote] type = "s3" provider = "AWS" metadata = false # disables user‑defined metadata copy Or, if you need the metadata, map it:
# 2️⃣ Extract only the fields you care about (e.g., custom user metadata) CUSTOM=$(jq -r '.Metadata' src-meta.json)