Skip to content

Commit

Permalink
Use same message for logs & HTTP response
Browse files Browse the repository at this point in the history
  • Loading branch information
John Schulz committed Sep 9, 2020
1 parent e05362c commit fdaf588
Show file tree
Hide file tree
Showing 2 changed files with 7 additions and 6 deletions.
8 changes: 4 additions & 4 deletions x-pack/plugins/ingest_manager/server/errors/handlers.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ import {
} from './index';

const LegacyESErrors = errors as Record<string, any>;
type ITestEsErrorsFnParams = [errorCode: string, error: any, bodyMessage: string];
type ITestEsErrorsFnParams = [errorCode: string, error: any, expectedMessage: string];

describe('defaultIngestErrorHandler', () => {
let mockContract: ReturnType<typeof createAppContextStartContractMock>;
Expand All @@ -33,7 +33,7 @@ describe('defaultIngestErrorHandler', () => {
});

async function testEsErrorsFn(...args: ITestEsErrorsFnParams) {
const [, error, bodyMessage] = args;
const [, error, expectedMessage] = args;
jest.clearAllMocks();
const response = httpServerMock.createResponseFactory();
await defaultIngestErrorHandler({ error, response });
Expand All @@ -43,12 +43,12 @@ describe('defaultIngestErrorHandler', () => {
expect(response.customError).toHaveBeenCalledTimes(1);
expect(response.customError).toHaveBeenCalledWith({
statusCode: error.status,
body: { message: bodyMessage },
body: { message: expectedMessage },
});

// logging
expect(mockContract.logger?.error).toHaveBeenCalledTimes(1);
expect(mockContract.logger?.error).toHaveBeenCalledWith(error.message);
expect(mockContract.logger?.error).toHaveBeenCalledWith(expectedMessage);
}

describe('use the HTTP error status code provided by LegacyESErrors', () => {
Expand Down
5 changes: 3 additions & 2 deletions x-pack/plugins/ingest_manager/server/errors/handlers.ts
Original file line number Diff line number Diff line change
Expand Up @@ -64,13 +64,14 @@ export const defaultIngestErrorHandler: IngestErrorHandler = async ({
if (isLegacyESClientError(error)) {
// there was a problem communicating with ES (e.g. via `callCluster`)
// only log the message
logger.error(error.message);

const message =
error?.path && error?.response
? // if possible, return the failing endpoint and its response
`${error.message} response from ${error.path}: ${error.response}`
: error.message;

logger.error(message);

return response.customError({
statusCode: error?.statusCode || error.status,
body: { message },
Expand Down

0 comments on commit fdaf588

Please sign in to comment.