Salesforce DX に関する制限事項
最新の既知の問題は、Trailblazer Community の [Known Issues (既知の問題)] ページを参照してください。
Salesforce CLI
- クライアントシークレットで auth:web:login を使用すると認証が失敗する
-
説明: auth:web:login をクライアント ID とクライアントシークレットを使用して実行した場合、認証ファイルが適切に作成されないため Salesforce CLI を使用してコマンドをスクラッチ組織に対して発行することはできません。
回避策: クライアント ID とクライアントシークレットなしで Web ベースのフローを使用するか、または JWT ベースのフローを使用して組織への認証を受けます。Dev Hub およびスクラッチ組織の認証の手順については、『Salesforce DX 開発者ガイド』の「認証」を参照してください。
- Windows Defender で CLI のインストールが一時停止する
-
説明: Windows に Salesforce CLI をインストールしているときに、Windows Defender の警告が表示されます。インストーラーのコードの署名証明書が更新されているので、このメッセージは予測どおりです。

回避策: このメッセージを無視するには、[実行] をクリックします。
- Salesforce CLI を使用してレコードタイプをインポートできない
-
説明: data:tree:import コマンドの実行時に RecordType はサポートされていません。
回避策: なし。
- Windows のシェル環境の制限付きサポート
-
説明: Salesforce CLI はコマンドプロンプト (cmd.exe) と Powershell でテストされています。Cygwin および Min-GW 環境や、Windows Subsystem for Linux (WSL) では既知の問題があります。これらの環境は、今後のリリースでテストおよびサポートされる可能性があります。現時点では、代わりにサポートされているシェルを使用してください。
回避策: なし。
- force:apex:test:run コマンドの実行が終了しない
-
説明: 特定の状況では、force:apex:test:run コマンドの実行が終了しません。この状況の例として、別のコンパイルの進行中にプリコンパイルをトリガーする Apex テストまたは Apex テストで発生するコンパイルエラーがあります。
回避策: control-C を入力してコマンドの実行を停止します。コマンドが継続的インテグレーション (CI) ジョブの一部である場合、環境変数 SFDX_PRECOMPILE_DISABLE=true を設定してください。
Dev Hub およびスクラッチ組織
- Salesforce CLI でコミュニティを含むスクラッチ組織が認識されないことがある
-
説明: Salesforce CLI が、コミュニティ機能を含むスクラッチ組織の作成を認識しないことがあります (毎回ではありません)。Dev Hub にそのスクラッチ組織がリストされていても、CLI を使用して開くことはできません。
回避策: 次の回避策を試すことができます。ただし、問題が修正されない場合もあります。Dev Hub でスクラッチ組織を削除してから、CLI を使用して新しいスクラッチ組織を作成します。スクラッチ組織の削除と再作成は、1 日あたりのスクラッチ組織の制限に含まれます。
- コミュニティを取り込んでリリースするとエラーが発生する
-
説明: このエラーは、スクラッチ組織には必要なゲストライセンスがないために発生します。
回避策: スクラッチ組織定義ファイルにコミュニティ機能を指定する場合、サイト機能も指定します。
ソース管理
- カスタム表示ラベルを削除すると force:source:status で ERROR: No Results Found が返される
-
説明: スクラッチ組織でカスタム表示ラベルを削除すると、force:source:status コマンドが No Results Found (該当する結果がありません) エラーを返します。
回避策: オプション 1: スクラッチ組織が 1 ~ 2 個しかなく、影響を受けたスクラッチ組織をその生成されたユーザー名で簡単に識別できる場合は、この回避策を使用します。DX プロジェクト/.sfdx/org ディレクトリで、影響を受けたスクラッチ組織のフォルダーのみを削除します。
オプション 2: 複数のスクラッチ組織が DX プロジェクトに関連付けられていて、どのスクラッチ組織のローカルデータを削除すればよいかわからない場合は、この回避策を使用します。DX プロジェクト/.sfdx/org ディレクトリを削除します。このディレクトリには、プロジェクトに関連するすべてのスクラッチ組織のソース追跡情報が含まれます。該当するスクラッチ組織や他の各スクラッチ組織に対してソース追跡コマンド (source:push、source:pull、または source:status) を実行すると、CLI によってその組織のソース追跡情報が再作成されます。
ディレクトリを削除した後 (オプション 1 またはオプション 2 の後)、force:source:status を再度実行します。
- 「「Account.PersonAccount」という名前の「RecordType」タイプのエンティティが見つかりません」というエラーが発生する
-
説明: 機能をスクラッチ組織定義に追加してスクラッチ組織で個人取引先を有効にできますが、source:push または source:pull を実行するとエラーになります。
回避策: なし。
- force:source:convert でインストール後スクリプトが package.xml に追加されない
-
説明: force:source:convert を実行しても、package.xml にインストール後スクリプトが追加されません。回避策: この問題を修正するには、次のいずれかの方法を選択します。
- force:source:convert で生成されるメタデータディレクトリの package.xml に手動で <postInstallClass> 要素を追加する。
- リリース組織またはパッケージをリリースする組織のパッケージに手動で要素を追加する。
- オブジェクトのメタデータファイルでフィード追跡を手動で有効にする必要がある
-
説明: 標準またはカスタムオブジェクトに対するフィード追跡を有効にし、force:source:pull を実行すると、フィード追跡が有効になりません。
回避策: Salesforce DX プロジェクトで、標準またはカスタムオブジェクトのメタデータファイル (-meta.xml) に <enableFeeds>true</enableFeeds> を追加して、そのオブジェクトへのフィード追跡を手動で有効にします。
- ルックアップ検索条件をスクラッチ組織に転送できない
-
説明: force:source:push コマンドを実行してルックアップ検索条件のあるリレーション項目のソースを転送すると、次のエラーが発生する場合があります。
duplicate value found: <unknown> duplicates value on record with id: <unknown> at line num, col num。
回避策: なし。
リリース
- リリース時にコンパイルするとスクラッチ組織のリリース時間が長くなる
-
説明: Apex コードのリリース時間が長くかかる場合は、スクラッチ組織で enableCompileOnDeploy の設定が true になっている可能があります。 回避策: この設定をオフにするには、false (デフォルト) に設定するか、スクラッチ組織の定義からこの設定を削除します。
1{ 2 "orgName": "ekapner Company", 3 "edition": "Developer", 4 "features": [], 5 "settings": { 6 "lightningExperienceSettings": { 7 "enableS1DesktopEnabled": true 8 }, 9 "apexSettings": { 10 "enableCompileOnDeploy": false 11 } 12 } 13}
管理第一世代パッケージ
- スクラッチ組織にパッケージをインストールするときに、テストが実行されない
-
説明: 継続的インテグレーションプロセスの一部としてテストを含めている場合、スクラッチ組織にパッケージをインストールするときにそれらのテストは実行されません。
回避策: パッケージがインストールされた後に手動でテストを実行できます。
- CLI での管理パッケージパスワードに対する新しい用語
-
説明: CLI を使用してパッケージバージョンにインストールキーを追加するとき、またはキーで保護されたパッケージバージョンをインストールするときに、そのキーのパラメーター名は --installationkey です。Salesforce ユーザーインターフェースで管理パッケージバージョンを表示する場合、この同じパッケージ属性の名前は「パスワード」です。API での対応する項目名「password」は変更されません。
回避策: なし。
管理第二世代パッケージ
- 管理パッケージのパッチバージョンを指定できない
-
説明: 4 部構成のパッケージバージョン番号には、major.minor.patch.build として定義されたパッチセグメントが含まれます。ただし、第二世代の管理パッケージのパッチは作成できません。パッケージ記述子でパッチ番号を設定すると、パッケージの作成に失敗します。Winter '20 リリースでは、管理パッケージでもこの機能が使用できるようになる予定です。
回避策: バージョン番号のパッチセグメントを常に 0 に設定します。たとえば、1.2.0.1 は有効ですが、1.2.1.1 は無効です。
- インストール済みパッケージが名前空間を共有している場合、保護されたカスタムメタデータとカスタム設定がスクラッチ組織の開発者に表示される
-
説明: 保護されたカスタムメタデータまたは保護されたカスタム設定を使用して第二世代パッケージに秘密を保存する場合は注意が必要です。同じ名前空間を使用して複数の第二世代パッケージを作成できます。ただし、これらのパッケージをスクラッチ組織にインストールする場合は、名前空間を共有しているスクラッチ組織で作業している開発者全員に秘密が表示されます。今後のリリースで、このような状況でパッケージの秘密にアクセスすることを防ぐ「パッケージ保護」キーワードの追加を検討中です。
回避策: なし。
ロック解除済みパッケージ
- インストール済みパッケージが名前空間を共有している場合、保護されたカスタムメタデータとカスタム設定がスクラッチ組織の開発者に表示される
-
説明: 保護されたカスタムメタデータまたは保護されたカスタム設定を使用してロック解除済みパッケージに秘密を保存する場合は注意が必要です。同じ名前空間を使用して複数のロック解除済みパッケージを作成できます。ただし、これらのパッケージをスクラッチ組織にインストールする場合は、名前空間を共有しているスクラッチ組織で作業している開発者全員に秘密が表示されます。今後のリリースで、このような状況でパッケージの秘密にアクセスすることを防ぐ「パッケージ保護」キーワードの追加を検討中です。
回避策: なし。