fix: Log unhandled errors during license activation (no-changelog) (#6165)

This commit is contained in:
Cornelius Suermann 2023-05-03 14:26:29 +02:00 committed by GitHub
parent e88232ede2
commit 97578c7505
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 12 additions and 8 deletions

View file

@ -75,25 +75,29 @@ licenseController.post(
} catch (e) {
const error = e as Error & { errorId?: string };
let message = 'Failed to activate license';
//override specific error messages (to map License Server vocabulary to n8n terms)
switch (error.errorId ?? 'UNSPECIFIED') {
case 'SCHEMA_VALIDATION':
error.message = 'Activation key is in the wrong format';
message = 'Activation key is in the wrong format';
break;
case 'RESERVATION_EXHAUSTED':
error.message =
message =
'Activation key has been used too many times. Please contact sales@n8n.io if you would like to extend it';
break;
case 'RESERVATION_EXPIRED':
error.message = 'Activation key has expired';
message = 'Activation key has expired';
break;
case 'NOT_FOUND':
case 'RESERVATION_CONFLICT':
error.message = 'Activation key not found';
message = 'Activation key not found';
break;
default:
getLogger().error(message, { stack: error.stack ?? 'n/a' });
}
throw new ResponseHelper.BadRequestError(error.message);
throw new ResponseHelper.BadRequestError(message);
}
// Return the read data, plus the management JWT

View file

@ -68,13 +68,13 @@ describe('POST /license/activate', () => {
test('errors out properly', async () => {
License.prototype.activate = jest.fn().mockImplementation(() => {
throw new Error(INVALID_ACIVATION_KEY_MESSAGE);
throw new Error(ACTIVATION_FAILED_MESSAGE);
});
await authOwnerAgent
.post('/license/activate')
.send({ activationKey: 'abcde' })
.expect(400, { code: 400, message: INVALID_ACIVATION_KEY_MESSAGE });
.expect(400, { code: 400, message: ACTIVATION_FAILED_MESSAGE });
});
});
@ -135,5 +135,5 @@ const DEFAULT_POST_RESPONSE: { data: ILicensePostResponse } = {
};
const NON_OWNER_ACTIVATE_RENEW_MESSAGE = 'Only an instance owner may activate or renew a license';
const INVALID_ACIVATION_KEY_MESSAGE = 'Invalid activation key';
const ACTIVATION_FAILED_MESSAGE = 'Failed to activate license';
const RENEW_ERROR_MESSAGE = 'Something went wrong when trying to renew license';