diff --git a/packages/cli/src/utils/socket/api.mts b/packages/cli/src/utils/socket/api.mts index 858a7c6ca..ba6abb379 100644 --- a/packages/cli/src/utils/socket/api.mts +++ b/packages/cli/src/utils/socket/api.mts @@ -456,7 +456,7 @@ export async function queryApiSafeText( return { ok: false, message, - cause: networkDiagnostics, + cause: `${networkDiagnostics} (path: ${path})`, } } @@ -497,7 +497,7 @@ export async function queryApiSafeText( return { ok: false, message: 'API request failed', - cause: 'Unexpected error reading response text', + cause: `Unexpected error reading response text (path: ${path})`, } } } @@ -634,7 +634,7 @@ export async function sendApiRequest( return { ok: false, message, - cause: networkDiagnostics, + cause: `${networkDiagnostics} (path: ${path})`, } } @@ -677,7 +677,7 @@ export async function sendApiRequest( return { ok: false, message: 'API request failed', - cause: 'Unexpected error parsing response JSON', + cause: `Unexpected error parsing response JSON (path: ${path})`, } } } diff --git a/packages/cli/test/unit/utils/socket/api.test.mts b/packages/cli/test/unit/utils/socket/api.test.mts index 297a88a76..7550846f1 100644 --- a/packages/cli/test/unit/utils/socket/api.test.mts +++ b/packages/cli/test/unit/utils/socket/api.test.mts @@ -466,6 +466,9 @@ describe('api utilities', () => { expect(result.ok).toBe(false) if (!result.ok) { expect(result.message).toContain('failed') + // The cause must include the request path so the user can tell + // which endpoint failed when several calls are in flight. + expect(result.cause).toContain('(path: test/path)') } expect(mockFailAndStop).toHaveBeenCalled() }) @@ -490,6 +493,7 @@ describe('api utilities', () => { expect(result.ok).toBe(false) if (!result.ok) { expect(result.cause).toContain('response text') + expect(result.cause).toContain('(path: test/path)') } }) }) @@ -625,6 +629,8 @@ describe('api utilities', () => { expect(result.ok).toBe(false) if (!result.ok) { expect(result.message).toContain('failed') + // Request path must be surfaced in error cause for debuggability. + expect(result.cause).toContain('(path: test/path)') } }) @@ -639,6 +645,7 @@ describe('api utilities', () => { expect(result.ok).toBe(false) if (!result.ok) { expect(result.cause).toContain('parsing') + expect(result.cause).toContain('(path: test/path)') } })