GeoServer Cloud (2.25.3.0) - GeoWebCache (GWC) Not Caching Tiles to Local File System Despite Debug Logs & Writable Dir

Hello GeoServer Community,

We’re unable to get GeoWebCache (GWC) to write tiles in our GeoServer Cloud (2.25.3.0-CLOUD) K8s deployment. We see “Disk Used: 0.0 B” in the UI, and no tile files are created on disk. The core issue seems to be GWC not even attempting to intercept WMS requests for caching, verified this through the DEBUG Level logging.

Setup Details:

  • GeoServer Version: 2.25.3.0-CLOUD (K8s microservices, WMS pod runs as root).
  • Target Cache Path: [Our Data Directory Mount Point]/gwc/ (a Persistent Volume).
  • Client: Leaflet L.tileLayer.wms sending TILED=true requests.
  • GWC Config:
    • Direct WMS Integration is enabled (from startup logs).
    • A File BlobStore named MyFileBlobStore is explicitly created in the UI, pointing to [Our Data Directory Mount Point]/gwc/, and [Our Raster Layer] is assigned to it.
    • GWC_DISKQUOTA_DISABLED=true (explains 0.0 B UI display).

Observation (from WMS Pod Logs):

  • During startup, logs show: INFO ... org.geoserver.cloud.gwc.config.core : forcing System Property GEOWEBCACHE_CACHE_DIR=[Our Data Directory Mount Point]/gwc
  • During active map Browse (generating WMS requests with TILED=true), the logs contain ABSOLUTELY NO DEBUG messages from org.geowebcache or org.geoserver.gwc related to incoming tile requests, cache misses/hits, or tile storage. All we see are org.geotools.renderer.lite messages (dynamic rendering). This means GWC is not intercepting.

Summary of Troubleshooting & Findings:

  • Write Permissions: Confirmed [Data Directory Mount Path]/gwc/ is writable by GeoServer (creation of geowebcache.xml and .bak files works).
  • GWC Debugging: LOGGING_LEVEL_ORG_GEOWEBCACHE=DEBUG etc. env vars are confirmed applied in pod manifest.

Hypothesis: The GEOWEBCACHE_CACHE_DIR system property/environment variable, due to how it’s integrated in GeoServer Cloud, seems to be overriding GWC’s normal behavior, preventing it from intercepting WMS requests for caching and ignoring UI-configured BlobStores for operational use.

Open Questions:

  1. In GeoServer 2.25.3.0-CLOUD, can the GEOWEBCACHE_CACHE_DIR system property prevent GWC from processing any WMS requests for caching, even when TILED=true is sent and a File BlobStore is explicitly assigned to the layer in the UI?
  2. What might cause GWC to show no request/cache-related DEBUG logs during active map Browse, even when DEBUG is enabled and requests are being served dynamically?
  3. Are there specific GeoServer Cloud configurations (beyond standard UI settings) that might conflict with or override GWC’s tile interception mechanism?

Any guidance on how to enable GWC to intercept and cache in this GEOWEBCACHE_CACHE_DIR-forced environment would be greatly appreciated.

Sorry, I’m not able to help with GeoServer cloud, but have you checked the HTTPS response headers using the browser DevTools, specifically any GeoWebCache-? ones that might indicate a MISS reason?

Peter

And is the layer actually configured as a tiled layer - is it visible under Tile Caching > Tile Layers?

Peter

Hi Peter,

Thanks for replying! Yes, the tile is visible under Tile Layers. I’ve created a File Blobstore, and provided write permissions on that folder. While creating a Blobstore it creates some .bak files and when sending GetMap requests, it is creating a tmp folder and metadata.properties file, which indicates that the folder is writable. But the .properties files shows nothing and is of 0 KB. IGeoserver Cloud I reckon is a bit tricky to deal with. For some reason GWC is not abke to intercept any of the requests, am not sure what I am missing :frowning:

1 Like

@Sayan and what about: