Skip to main content
Delphix

CLI or API Provision Fails With source.parameters or sourceConfig.parameters Error "Value must be a valid json object. Ensure all quotes are escaped (\")." (KBA7597)

 

KBA

KBA# 7597

 

Issue

CLI or API operations to provision a Dataset may encounter an error after Engine upgrade to 6.0.7.0. The following messages may be encountered:

source.parameters Value must be a valid json object. Ensure all quotes
are escaped (\").

sourceConfig.parameters Value must be a valid json object. Ensure all quotes
are escaped (\").

Prerequisites

  • Engine version 6.0.7.0 or higher.
  • The CLI or API operation does not explicitly set the API version, thereby defaulting to the latest API version for the Engine, or the version is set to 1.11.7.

Applicable Delphix Versions

Click here to view the versions of the Delphix engine to which this article applies
Major Release All Sub Releases
6.0 6.0.7.0, 6.0.8.0, 6.0.8.1

Resolution

The behavior described is ultimately a result of a regression in the Engine API behavior, where the default source.parameters and sourceConfig.parameters are incorrectly posted in the API request, if not explicitly set. 

There are two possible workaround options available:

  1. Explicitly defining the API version in the CLI or API script to a lower API version than the default for 6.0.7.0. (1.11.7). Setting the API version to 1.11.6 will revert the previous (expected) behavior.

Note

Note:

Explicitly defining the API version is also strongly recommended as a best practice in any automation, to ensure consistent behavior between version changes.

In the CLI session script, the following version command can be added at the beginning of the operation:

version 1.11.6

In the API session POST, the major, minor, and micro version can be explicitly set:

{
   "type": "APISession",
   "version": {
       "type": "APIVersion",
       "major": 1,
       "minor": 11,
       "micro": 6
   }
}
  1. Alternatively, the source.parameters and sourceConfig.parameters JSON can be explicitly defined with null values ({}).  

CLI:

set source.parameters={};set sourceConfig.parameters={}; 

API:

{
    "type": "AppDataProvisionParameters",
    "container": {
        "type": "AppDataContainer",
        "name": "VEmptyVDB_BSQAQBP2_RCpPNDVf",
        "group": "GROUP-1",
        "sourcingPolicy": {
            "type": "SourcingPolicy",
            "logsyncEnabled": false
        }
    },
    "source": {
        "type": "AppDataVirtualSource",
        "name": "VsourceEmptyVDB_BSQAQBP2_UZelyfvj",
        "operations": {
            "type": "VirtualSourceOperations",
            "configureClone": [],
            "preRefresh": [],
            "postRefresh": [],
            "preRollback": [],
            "postRollback": [],
            "preSnapshot": [],
            "postSnapshot": [],
            "preStart": [],
            "postStart": [],
            "preStop": [],
            "postStop": []
        },
        "parameters": {},
        "additionalMountPoints": [],
        "allowAutoVDBRestartOnHostReboot": false
    },
    "sourceConfig": {
        "type": "AppDataDirectSourceConfig",
        "name": "VEmptyVDB_BSQAQBP2_RCpPNDVf",
        "linkingEnabled": false,
        "repository": "APPDATA_REPOSITORY-1",
        "parameters": {},
        "path": "/mnt/provision/VEmptyVDB_BSQAQBP2_RCpPNDVf"
    },
    "timeflowPointParameters": {
        "type": "TimeflowPointSemantic",
        "container": "APPDATA_CONTAINER-1"
    },
    "masked": false
}

This issue will be fixed in a future release, and this document updated when generally available.

 


Related Articles

The following articles may provide more information or related information to this article: