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
2 changed files with 12 additions and 8 deletions

View File

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

View File

@@ -68,13 +68,13 @@ describe('POST /license/activate', () => {
test('errors out properly', async () => { test('errors out properly', async () => {
License.prototype.activate = jest.fn().mockImplementation(() => { License.prototype.activate = jest.fn().mockImplementation(() => {
throw new Error(INVALID_ACIVATION_KEY_MESSAGE); throw new Error(ACTIVATION_FAILED_MESSAGE);
}); });
await authOwnerAgent await authOwnerAgent
.post('/license/activate') .post('/license/activate')
.send({ activationKey: 'abcde' }) .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 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'; const RENEW_ERROR_MESSAGE = 'Something went wrong when trying to renew license';