I'm having issues creating a Scratch Org with both Knowledge and External Objects enabled.

It looks like Knowledge can only work in Enterprise edition scratch orgs while External Objects/Data sources work only in Developer edition scratch orgs.

I've been using the following project-scratch-def.json:

  "orgName": "Test Company",
  "edition": "Developer",
  "features": ["Communities", "ServiceCloud", "Sites", "Knowledge", "LightningServiceConsole", "LiveAgent", "PersonAccounts", "RecordTypes", "PlatformCache"],
  "settings": {
    "orgPreferenceSettings": {
      "s1DesktopEnabled": true,
      "notesReservedPref01": true
    "knowledgeSettings": {
      "enableKnowledge": true,
      "enableLightningKnowledge": true
    "liveAgentSettings": {
        "enableLiveAgent": true
    "omniChannelSettings": {
        "enableOmniChannel": true

When I create a scratch org from the above definition file, I can't find Knowledge in setup.

When I change the edition to Enterprise, I can find Knowledge. However, pushing our custom data source provider classes result in errors like: Type is not visible: DataSource.Filter

Help please?

  • 2
    Does your user account have the Knowledge User box ticked? – David Reed Dec 19 '19 at 19:41
  • 1
    Interesting! Confirmed that creating a Dev org with that config leaves the default user w/o Knowledge User checked, and that checking it exposes Knowledge in Setup. – Thomas Taylor Dec 19 '19 at 20:55
  • Now that is very interesting! – Rohit Kunal Dec 20 '19 at 9:32
  • @ThomasTaylor David Reed, I'm happy to accept "manually setting up the default user as knowledge user" if one of you marks that as an answer. I think it's an issue and will raise it with Salesforce meanwhile. Cheers. – Rohit Kunal Dec 20 '19 at 20:08

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.