AWS Systems Manager Distributor のバージョン追加で DuplicateDocumentContent が発生したときの対処方法

AWS Systems Manager Distributor のバージョン追加で DuplicateDocumentContent が発生したときの対処方法

2026.05.01

困っていること

AWS Systems Manager Distributor で作成したパッケージに対して、新しいバージョンを追加しようとしたところ、以下のエラーが発生しました。

DuplicateDocumentContent: Document to be updated with name test-2 has the same metadata and content as document version provided in request

日本語訳:DuplicateDocumentContent: 更新対象のドキュメント(名前:test-2)は、リクエストで指定されたドキュメントバージョンと同じメタデータとコンテンツを持っています。

cm-hirai-screenshot 2026-05-01 10.08.25

前提条件

今回は、AWS 公式ドキュメントで提供されているサンプルパッケージ ExamplePackage.zip を利用。

https://docs.aws.amazon.com/ja_jp/systems-manager/latest/userguide/distributor-working-with-packages-create.html

ExamplePackage.zip を展開し、以下のファイルを S3 バケット cm-hirai-distributor-testtest フォルダ配下にアップロードしました。

s3://cm-hirai-distributor-test/test/
├── ExamplePackage_AMAZON.zip
├── ExamplePackage_UBUNTU.zip
├── ExamplePackage_WINDOWS.zip
└── manifest.json

cm-hirai-screenshot 2026-05-01 10.27.00

その後、Systems Manager Distributor のパッケージ作成画面で 高度 を選択し、以下の内容でパッケージを作成しました。

  • 名前:test-2
  • バージョン名:1.0.2
  • S3 バケット名:cm-hirai-distributor-test
  • S3 キープレフィックス:test
  • マニフェスト:パッケージからの抽出

cm-hirai-screenshot 2026-05-01 9.59.34

manifest.jsonversion1.0.2 としています。

