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

  1. Read the Pinpoint Web server log entry 'error while removing applicationName' to find the underlying exception and fix that root cause
  2. Verify HBase connectivity and health from the Pinpoint Web host (zookeeper quorum, hbase client config)
  3. Confirm the applicationName exists and is spelled correctly (service param + applicationName parameter)
  4. 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

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


AI-assisted analysis of pinpoint-apm/pinpoint@744c3d3075 (2026-09-07). Data as JSON: /api/errors/e643a19bfee84928. Report an issue: GitHub.