xuxueli/xxl-job · critical · RuntimeException
xxl-job executor adminAddresses empty.
Error message
xxl-job executor adminAddresses empty.
What it means
Thrown by XxlJobExecutor.start() when the adminAddresses field is blank. The executor needs at least one admin-server URL to register itself and receive triggers; without it, startup aborts before binding the singleton or initialising clients.
Source
Thrown at xxl-job-core/src/main/java/com/xxl/job/core/executor/XxlJobExecutor.java:138
}
public TriggerCallbackThreadHelper getTriggerCallbackThreadHelper() {
return triggerCallbackThreadHelper;
}
/**
* start
*/
public void start() throws Exception {
// valid enabled
if (!enabled) {
logger.info(">>>>>>>>>>> xxl-job executor start fail, enabled:{}", enabled);
return;
}
// valid param
if (StringTool.isBlank(adminAddresses)) {
throw new RuntimeException("xxl-job executor adminAddresses empty.");
}
if (StringTool.isBlank(appname)) {
throw new RuntimeException("xxl-job executor appname empty.");
}
if (StringTool.isBlank(accessToken)) {
throw new RuntimeException("xxl-job executor accessToken empty.");
}
// bind instance
xxlJobExecutor = this;
// init logpath
XxlJobFileAppender.initLogPath(logPath);
// init invoker, admin-client
initAdminBizList();
// 1、init JobLogFileCleanThreadView on GitHub (pinned to e74c784f68)
Solutions
- Set xxl.job.admin.addresses (or setAdminAddresses) to a non-blank value like "http://127.0.0.1:8080/xxl-job-admin".
- Verify the property is present in the active Spring profile / environment.
- Confirm the value is not an empty string from an unset environment variable.
Example fix
// before
xxlJobExecutor.setAdminAddresses("");
// after
xxlJobExecutor.setAdminAddresses("http://127.0.0.1:8080/xxl-job-admin"); Defensive patterns
Strategy: validation
Validate before calling
// Validate config before start()
String admin = config.getAdminAddresses();
if (StringTool.isBlank(admin)) {
throw new IllegalStateException("xxl.job.admin.addresses is required");
} Try / catch
try {
xxlJobExecutor.start();
} catch (RuntimeException e) {
log.error("executor start failed: {}", e.getMessage());
} Prevention
- Centralise executor config validation in a Spring @ConfigurationProperties bean with @NotBlank.
- Fail fast at boot if xxl.job.admin.addresses is unset.
- Use profile-specific config to avoid missing addresses in prod.
When it happens
Trigger: Calling start() with adminAddresses unset, empty, or whitespace-only (e.g. property xxl.job.admin.addresses missing from application.properties / -Dxxl.job.admin.addresses not supplied).
Common situations: Profile-specific config that omits xxl.job.admin.addresses; env var not injected in a container; copy-paste of a template without filling the admin address; using addresses instead of adminAddresses setter.
Related errors
- xxl-job executor appname empty.
- xxl-job executor accessToken empty.
- >>>>>>>>>>> xxl-job load executor instance fail, please init
- xxl-job method-jobhandler name invalid, for[{}#{}] .
- xxl-job logPath cannot be empty
AI-assisted analysis of xuxueli/xxl-job@e74c784f68 (2026-08-14).
Data as JSON: /api/errors/d802a1348969f4af.
Report an issue: GitHub.