[Solved] 6000 lines of backend foreground log on localhost dev instance after using a filestorage converted from docker swarm

TL;DR;

After tranferring a database from a live cookieplone based docker swarm to localhost, deactivate caching and remove the purger URL manually via ClassicUI on localhost.

Scenario

After I transferred the database from a live system (cookieplone based docker swarn ) to a local dev instance to test content using zodbconvert I got 6000 lines log errors for one content change event because of url retries.

Important: We are not using a local docker swarm matching the production!

Symptoms – how to Reproduce

Start your Plone Volto development instance on localhost with a filestorage and blobs imported and converted from a cookieplone devops setup based swarm. Full devops setup with postgreSQL relstorage, varnish, traefik and purger containers -> (zodbconvert procedure).

Issue setup:

Generated using Cookieplone (0.9.7) and cookieplone-templates (83b50c6)

Reference clean setup tested with Plone 6.1.3, Volto 18.29.1 and VLT 7.6.1:

Generated using Cookieplone (0.9.9) and cookieplone-templates (62683ae)

Action provoking the effect

  • Add an image
  • Rename the image title and save and watch the backend foreground log.

The effect happens on localhost only during save after edits of existing images and uploaded files. No content was damaged or lost.

This may not be always obvious for developers when they have no test suite for this:

  • change content (file) on existing objects
  • rename, change state, metadata etc.
  • everything that needs purging of a cache.

This repeating part of the foreground log was leading to the fix:

2025-11-06 19:45:19,339 ERROR   [plone.cachepurging.purger:197][PurgeThread for http://purger] Failed to purge http://purger/image.jpg/@@images/image/thumb
...
urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host='purger', port=80): Max retries exceeded with url: /image.jpg/@@images/image/thumb (Caused by NameResolutionError("<urllib3.connection.HTTPConnection object at 0x1185b7ac0>: Failed to resolve 'purger' ([Errno 8] nodename nor servname provided, or not known)"))
...
socket.gaierror: [Errno 8] nodename nor servname provided, or not known
...
requests.exceptions.ConnectionError: HTTPConnectionPool(host='purger', port=80): Max retries exceeded with url: /my-image.png (Caused by NameResolutionError("<urllib3.connection.HTTPConnection object at 0x1185b7ac0>: Failed to resolve 'purger' ([Errno 8] nodename nor servname provided, or not known)"))
...

The Cause: Caching and Purging settings for docker swarm not localhost

In the swarm, caching was activated and purging as well with a URL set to http://purger

After comparing with a fresh install I found a default in my project addon at backend/src/project/title/profiles/default/registry/plone.cachepurging.interfaces.ICachePurgingSettings.xml

<?xml version="1.0" encoding="utf-8"?>
<registry>
  <record name="plone.cachepurging.interfaces.ICachePurgingSettings.enabled">
    <value>True</value>
  </record>
  <record name="plone.cachepurging.interfaces.ICachePurgingSettings.cachingProxies">
    <value>
      <element>http://purger</element>
    </value>
  </record>
  <record name="plone.cachepurging.interfaces.ICachePurgingSettings.virtualHosting">
    <value>False</value>
  </record>
</registry>

Solution:

Deactivating the caching and removing the purger URL via ClassicUI on localhost fixed it. (In the first two tabs of the cache controlpanel)

Now we have exactly the same setting like a fresh generated local site and The issue is gone.

Note: I found no similar tracebacks in the logs of the docker swarm backend so far. (this setup is running a purger service as seperate container(s).