When attempting to access the Jobs view in the VMware Tanzu Data Flow Dashboard or calling the /jobs/executions REST API endpoint, the request fails with an HTTP 500 error.
The server logs for Tanzu Data Flow will contain a ConversionFailedException similar to the following:
Failed to convert from type [java.lang.String] to type [java.util.Date] for value [2026-04-22T11:41:46.713Z]
JdbcSearchableJobExecutionDaoThe issue is caused by a Spring Batch job execution parameter stored in the BATCH_JOB_EXECUTION_PARAMS metadata table. When a parameter is stored with PARAMETER_TYPE = java.util.Date and a PARAMETER_VALUE in ISO-8601 format containing a Z (Zulu/UTC) suffix (e.g., 2026-04-22T11:41:46.713Z), the JdbcSearchableJobExecutionDao fails to deserialize it.
The internal date parser used by Tanzu Data Flow in this specific path does not support the ISO-8601 UTC timestamp format with the Z suffix when converting back to a java.util.Date object, resulting in a 500 error that breaks the UI and API.
The issue is planned to be fixed in VMware Tanzu Data Flow 2.0.5 and 2.1.1 that will be released in May 19th.
In the meantime, you can use the Data Flow REST API with action=CLEANUP,REMOVE_DATA against the affected task execution ID(s) to remove the execution and its data as a workaround, following below instructions.
Log in to CF first if needed:
cf login -a https://api.<system-domain> --ssoAUTH="$(cf oauth-token)"dataflow:>task execution list
╔═════════════════════╤══╤══════════════════════════╤══════════════════════════╤═════════╗
║ Task Name │ID│ Start Time │ End Time │Exit Code║
╠═════════════════════╪══╪══════════════════════════╪══════════════════════════╪═════════╣
║scenario-date-repro-2│5 │2026-04-29T10:15:55.527541│2026-04-29T10:15:56.128531│0 ║
║scenario-date-repro-2│4 │2026-04-29T10:14:12.545661│2026-04-29T10:14:12.832808│1 ║
║scenario-date-repro │3 │2026-04-29T10:08:30.565065│2026-04-29T10:08:30.892126│1 ║
╚═════════════════════╧══╧══════════════════════════╧══════════════════════════╧═════════╝
Run:
curl -k -v \
-H "Authorization: $AUTH" \
-X DELETE \
"https://<data-flow-server-route>/tasks/executions/<task-execution-id>?action=CLEANUP,REMOVE_DATA"Example:
curl -k -v \
-H "Authorization: $AUTH" \
-X DELETE \
"https://dataflow.example.com/tasks/executions/5?action=CLEANUP,REMOVE_DATA"/jobs/executions works againcurl -k \
-H "Authorization: $AUTH" \
"https://<data-flow-server-route>/jobs/executions"For future launches, avoid storing ISO-8601 UTC timestamps ending in Z as java.util.Date job parameters.
Use java.lang.String instead:
run.date=2026-04-22T11:41:46.713Z,java.lang.String,trueinstead of:
run.date=2026-04-22T11:41:46.713Z,java.util.Date,true