{"record":{"id":"5bdbf2dc4b185bbe","repo":"xuxueli/xxl-job","slug":"xxl-job-executor-appname-empty","errorCode":null,"errorMessage":"xxl-job executor appname empty.","messagePattern":"xxl-job executor appname empty\\.","errorType":"exception","errorClass":"RuntimeException","httpStatus":null,"severity":"critical","filePath":"xxl-job-core/src/main/java/com/xxl/job/core/executor/XxlJobExecutor.java","lineNumber":141,"sourceCode":"    }\n\n    /**\n     * start\n     */\n    public void start() throws Exception {\n\n        // valid enabled\n        if (!enabled) {\n            logger.info(\">>>>>>>>>>> xxl-job executor start fail, enabled:{}\", enabled);\n            return;\n        }\n\n        // valid param\n        if (StringTool.isBlank(adminAddresses)) {\n            throw new RuntimeException(\"xxl-job executor adminAddresses empty.\");\n        }\n        if (StringTool.isBlank(appname)) {\n            throw new RuntimeException(\"xxl-job executor appname empty.\");\n        }\n        if (StringTool.isBlank(accessToken)) {\n            throw new RuntimeException(\"xxl-job executor accessToken empty.\");\n        }\n\n        // bind instance\n        xxlJobExecutor = this;\n\n        // init logpath\n        XxlJobFileAppender.initLogPath(logPath);\n\n        // init invoker, admin-client\n        initAdminBizList();\n\n        // 1、init JobLogFileCleanThread\n        jobLogFileCleanThreadHelper = new JobLogFileCleanThreadHelper();\n        jobLogFileCleanThreadHelper.start(logRetentionDays);\n","sourceCodeStart":123,"sourceCodeEnd":159,"githubUrl":"https://github.com/xuxueli/xxl-job/blob/e74c784f68f81fa89cb350913ef15794865d7b12/xxl-job-core/src/main/java/com/xxl/job/core/executor/XxlJobExecutor.java#L123-L159","documentation":"Thrown by XxlJobExecutor.start() when the appname field is blank. appname identifies the executor group the admin uses to route jobs; a blank value aborts startup.","triggerScenarios":"Calling start() with appname unset or whitespace (e.g. xxl.job.executor.appname missing from configuration).","commonSituations":"Missing xxl.job.executor.appname in application.properties; wrong property key; env var not propagated into the container; template config left unfilled.","solutions":["Set xxl.job.executor.appname (or setAppname) to a non-blank unique executor name (e.g. \"my-app-executor\").","Ensure the appname matches a registered executor group in the admin console.","Check the active Spring profile actually contains the property."],"exampleFix":"// before\nxxlJobExecutor.setAppname(\"\");\n// after\nxxlJobExecutor.setAppname(\"my-app-executor\");","handlingStrategy":"validation","validationCode":"String appname = config.getAppname();\nif (StringTool.isBlank(appname)) {\n    throw new IllegalStateException(\"xxl.job.executor.appname is required\");\n}","typeGuard":null,"tryCatchPattern":"try {\n    xxlJobExecutor.start();\n} catch (RuntimeException e) {\n    log.error(\"executor start failed: {}\", e.getMessage());\n}","preventionTips":["Mark appname @NotBlank in your config properties bean.","Ensure the appname matches a registered executor group in the admin console.","Validate config in tests."],"tags":["configuration","startup","executor","registration"],"backgroundTag":null,"analyzedSha":"e74c784f68f81fa89cb350913ef15794865d7b12","analyzedAt":"2026-08-14T04:22:43.715Z","schemaVersion":2},"datasetVersion":"2026-08-14T05:17:29.042Z"}