pinpoint-apm/pinpoint · error · ResponseStatusException
e.getMessage()
Error message
e.getMessage()
What it means
AdminController.removeApplicationName wraps adminService.removeApplicationName in a broad try/catch and rethrows any exception as an HTTP 500 ResponseStatusException whose reason is the original exception's message. It is a generic passthrough: any failure while deleting the application's metadata from HBase surfaces as this 500, so the real cause must be read from the server log ('error while removing applicationName').
Source
Thrown at web/src/main/java/com/navercorp/pinpoint/web/authorization/controller/AdminController.java:78
public AdminController(AdminService adminService,
ApplicationFactory applicationFactory,
ServiceModelResolver serviceModelResolver) {
this.adminService = Objects.requireNonNull(adminService, "adminService");
this.applicationFactory = Objects.requireNonNull(applicationFactory, "applicationFactory");
this.serviceModelResolver = Objects.requireNonNull(serviceModelResolver, "serviceModelResolver");
}
@Deprecated
@RequestMapping(value = "/removeApplicationName")
public String removeApplicationName(@RequestParam("applicationName") @NotBlank String applicationName) {
logger.info("Removing application - applicationName: [{}]", applicationName);
try {
this.adminService.removeApplicationName(applicationName);
return "OK";
} catch (Exception e) {
logger.error("error while removing applicationName", e);
throw new ResponseStatusException(HttpStatus.INTERNAL_SERVER_ERROR, e.getMessage());
}
}
@DeleteMapping(value = "/applications")
public String removeApplication(@ServiceParam ServiceName serviceName,
@RequestParam("applicationName") @NotBlank String applicationName,
@RequestParam(value = "serviceTypeCode", required = false) Integer serviceTypeCode,
@RequestParam(value = "serviceTypeName", required = false) String serviceTypeName) {
Service service = serviceModelResolver.getService(serviceName.getName());
Application application = getApplication(service, applicationName, serviceTypeCode, serviceTypeName);
if (application.getServiceType().equals(ServiceType.UNDEFINED)) {
throw new ResponseStatusException(HttpStatus.BAD_REQUEST, "Undefined service type");
}
logger.info("Removing application - application: {}", application);
try {
this.adminService.removeApplication(application.getService(), application.getApplicationName(), application.getServiceTypeCode());
return "OK";
} catch (Exception e) {View on GitHub (pinned to 744c3d3075)
Solutions
- Read the Pinpoint Web server log entry 'error while removing applicationName' to find the underlying exception and fix that root cause
- Verify HBase connectivity and health from the Pinpoint Web host (zookeeper quorum, hbase client config)
- Confirm the applicationName exists and is spelled correctly (service param + applicationName parameter)
- Retry the delete after HBase recovers if it was a transient connection/timeout error
Example fix
// before — diagnosis only DELETE /admin/removeApplicationName?applicationName=MyApp -> 500: <underlying message> // after — check server log, fix HBase connectivity, then retry DELETE /admin/removeApplicationName?applicationName=MyApp -> 200 OK
Defensive patterns
Strategy: try-catch
Validate before calling
if (!applicationName || applicationName.trim() === '') {
throw new Error('applicationName is required');
} Try / catch
try {
await adminApi.removeApplicationName(applicationName);
} catch (e) {
if (e.status === 500) {
// e.message is the passthrough cause; check server log 'error while removing applicationName'
logAndAlert(`removeApplicationName failed for ${applicationName}: ${e.message}`);
}
throw e;
} Prevention
- Treat the 500 message as a passthrough and always correlate with the server log
- Check HBase health before running bulk admin deletions
- Verify the application exists before attempting removal
- Retry only after confirming the failure was transient (connectivity/timeout)
When it happens
Trigger: DELETE/POST /admin/removeApplicationName failing for any reason inside adminService.removeApplicationName — HBase connection failures, table/put/delete errors, timeouts, or an exception thrown while scanning and deleting the application's rows.
Common situations: HBase region server down or throttling; application name never existed and the service throws; permission problems on the HBase tables; network interruption between Pinpoint Web and HBase; very large application data causing the delete to time out.
Related errors
- Connection already closed
- Invalid namespace : <namespace>
- Already closed
- HBase version compatibility violation HBaseClient:%s, HBaseS
- Unknown HbaseClientVersion:<version>
AI-assisted analysis of pinpoint-apm/pinpoint@744c3d3075 (2026-09-07).
Data as JSON: /api/errors/e643a19bfee84928.
Report an issue: GitHub.