Hi all, I used the following code to create an applicationConfiguration for submitting a Flink job to a YARN cluster in application mode:
ApplicationConfiguration applicationConfiguration = new ApplicationConfiguration(userProgramArguments, userMainClass); However, I encountered an issue when userProgramArguments contains special characters such as single quotation marks (') or the sequence $#. In such cases, Flink fails to parse the arguments correctly. For example, when the userProgramArguments string is: kuser='log' kpwd='log@123$#sM' groupId=group-trace-source Flink parses it incorrectly as: 'kuser=\'log\'';'kpwd=\'log@123\$' This leads to an exception at runtime, as shown below: 2025-07-08 20:04:01,336 WARN org.apache.flink.configuration.Configuration [] - Config uses deprecated configuration key 'web.port' instead of proper key 'rest.bind-port' 2025-07-08 20:04:01,343 INFO org.apache.flink.yarn.Utils [] - Resolved keytab path: /data/hadoop/yarn/local2/usercache/etl_03/appcache/application_1749118442714_1372/container_e63_1749118442714_1372_02_000001/krb5.keytab 2025-07-08 20:04:01,346 INFO org.apache.flink.runtime.clusterframework.BootstrapTools [] - Setting directories for temporary files to: /data/hadoop/yarn/local2/usercache/etl_03/appcache/application_1749118442714_1372 2025-07-08 20:04:01,348 ERROR org.apache.flink.runtime.entrypoint.ClusterEntrypoint [] - Could not create application program. java.lang.IllegalArgumentException: Could not parse value 'kbs=fullchain01:9092,fullchain02:'kuser=\'log\'';'kpwd=\'log@123\$' for key '$internal.application.program-args'. ... Caused by: java.lang.IllegalArgumentException: Could not split string. Quoting was not closed properly. ... It seems that the Flink CLI modifies or escapes the input, resulting in malformed arguments. Is there a recommended way to pass such userProgramArguments to the user’s main function without being altered by the CLI? Thanks in advance for your help in resolving this issue. Best regards, leilinee