# 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 >> Build Application Image >> should build application changes as new image through pipelines - Location: tests/tssc/full_workflow.test.ts:86:5 # Error details ``` GithubApiError: Failed to merge pull request #1 ``` # Test source ```ts 1 | /** 2 | * Base GitHub error class 3 | */ 4 | export class GithubError extends Error { 5 | constructor( 6 | message: string, 7 | public readonly statusCode?: number, 8 | public readonly cause?: Error 9 | ) { 10 | super(message); 11 | this.name = 'GithubError'; 12 | 13 | if (Error.captureStackTrace) { 14 | Error.captureStackTrace(this, GithubError); 15 | } 16 | } 17 | } 18 | 19 | /** 20 | * Error thrown when a GitHub resource is not found (e.g., repository, workflow run) 21 | */ 22 | export class GithubNotFoundError extends GithubError { 23 | constructor(resource: string, identifier: string, statusCode: number = 404) { 24 | super(`GitHub ${resource} not found: ${identifier}`, statusCode); 25 | this.name = 'GithubNotFoundError'; 26 | } 27 | } 28 | 29 | /** 30 | * Error thrown when GitHub authentication fails 31 | */ 32 | export class GithubAuthenticationError extends GithubError { 33 | constructor(message: string = 'GitHub authentication failed', statusCode: number = 401) { 34 | super(message, statusCode); 35 | this.name = 'GithubAuthenticationError'; 36 | } 37 | } 38 | 39 | /** 40 | * Error thrown when GitHub API rate limit is exceeded 41 | */ 42 | export class GithubRateLimitError extends GithubError { 43 | constructor(retryAfter?: number, statusCode: number = 429) { 44 | const message = retryAfter 45 | ? `GitHub API rate limit exceeded. Retry after ${retryAfter} seconds.` 46 | : 'GitHub API rate limit exceeded.'; 47 | super(message, statusCode); 48 | this.name = 'GithubRateLimitError'; 49 | } 50 | } 51 | 52 | /** 53 | * Error thrown when GitHub Actions workflow operations fail 54 | */ 55 | export class GithubWorkflowError extends GithubError { 56 | constructor(operation: string, identifier: string, statusCode?: number, cause?: Error) { 57 | super(`GitHub Actions workflow ${operation} failed: ${identifier}`, statusCode, cause); 58 | this.name = 'GithubWorkflowError'; 59 | } 60 | } 61 | 62 | /** 63 | * Error thrown when a GitHub API request fails for other reasons 64 | */ 65 | export class GithubApiError extends GithubError { 66 | constructor(message: string, statusCode?: number, cause?: Error) { > 67 | super(message, statusCode, cause); | ^ GithubApiError: Failed to merge pull request #1 68 | this.name = 'GithubApiError'; 69 | } 70 | } ```