# Instructions - Following Playwright test failed. - Explain why, be concise, respect Playwright best practices. - Provide a snippet of code with the fix, if possible. # Test info - Name: tssc/full_workflow.test.ts >> TSSC Complete Workflow >> Deployment Verification >> should promote and verify deployment to production environment - Location: tests/tssc/full_workflow.test.ts:121:5 # Error details ``` AzureApiError: Request failed with status code 429 ``` # Test source ```ts 1 | import { ApiError, AuthenticationError, NotFoundError, BadRequestError } from '../../common/errors/api.errors'; 2 | 3 | export class AzureApiError extends ApiError { 4 | constructor(message: string, status?: number, data?: any, cause?: unknown) { > 5 | super(message, status, data, cause); | ^ AzureApiError: Request failed with status code 429 6 | this.name = 'AzureApiError'; 7 | Object.setPrototypeOf(this, AzureApiError.prototype); 8 | } 9 | } 10 | 11 | export class AzureAuthenticationError extends AuthenticationError { 12 | constructor(message = 'Azure authentication failed', status = 401, data?: any, cause?: unknown) { 13 | super(message, status, data, cause); 14 | this.name = 'AzureAuthenticationError'; 15 | Object.setPrototypeOf(this, AzureAuthenticationError.prototype); 16 | } 17 | } 18 | 19 | export class AzureNotFoundError extends NotFoundError { 20 | constructor(message = 'Azure resource not found', status = 404, data?: any, cause?: unknown) { 21 | super(message, status, data, cause); 22 | this.name = 'AzureNotFoundError'; 23 | Object.setPrototypeOf(this, AzureNotFoundError.prototype); 24 | } 25 | } 26 | 27 | export function isTransientAzureError(error: unknown): boolean { 28 | if (!(error instanceof AzureApiError)) return true; 29 | const status = error.status; 30 | return !status || status === 408 || status === 429 || status >= 500; 31 | } 32 | 33 | export class AzureBadRequestError extends BadRequestError { 34 | constructor(message = 'Azure bad request', status = 400, data?: any, cause?: unknown) { 35 | super(message, status, data, cause); 36 | this.name = 'AzureBadRequestError'; 37 | Object.setPrototypeOf(this, AzureBadRequestError.prototype); 38 | } 39 | } ```