Support Questions

Find answers, ask questions, and share your expertise

Minifi startup fails with "Cannot invoke "org.apache.nifi.flow.VersionedProcessGroup.getIdentifier()" because "rootGroup" is null"

avatar
New Contributor

Hello,

I have exported the json in nifi and renamed it to flow.json.raw, but when I try to start minifi, I get the error like this:

ZNFY_0-1731377605899.png

This is my flow in nifi

ZNFY_1-1731377715120.png

And this is my json content:

{
  "externalControllerServices": {

  },
  "flowContents": {
    "comments": "",
    "componentType": "PROCESS_GROUP",
    "connections": [
      {
        "backPressureDataSizeThreshold": "1 GB",
        "backPressureObjectThreshold": 10000,
        "bends": [],
        "componentType": "CONNECTION",
        "destination": {
          "groupId": "4d2e3379-5165-32b0-bf2a-cc36a354aa29",
          "id": "8dd0c880-1b12-3097-90a0-5f20d488f88a",
          "instanceIdentifier": "846c8039-231d-353b-b87e-aed9f7408030",
          "name": "fromMinifi",
          "type": "REMOTE_INPUT_PORT"
        },
        "flowFileExpiration": "0 sec",
        "groupIdentifier": "cad6891f-5564-3a61-8a99-bb7be344adc8",
        "identifier": "b0ca1df7-83e8-314b-bb2f-50735ab0ccd2",
        "instanceIdentifier": "1e076437-0193-1000-f190-07b262d28ba8",
        "labelIndex": 0,
        "loadBalanceCompression": "DO_NOT_COMPRESS",
        "loadBalanceStrategy": "DO_NOT_LOAD_BALANCE",
        "name": "",
        "partitioningAttribute": "",
        "prioritizers": [],
        "selectedRelationships": [
          "success"
        ],
        "source": {
          "comments": "",
          "groupId": "cad6891f-5564-3a61-8a99-bb7be344adc8",
          "id": "39db7913-b310-3485-95fe-6e6e33b1dda8",
          "instanceIdentifier": "1b72dcd3-0193-1000-4444-cbda1bf29306",
          "name": "GenerateFlowFile",
          "type": "PROCESSOR"
        },
        "zIndex": 0
      }
    ],
    "controllerServices": [],
    "defaultBackPressureDataSizeThreshold": "1 GB",
    "defaultBackPressureObjectThreshold": 10000,
    "defaultFlowFileExpiration": "0 sec",
    "executionEngine": "INHERITED",
    "flowFileConcurrency": "UNBOUNDED",
    "flowFileOutboundPolicy": "STREAM_WHEN_AVAILABLE",
    "funnels": [],
    "identifier": "cad6891f-5564-3a61-8a99-bb7be344adc8",
    "inputPorts": [],
    "instanceIdentifier": "1e055241-0193-1000-bfce-60069091b1f0",
    "labels": [],
    "maxConcurrentTasks": 1,
    "name": "Mnificonf",
    "outputPorts": [],
    "position": {
      "x": -904,
      "y": 16
    },
    "processGroups": [],
    "processors": [
      {
        "autoTerminatedRelationships": [],
        "backoffMechanism": "PENALIZE_FLOWFILE",
        "bulletinLevel": "WARN",
        "bundle": {
          "artifact": "nifi-standard-nar",
          "group": "org.apache.nifi",
          "version": "2.0.0"
        },
        "comments": "",
        "componentType": "PROCESSOR",
        "concurrentlySchedulableTaskCount": 1,
        "executionNode": "ALL",
        "groupIdentifier": "cad6891f-5564-3a61-8a99-bb7be344adc8",
        "identifier": "39db7913-b310-3485-95fe-6e6e33b1dda8",
        "instanceIdentifier": "1b72dcd3-0193-1000-4444-cbda1bf29306",
        "maxBackoffPeriod": "10 mins",
        "name": "GenerateFlowFile",
        "penaltyDuration": "30 sec",
        "position": {
          "x": -888,
          "y": 24
        },
        "properties": {
          "character-set": "UTF-8",
          "File Size": "1000B",
          "Batch Size": "1",
          "Unique FlowFiles": "false",
          "Data Format": "Text"
        },
        "propertyDescriptors": {
          "character-set": {
            "displayName": "Character Set",
            "dynamic": false,
            "identifiesControllerService": false,
            "name": "character-set",
            "sensitive": false
          },
          "File Size": {
            "displayName": "File Size",
            "dynamic": false,
            "identifiesControllerService": false,
            "name": "File Size",
            "sensitive": false
          },
          "mime-type": {
            "displayName": "Mime Type",
            "dynamic": false,
            "identifiesControllerService": false,
            "name": "mime-type",
            "sensitive": false
          },
          "generate-ff-custom-text": {
            "displayName": "Custom Text",
            "dynamic": false,
            "identifiesControllerService": false,
            "name": "generate-ff-custom-text",
            "sensitive": false
          },
          "Batch Size": {
            "displayName": "Batch Size",
            "dynamic": false,
            "identifiesControllerService": false,
            "name": "Batch Size",
            "sensitive": false
          },
          "Unique FlowFiles": {
            "displayName": "Unique FlowFiles",
            "dynamic": false,
            "identifiesControllerService": false,
            "name": "Unique FlowFiles",
            "sensitive": false
          },
          "Data Format": {
            "displayName": "Data Format",
            "dynamic": false,
            "identifiesControllerService": false,
            "name": "Data Format",
            "sensitive": false
          }
        },
        "retriedRelationships": [],
        "retryCount": 10,
        "runDurationMillis": 0,
        "scheduledState": "ENABLED",
        "schedulingPeriod": "5 sec",
        "schedulingStrategy": "TIMER_DRIVEN",
        "style": {

        },
        "type": "org.apache.nifi.processors.standard.GenerateFlowFile",
        "yieldDuration": "1 sec"
      }
    ],
    "remoteProcessGroups": [
      {
        "comments": "",
        "communicationsTimeout": "30 sec",
        "componentType": "REMOTE_PROCESS_GROUP",
        "groupIdentifier": "cad6891f-5564-3a61-8a99-bb7be344adc8",
        "identifier": "4d2e3379-5165-32b0-bf2a-cc36a354aa29",
        "inputPorts": [
          {
            "batchSize": {

            },
            "componentType": "REMOTE_INPUT_PORT",
            "concurrentlySchedulableTaskCount": 1,
            "groupIdentifier": "4d2e3379-5165-32b0-bf2a-cc36a354aa29",
            "identifier": "8dd0c880-1b12-3097-90a0-5f20d488f88a",
            "instanceIdentifier": "846c8039-231d-353b-b87e-aed9f7408030",
            "name": "fromMinifi",
            "remoteGroupId": "4d2e3379-5165-32b0-bf2a-cc36a354aa29",
            "scheduledState": "ENABLED",
            "targetId": "1e06d5ee-0193-1000-88b2-e6a57607a83c",
            "useCompression": false
          }
        ],
        "instanceIdentifier": "1b72a1a9-0193-1000-a217-fa7db75fc41a",
        "name": "NiFi Flow",
        "outputPorts": [],
        "position": {
          "x": -184,
          "y": 0
        },
        "proxyHost": "",
        "proxyUser": "",
        "targetUris": "http://10.233.150.213:8443/nifi",
        "transportProtocol": "RAW",
        "yieldDuration": "10 sec"
      }
    ],
    "scheduledState": "ENABLED",
    "statelessFlowTimeout": "1 min"
  },
  "flowEncodingVersion": "1.0",
  "parameterContexts": [],
  "parameterProviders": [],
  "snapshotMetadata": {
    "author": "anonymous",
    "comments": "",
    "timestamp": 1731375780091,
    "version": 1
  }

 I hope someone can help me

1 ACCEPTED SOLUTION

avatar
Master Mentor

@ZNFY 

Since you are exporting a flow definition of a process group, you'll need to utilize the MiNiFi toolkit to transform it in to the proper format that can be loaded by MiNiFi.   The MiNiFi-toolkit can be downloaded from here: https://nifi.apache.org/download/ (select "MINIFI' and click download link for Toolkit).   Execute:

./minifi-toolkit/bin/config.sh transform-nifi <exported flow definition> flow.json.raw​

 

  • Now edit the flow.json.raw file and edit the following property at start of file (value can not be 0.) 

"maxTimerDrivenThreadCount":5
  •  Now you can start your MiNiFi and it will create the flow.json.gz as it starts.

Please help our community thrive. If you found any of the suggestions/solutions provided helped you with solving your issue or answering your question, please take a moment to login and click "Accept as Solution" on one or more of them that helped.

Thank you,
Matt

View solution in original post

2 REPLIES 2

avatar
Community Manager

@ZNFY, Welcome to our community! To help you get the best possible answer, I have tagged in our NiFi experts @MattWho @SAMSAL  who may be able to assist you further.

Please feel free to provide any additional information or details about your query, and we hope that you will find a satisfactory solution to your question.



Regards,

Vidya Sargur,
Community Manager


Was your question answered? Make sure to mark the answer as the accepted solution.
If you find a reply useful, say thanks by clicking on the thumbs up button.
Learn more about the Cloudera Community:

avatar
Master Mentor

@ZNFY 

Since you are exporting a flow definition of a process group, you'll need to utilize the MiNiFi toolkit to transform it in to the proper format that can be loaded by MiNiFi.   The MiNiFi-toolkit can be downloaded from here: https://nifi.apache.org/download/ (select "MINIFI' and click download link for Toolkit).   Execute:

./minifi-toolkit/bin/config.sh transform-nifi <exported flow definition> flow.json.raw​

 

  • Now edit the flow.json.raw file and edit the following property at start of file (value can not be 0.) 

"maxTimerDrivenThreadCount":5
  •  Now you can start your MiNiFi and it will create the flow.json.gz as it starts.

Please help our community thrive. If you found any of the suggestions/solutions provided helped you with solving your issue or answering your question, please take a moment to login and click "Accept as Solution" on one or more of them that helped.

Thank you,
Matt