{
    "schemaVersion": "2.0",
    "version": "1.0.2",
    "packages": {
        "windows": {
            "_any": {
                "x86_64": {
                    "file": "ExamplePackage_WINDOWS.zip"
                }
            }
        },
        "amazon": {
            "_any": {
                "x86_64": {
                    "file": "ExamplePackage_AMAZON.zip"
                }
            }
        },
        省略

この状態で、既存の test-2 パッケージに対して新しいバージョンを追加しようとしたところ、DuplicateDocumentContent が発生しました。

回答

結論として、Distributor パッケージに新しいバージョンを追加する場合は、Version name だけでなく、manifest.jsonversion も既存バージョンとは異なる値に更新する必要があります。

今回の例では、既存バージョンが 1.0.2 のため、新しいバージョンとして 1.0.3 を追加する場合、以下の 2 箇所をどちらも 1.0.3 にします。

  • S3 上の manifest.jsonversion
  • Add version 画面の Version name

変更前です。

{
  "schemaVersion": "2.0",
  "version": "1.0.2"
}

変更後です。

{
  "schemaVersion": "2.0",
  "version": "1.0.3"
}

そのうえで、Distributor の Add version 画面でも、Version name に 1.0.3 を指定します。

cm-hirai-screenshot 2026-05-01 10.06.13
このように、manifest.jsonversion と Add version 画面の Version name を同じ新しい値にすることで、DuplicateDocumentContent を回避して新しいバージョンを追加できます。

なぜ DuplicateDocumentContent が発生するのか

Distributor パッケージのバージョン追加では、既存の SSM ドキュメントを更新し、新しいパッケージバージョンの情報を追加します。

AWS ドキュメントでは、パッケージの古いバージョンのマニフェストを更新し、version エントリの値を変更して、新しいバージョン用のマニフェストとして保存すると説明されています。

パッケージの古いバージョンのマニフェストを更新し、マニフェストの version エントリの値を変更し (例: Test_1.0 から Test_2.0)、新しいバージョン用のマニフェストとして保存します。
https://docs.aws.amazon.com/ja_jp/systems-manager/latest/userguide/distributor-working-with-packages-version.html

高度なワークフローを利用する場合も、更新されたマニフェストが必要です。

[Advanced] ワークフローを使用して、新しいパッケージバージョンを追加するには、更新されたマニフェストが必要です。
https://docs.aws.amazon.com/ja_jp/systems-manager/latest/userguide/distributor-working-with-packages-version.html

つまり、既存バージョンと同じ manifest.json のまま新しいバージョンを追加しようとすると、同一コンテンツとして扱われ、DuplicateDocumentContent が発生します。

UpdateDocument API のエラーとしても、同じ内容のドキュメントと一致する場合は、内容を変更して再試行するよう説明されています。

DuplicateDocumentContent
The content of the association document matches another document. Change the content of the document and try again.

日本語訳:関連付けドキュメントの内容が別のドキュメントと一致しています。ドキュメントの内容を変更して、もう一度試してください。
https://docs.aws.amazon.com/ja_jp/systems-manager/latest/APIReference/API_UpdateDocument.html

対処方法

今回のように「パッケージからの抽出」を選択している場合、S3 上の manifest.json が参照されます。

そのため、Add version 画面の Version name だけでなく、S3 にアップロードしている manifest.jsonversion も変更します。

今回のように DuplicateDocumentContent が発生した場合は、以下の流れで対応します。

  1. 新しいバージョン用の manifest.json を用意する
  2. manifest.json 内の version を既存バージョンとは異なる値に変更する
  3. 更新後の manifest.json を S3 にアップロードする
  4. Distributor の Add version で、Version name に manifest.json と同じ値を指定する
  5. 画面上のマニフェスト表示が更新後の内容になっていることを確認する
  6. 新しいバージョンを追加する

今回の例では、既存の test-2 パッケージを 1.0.2 で作成しています。

そのため、新しいバージョンを追加する場合は、manifest.jsonversion1.0.3 に変更します。

{
    "schemaVersion": "2.0",
    "version": "1.0.3",
    "packages": {
        "windows": {
            "_any": {
                "x86_64": {
                    "file": "ExamplePackage_WINDOWS.zip"
                }
            }
        },
        "amazon": {
            "_any": {
                "x86_64": {
                    "file": "ExamplePackage_AMAZON.zip"
                }
            }
        },
        省略

更新後の manifest.json を、同じ S3 パスにアップロードします。

s3://cm-hirai-distributor-test/test/manifest.json

その後、Distributor の Add version 画面で、Version name に 1.0.3 を指定します。

AWS ドキュメントでも、高度なワークフローでバージョンを追加する場合、Version name にはマニフェストファイルの version エントリ内の正確な値を入力すると説明されています。

[Version name (バージョン名)] で、マニフェストファイルの version エントリ内の正確な値を入力します。
https://docs.aws.amazon.com/ja_jp/systems-manager/latest/userguide/distributor-working-with-packages-version.html

手順どおり対応してもバージョン追加できない場合

S3 上の manifest.json を更新し、Add version 画面の Version name も変更しているにもかかわらず、DuplicateDocumentContent が解消しない場合があります。

この場合、Distributor の画面上で古い versionmanifest.json が表示されていないか確認します。

cm-hirai-screenshot 2026-05-01 10.12.40

S3 上の manifest.json を更新しているにもかかわらず、画面上のマニフェスト表示が古い場合は、ブラウザ側のキャッシュやサイトデータの影響を受けている可能性があります。

この場合は、以下を試します。

  • シークレットモードで開き直す
  • 別ブラウザで操作する
  • ブラウザのサイトデータやキャッシュを削除する
  • Add version 画面で「パッケージからの抽出」ではなく「新しいマニフェスト」を選択し、更新後の manifest.json の内容を直接貼り付ける

「新しいマニフェスト」を選択すると、JSON エディタにマニフェスト全体を作成または貼り付けできます。

cm-hirai-screenshot 2026-05-01 10.14.34

[新しいマニフェスト] を選択します。JSON エディタフィールドで、マニフェスト全体を作成または貼り付けることができます。
https://docs.aws.amazon.com/ja_jp/systems-manager/latest/userguide/distributor-working-with-packages-version.html

S3 上の manifest.json を更新したはずなのに画面表示が古い場合は、「新しいマニフェスト」に切り替えて、更新後の JSON を直接貼り付ける方法が分かりやすいです。

確認コマンド

Distributor パッケージに追加されたドキュメントバージョンは、以下のコマンドで確認できます。

aws ssm list-document-versions --name test-2

出力内容です。

{
    "DocumentVersions": [
        {
            "Name": "test-2",
            "DocumentVersion": "2",
            "VersionName": "1.0.3",
            "CreatedDate": "2026-05-01T01:30:05.275000+00:00",
            "IsDefaultVersion": false,
            "DocumentFormat": "JSON",
            "Status": "Creating"
        },
        {
            "Name": "test-2",
            "DocumentVersion": "1",
            "VersionName": "1.0.2",
            "CreatedDate": "2026-05-01T01:04:13.049000+00:00",
            "IsDefaultVersion": true,
            "DocumentFormat": "JSON",
            "Status": "Active"
        }
    ]
}

作成直後は StatusCreating と表示される場合があります。しばらくすると Active になります。

DocumentVersion は SSM ドキュメントとしてのバージョンです。

一方、manifest.jsonversion や Add version で指定する Version name は、Distributor パッケージとしてのバージョン名です。

そのため、以下は別の値として扱われます。

  • SSM ドキュメントの DocumentVersion
  • Distributor パッケージの version
  • Add version で指定する Version name

今回の例では、以下のように対応しています。

  • DocumentVersion1
    • VersionName1.0.2
  • DocumentVersion2
    • VersionName1.0.3

まとめ

DuplicateDocumentContent が発生した場合は、manifest.jsonversion を確認します。

新しいバージョンを追加する場合、Add version の Version name だけでなく、manifest.jsonversion も変更が必要です。

今回の例では、1.0.2 から 1.0.3 に変更しました。

S3 上の manifest.json を更新しても画面表示が古い場合は、「新しいマニフェスト」を選択して直接貼り付ける方法もあります。

この記事をシェアする

関連記事