diff --git a/lib/modules/platform/bitbucket/pr-cache.spec.ts b/lib/modules/platform/bitbucket/pr-cache.spec.ts
index 5bf1d30da056f4b9ece378eacdc40dd90db5ef2f..49db64d31d65a67a11fdaa288dadc03d26163187 100644
--- a/lib/modules/platform/bitbucket/pr-cache.spec.ts
+++ b/lib/modules/platform/bitbucket/pr-cache.spec.ts
@@ -74,7 +74,7 @@ describe('modules/platform/bitbucket/pr-cache', () => {
       },
     ]);
     expect(cache).toEqual({
-      httpCache: {},
+      httpCache: expect.toBeNonEmptyObject(),
       platform: {
         bitbucket: {
           pullRequestsCache: {
@@ -123,7 +123,7 @@ describe('modules/platform/bitbucket/pr-cache', () => {
       },
     ]);
     expect(cache).toEqual({
-      httpCache: {},
+      httpCache: expect.toBeNonEmptyObject(),
       platform: {
         bitbucket: {
           pullRequestsCache: {
@@ -170,7 +170,7 @@ describe('modules/platform/bitbucket/pr-cache', () => {
       { number: 1, title: 'title' },
     ]);
     expect(cache).toEqual({
-      httpCache: {},
+      httpCache: expect.toBeNonEmptyObject(),
       platform: {
         bitbucket: {
           pullRequestsCache: {
diff --git a/lib/util/http/cache/abstract-http-cache-provider.ts b/lib/util/http/cache/abstract-http-cache-provider.ts
index 46ab61e258466ddc9cb4a558f845ed5aacb375fb..a1c3f7dcd72ed176058d77486b5f49b05a6d67d6 100644
--- a/lib/util/http/cache/abstract-http-cache-provider.ts
+++ b/lib/util/http/cache/abstract-http-cache-provider.ts
@@ -65,15 +65,17 @@ export abstract class AbstractHttpCacheProvider implements HttpCacheProvider {
         httpResponse,
         timestamp,
       });
-      if (newHttpCache) {
-        logger.debug(
-          `http cache: saving ${url} (etag=${etag}, lastModified=${lastModified})`,
-        );
-        await this.persist(url, newHttpCache as HttpCache);
-      } else {
+
+      // istanbul ignore if: should never happen
+      if (!newHttpCache) {
         logger.debug(`http cache: failed to persist cache for ${url}`);
+        return resp;
       }
 
+      logger.debug(
+        `http cache: saving ${url} (etag=${etag}, lastModified=${lastModified})`,
+      );
+      await this.persist(url, newHttpCache as HttpCache);
       return resp;
     }
 
diff --git a/lib/util/http/cache/repository-http-cache-provider.spec.ts b/lib/util/http/cache/repository-http-cache-provider.spec.ts
index 5b070114cee82dcc6c00ce7a5292bff06b6bd4d9..a50121cced822ad6ecbe416beedfb6271bbbcf51 100644
--- a/lib/util/http/cache/repository-http-cache-provider.spec.ts
+++ b/lib/util/http/cache/repository-http-cache-provider.spec.ts
@@ -1,6 +1,5 @@
 import { Http } from '..';
 import * as httpMock from '../../../../test/http-mock';
-import { logger } from '../../../../test/util';
 import { resetCache } from '../../cache/repository';
 import { repoCacheProvider } from './repository-http-cache-provider';
 
@@ -59,19 +58,6 @@ describe('util/http/cache/repository-http-cache-provider', () => {
     });
   });
 
-  it('reports if cache could not be persisted', async () => {
-    httpMock
-      .scope('https://example.com')
-      .get('/foo/bar')
-      .reply(200, { msg: 'Hello, world!' });
-
-    await http.getJsonUnchecked('https://example.com/foo/bar');
-
-    expect(logger.logger.debug).toHaveBeenCalledWith(
-      'http cache: failed to persist cache for https://example.com/foo/bar',
-    );
-  });
-
   it('handles abrupt cache reset', async () => {
     const scope = httpMock.scope('https://example.com');
 
diff --git a/lib/util/http/cache/schema.ts b/lib/util/http/cache/schema.ts
index c9b9db1e291d92e086e2b17c064ba0043352ec75..fe69554ddc48338e550dfc12d1ec64b03f8440f5 100644
--- a/lib/util/http/cache/schema.ts
+++ b/lib/util/http/cache/schema.ts
@@ -7,10 +7,6 @@ export const HttpCacheSchema = z
     httpResponse: z.unknown(),
     timestamp: z.string(),
   })
-  .refine(
-    ({ etag, lastModified }) => etag ?? lastModified,
-    'Cache object should have `etag` or `lastModified` fields',
-  )
   .nullable()
   .catch(null);
 export type HttpCache = z.infer<typeof HttpCacheSchema>;