ExperienceサイトのCLIを使ったリリースのトラブルシューティング

## 必要なメタデータ

下記のメタデータが必要です。

- Network - Experience Cloud サイトの管理設定など
- CustomSite - ドメインとページの設定情報
- ExperienceBundle - Auraサイトの場合
- DigitalExperienceBundle - LWRサイトの場合
- DigitalExperienceConfig - LWRサイトの場合
- Audience - 利用者と割り当て
- NavigationMenu - ナビゲーションメニュー
- ContentAsset - アセット

```xml:package.xml
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Package xmlns="http://soap.sforce.com/2006/04/metadata">
    <types>
        <members>*</members>
        <name>Audience</name>
    </types>
    <types>
        <members>*</members>
        <name>ContentAsset</name>
    </types>
    <types>
        <members>*</members>
        <name>CustomSite</name>
    </types>
    <types>
        <members>*</members>
        <name>ExperienceBundle</name>
    </types>
    <types>
        <members>*</members>
        <name>NavigationMenu</name>
    </types>
    <types>
        <members>*</members>
        <name>Network</name>
    </types>
    <version>63.0</version>
</Package>
```

- [メタデータ API を使用した Experience Cloud サイトのリリース | Developers](https://developer.salesforce.com/docs/atlas.ja-jp.communities_dev.meta/communities_dev/networks_migrating_from_sandbox.htm)
- [エクスペリエンスビルダーサイトの ExperienceBundle | Developers](https://developer.salesforce.com/docs/atlas.ja-jp.communities_dev.meta/communities_dev/communities_dev_migrate_enhanced.htm)


## エラー

- [Experience Cloud サイトでのメタデータリリースエラーのトラブルシューティング | Help](https://help.salesforce.com/s/articleView?id=experience.networks_migrate_troubleshoot.htm&type=5)

### 「devNameが無効です」

> f68d4496-32d9-4fce-a707-e8b35a1b601f ルートの devName が無効です。devName を relatedlist_a0t__c に変更して、もう一度お試しください。 

routeのdevNameとviewのviewTypeは一致している必要があります。上記エラーが発生した場合、devNameとviewTypeを一致させることでエラーが解消します。

### 「devNameはすでに使用されています」

> a5db06a9-b84e-440e-9b7a-fc65d91219c6 ルートの devName はすでに使用されています。一意の名前を指定して、もう一度お試しください。

devNameは大文字小文字考慮しません。たとえば「relatedlist_a0t__c」と「relatedlist_a0T__c」は重複として判断されます。別の名前に変更する必要があります。

### 「ナビゲーションメニュー Default_Navigation は存在しません。」

> コンポーネント ae009521-4267-4edb-bd8a-08160b30d838 の PortalSite1/themes/ember.json の componentAttributes を検証できませんでした。エラー: attribute [navigationMenuEditorRefresh]: ナビゲーションメニュー Default_Navigation は存在しません。ファイルを確認して、もう一度お試しください。詳細は、https://help.salesforce.com/s/articleView?id=sf.networks_migrate_troubleshoot.htm を参照してください。

 NavigationMenuがデプロイ資材に含まれていることを確認します。
 
 デプロイ資材に含まれているのにエラーとなる場合、 navigationMenuEditorRefreshで検索し、themeファイル（json）で空欄以外が設定されていれば空欄に変更します。

```diff_json:stella.json
{
  "components": [
    {
      "componentAttributes": {
        "navAlignment": "right",
        "navItemThreshold": 5,
-       "navigationMenuEditorRefresh": "Default_Navigation"
+       "navigationMenuEditorRefresh": ""
      },
      "componentName": "forceCommunity:themeNav",
      "id": "33d19d6d-bb7d-4768-ac3d-ee1465df28af",
      "renditionMap": {},
      "type": "component"
    }
  ],
  "id": "e913a7d4-3f7d-477f-8c87-fbdeb62e9625",
  "regionName": "nav",
  "type": "region"
}
```

### 「要求の処理中にエラーが発生しました」

デプロイ後、公開ボタンをクリックしたときに下記のエラーが発生した場合。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/125621/2b5458e9-be9c-44c8-afc5-cf8abeba6acc.png)

NavigationMenuItemに、Statusが`Live`でDraftRowIdが`null`のレコードが存在すると上記のエラーになります。通常は下記のようにDraftRowIdが設定されます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/125621/3a049612-6e7c-4a42-a361-66a6d585f238.png)

下記のクエリで抽出したNavigationMenuItemレコードを削除して公開ボタンをクリックすると公開できます。

```sql
SELECT Id, Label, NavigationLinkSetId, NavigationLinkSet.Network.Name, ParentId, Type, Target 
FROM NavigationMenuItem 
WHERE Status = 'Live' AND DraftRowId = null
```

- [Salesforce Error Publishing Community 1715759908 | StackExchange](https://salesforce.stackexchange.com/questions/372978/salesforce-error-publishing-community-1715759908)