Skip to content

MicroserviceHealthIndicator pingCheck() failed when error is undefined #2256

Closed
@osan15

Description

Is there an existing issue for this?

  • I have searched the existing issues

Current behavior

In the pingCheck() function, if the error caught is of type "undefined / null", the pingCheck() function will return an unexpected error.

Minimum reproduction code

I reproduce the bug with an MQTT MicroService, in some cases it returns an "undefined" error if the service can't connect to the server.
To reproduce the case you have to catch an exception that is not an object.

Steps to reproduce

See below, I think the resolution of the problem is simple.

Expected behavior

The expected behavior is that the exception returned by the pingCheck() function should be an instance of HealthCheckError (MicroserviceHealthIndicator class).

I think the solution is to update the isError function to not throw an exception if the given error is undefined/null.

old:

export function isError(err: any): err is Error {
  return !!err.message;
}

new:

export function isError(err: any): err is Error {
  return !!err?.message;
}

In addition, the verification of the existence of the error is already done in the generateError() function

if (!error) {
      return;
    }

Package version

9.2.1

NestJS version

9.3.9

Node.js version

18.15.0

In which operating systems have you tested?

  • macOS
  • Windows
  • Linux

Other

No response

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions