Dear NiFi team, I am experimenting with NiFi parameter provider configuration to externalize our parameters value. Our setup is a single instance of NiFi created by helm-nifi <https://github.com/cetic/helm-nifi>. Last week we found an exception that cause our NiFi failing to startup and stuck in crash loopback in our test environment :
java.lang.IllegalArgumentException: Parameters for Context [*main*] cannot be manually updated because they are provided by Parameter Provider [d247f466-0192-1000-bce4-93a483e13212] at org.apache.nifi.parameter.StandardParameterContext.verifyCanSetParameters(StandardParameterContext.java:728) at org.apache.nifi.parameter.StandardParameterContext.verifyCanSetParameters(StandardParameterContext.java:721) at org.apache.nifi.parameter.StandardParameterContext.setParameters(StandardParameterContext.java:138) at org.apache.nifi.controller.flow.AbstractFlowManager.createParameterContext(AbstractFlowManager.java:529) at org.apache.nifi.controller.serialization.VersionedFlowSynchronizer. *addParameterContext*(VersionedFlowSynchronizer.java:732) at org.apache.nifi.controller.serialization.VersionedFlowSynchronizer. *inheritParameterContext*(VersionedFlowSynchronizer.java:710) at org.apache.nifi.controller.serialization.VersionedFlowSynchronizer.lambda$inheritParameterContexts$3(VersionedFlowSynchronizer.java:696) at org.apache.nifi.controller.flow.AbstractFlowManager.withParameterContextResolution(AbstractFlowManager.java:551) at org.apache.nifi.controller.serialization.VersionedFlowSynchronizer.inheritParameterContexts(VersionedFlowSynchronizer.java:687) at org.apache.nifi.controller.serialization.VersionedFlowSynchronizer.synchronizeFlow(VersionedFlowSynchronizer.java:387) >From my troubleshooting, I found that there's some weird configuration that is unexpected, because Context [*main*] should not have Parameter Provider. It only inherits another param context that is provided by Parameter Provider. Anyway, the issue might come from our experimentation. But the main question I'm wondering is how this *VersionedFlowSynchronizer* works when NiFi starts up. What is the meaning of this synchronization? What does it synchronize the flow with? I just want to know more about this mechanism and if there's any documents about this. Thanks in advance for any help to clarify this. -- Regards, *Radit Panjapiyakul*