Flow hangs with "Unable to deserialize process plan from JSON" exception.


When running a flow that contains a REST action that retrieves a large amount of data, the flow will hang with an "Unable to deserialize process plan from JSON" exception. This can also causes a problem when glide.db.trace=true, such as on a production system.


Steps to Reproduce


You can reproduce this issue in either of two ways.

Scenario 1

  1. Enable the ServiceNow IntegrationHub Installer plugin.

  2. Set a MID Server and point it to the test instance.

  3. Load the attached update set.

    The update contains the following test data:

    • Connection alias: RestPerfTestWithMid

    • Basic auth credential: InstanceAdminForMID (update the credential to connection to test instance if necessary)

    • Connection LocalInstanceUsingMID

    • Update the Connection URL to the test instance.

    • Action "GetCMDBComputerData" has REST step to get cmdb_ci_computer data from the instance. The cmdb_ci_computer contains 800 records.

    • Flow PertTestRESTBetweenMIDandInstanceWithLargeData use the Action GetCMDBComputerData and glide record lookup action to force the flow switch between instance and MID

    • Run the flow and notice the flow will hang after run the second GetCMDBComputerData action.

    The exception "Unable to deserialize process plan from JSON" appears in the log.

Scenario 2

  1. Set glide.db.trace = true.

  2. Create a simple run once flow with a single log action.

  3. Try to test the flow.

    See the that the test hangs.

    Check the property in Scripts - Background with gs.print(gs.getProperty(‘glide.db.trace’));



Set glide.db.trace=false

Related Problem: PRB1250616