From c8abb5be16c883f85a35e2124b1adf8e7dabf441 Mon Sep 17 00:00:00 2001 From: Abhishek S Lal Date: Wed, 1 Apr 2026 21:24:32 +0530 Subject: [PATCH] fix: forward cookies from 4XX/5XX responses in runner and CLI (#7498) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit When axios receives a 4XX/5XX response it throws an error, causing execution to jump to the catch block. saveCookies() was only called in the try block (2XX path), so error-status cookies were silently dropped in collection runs. Fix applied to both affected code paths: - packages/bruno-cli/src/runner/run-single-request.js (CLI runner) - packages/bruno-electron/src/ipc/network/index.js (app collection runner) Manual single-request execution was already correct — saveCookies() is called after the try/catch there, so both status paths were covered. Fixes #7475 --- packages/bruno-cli/src/runner/run-single-request.js | 5 +++++ packages/bruno-electron/src/ipc/network/index.js | 5 +++++ 2 files changed, 10 insertions(+) diff --git a/packages/bruno-cli/src/runner/run-single-request.js b/packages/bruno-cli/src/runner/run-single-request.js index 8d1bdfb70..75477bcf9 100644 --- a/packages/bruno-cli/src/runner/run-single-request.js +++ b/packages/bruno-cli/src/runner/run-single-request.js @@ -684,6 +684,11 @@ const runSingleRequest = async function ( // Prevents the duration on leaking to the actual result responseTime = response.headers.get('request-duration'); response.headers.delete('request-duration'); + + // save cookies if enabled (4XX/5XX responses can also set cookies) + if (!options.disableCookies) { + saveCookies(request.url, response.headers); + } } else { console.log(chalk.red(stripExtension(relativeItemPathname)) + chalk.dim(` (${err.message})`)); return { diff --git a/packages/bruno-electron/src/ipc/network/index.js b/packages/bruno-electron/src/ipc/network/index.js index e92efe8b6..b91eb0197 100644 --- a/packages/bruno-electron/src/ipc/network/index.js +++ b/packages/bruno-electron/src/ipc/network/index.js @@ -1660,6 +1660,11 @@ const registerNetworkIpc = (mainWindow) => { error.response.data = data; error.response.dataBuffer = dataBuffer; + // save cookies (4XX/5XX responses can also set cookies) + if (preferencesUtil.shouldStoreCookies()) { + saveCookies(request.url, error.response.headers); + } + timeEnd = Date.now(); response = { status: error.response.status,