Skip to main content
ZNFY
Silver ⭐️
November 12, 2024
Solved

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

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

MattWho
MattWhoAnswer
Titanium ⭐️⭐️⭐️
November 12, 2024

@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

2 replies

VidyaSargur
Community Manager
Community Manager
November 12, 2024

@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.

Translate
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.
MattWho
Titanium ⭐️⭐️⭐️
MattWhoAnswer
Titanium ⭐️⭐️⭐️
November 12, 2024

@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

Translate