{"record":{"id":"af0e564dc7207cbd","repo":"apache/dolphinscheduler","slug":"submit-dinkytask-failed","errorCode":null,"errorMessage":"Submit dinkyTask failed:","messagePattern":"Submit dinkyTask failed:","errorType":"exception","errorClass":"TaskException","httpStatus":null,"severity":"error","filePath":"dolphinscheduler-task-plugin/dolphinscheduler-task-dinky/src/main/java/org/apache/dolphinscheduler/plugin/task/dinky/DinkyTask.java","lineNumber":141,"sourceCode":"                result = onlineTaskV0(address, taskId);\n            } else {\n                // Submit dinky-0.6.5 task\n                result = submitTaskV0(address, taskId);\n            }\n            if (checkResultV0(result)) {\n                status = result.get(apiResultDatasKey).get(DinkyTaskConstants.API_RESULT_SUCCESS).asBoolean();\n                if (result.get(apiResultDatasKey).has(DinkyTaskConstants.API_RESULT_JOB_INSTANCE_ID)\n                        && !(result.get(apiResultDatasKey)\n                                .get(DinkyTaskConstants.API_RESULT_JOB_INSTANCE_ID) instanceof NullNode)) {\n                    jobInstanceId =\n                            result.get(apiResultDatasKey).get(DinkyTaskConstants.API_RESULT_JOB_INSTANCE_ID).asText();\n                }\n            }\n        } catch (Exception ex) {\n            Thread.currentThread().interrupt();\n            log.error(DinkyTaskConstants.SUBMIT_FAILED_MSG, ex);\n            setExitStatusCode(EXIT_CODE_FAILURE);\n            throw new TaskException(DinkyTaskConstants.SUBMIT_FAILED_MSG, ex);\n        }\n    }\n\n    private void submitApplicationV1() {\n        try {\n            String address = this.dinkyParameters.getAddress();\n            String taskId = this.dinkyParameters.getTaskId();\n            boolean isOnline = this.dinkyParameters.isOnline();\n            JsonNode result;\n            String apiResultDataKey = DinkyTaskConstants.API_RESULT_DATA;\n            // Submit dinky-1.0.0 task\n            result = submitTaskV1(address, taskId, isOnline, generateVariables());\n            if (checkResultV1(result)) {\n                status = result.get(DinkyTaskConstants.API_RESULT_SUCCESS).asBoolean();\n                if (result.get(apiResultDataKey).has(DinkyTaskConstants.API_RESULT_JOB_INSTANCE_ID)\n                        && !(result.get(apiResultDataKey)\n                                .get(DinkyTaskConstants.API_RESULT_JOB_INSTANCE_ID) instanceof NullNode)) {\n                    jobInstanceId =","sourceCodeStart":123,"sourceCodeEnd":159,"githubUrl":"https://github.com/apache/dolphinscheduler/blob/02eac45a1b6676e639fcbfb4be2243de5771b05d/dolphinscheduler-task-plugin/dolphinscheduler-task-dinky/src/main/java/org/apache/dolphinscheduler/plugin/task/dinky/DinkyTask.java#L123-L159","documentation":"DinkyTask.submitApplicationV0() submits the job to Dinky via its API. Any exception during submission is caught, logged with SUBMIT_FAILED_MSG ('Submit dinkyTask failed:'), the exit status set to failure, and rethrown as TaskException. This is the V0 (legacy) submit path failing at the exception level — network, HTTP, or API client errors.","triggerScenarios":"Exception thrown while calling the Dinky REST API during V0 submission — connection failure, timeout, HTTP client error, or interrupted thread (InterruptedException re-interrupts before throwing).","commonSituations":"Dinky server down or wrong address/port; network/firewall blocking worker→Dinky; Dinky API version mismatch making the endpoint 404; slow Dinky causing client timeouts.","solutions":["Verify the Dinky address in task params is reachable from the worker (curl the address from the worker host).","Check the wrapped cause in worker logs to distinguish connection-refused vs timeout vs HTTP error.","Confirm the Dinky API version matches the submit path (consider V1 API if your Dinky supports it).","Fix network/firewall rules between worker and Dinky cluster, then rerun the task."],"exampleFix":"// before: unreachable address\n{\"address\":\"http://dinky-internal:8888\",\"taskId\":3}\n// after: correct reachable address\n{\"address\":\"http://dinky.example.com:8888\",\"taskId\":3}","handlingStrategy":"try-catch","validationCode":"// pre-check Dinky reachability from worker\ncurl -fsS --max-time 5 ${dinkyAddress}/available || echo 'Dinky unreachable'","typeGuard":null,"tryCatchPattern":"try {\n    task.submitApplication();\n} catch (TaskException e) {\n    Throwable cause = e.getCause();\n    log.error(\"Dinky V0 submit failed, cause class: {}\", cause == null ? \"none\" : cause.getClass());\n}","preventionTips":["Health-check the Dinky address from worker hosts before scheduling.","Use DNS names that resolve inside the worker network.","Align Dinky API version with the submit path in use."],"tags":["dinky","network","http-request"],"backgroundTag":"api-request-failed","analyzedSha":"02eac45a1b6676e639fcbfb4be2243de5771b05d","analyzedAt":"2026-09-06T17:43:00.555Z","contentChangedAt":"2026-09-06T17:43:00.555Z","schemaVersion":2},"datasetVersion":"2026-09-14T00:17:10.932Z"}