Hello Kinsta Community,
I am currently experiencing a persistent and highly disruptive issue with my Culver menu website that appears to be directly related to how the Kinsta API handles cache invalidation requests. My website dynamically fetches menu data (including prices, seasonal items, and availability) from a backend service, and whenever updates are made, I trigger a cache purge request through the Kinsta API to ensure visitors immediately see the updated content. However, the core problem is that the cache invalidation request intermittently fails to properly clear the server-level cache, resulting in outdated menu data continuing to be served to users even though the API response indicates a successful purge operation. This inconsistency creates confusion for customers who see old prices or unavailable items still displayed on the frontend.
The issue is particularly problematic because the API call to purge the cache returns a successful HTTP status code, and no error messages are logged in my system. From a technical standpoint, everything appears to be functioning correctly: the authentication token is valid, the correct site ID and environment ID are passed in the request, and the endpoint responds with confirmation that the cache purge was triggered. Despite this, when I immediately reload the affected pages, the stale content remains visible for several minutes, sometimes even longer. This suggests that either the purge request is not fully propagating across Kinsta’s caching layers, or there is an internal delay that is not clearly documented in the API behavior.
To isolate the issue, I conducted controlled tests by updating a single menu item (such as changing the price of a ButterBurger combo), then programmatically sending a cache purge request via the Kinsta API. I monitored response headers, including cache-control indicators, and confirmed that the page was still being served from cache despite the purge confirmation. After waiting approximately 5–10 minutes, the new content eventually appeared without any additional action from my side. This behavior suggests that the cache invalidation process may be asynchronous or subject to internal queuing, but the lack of transparency makes it difficult to design a reliable workflow for real-time menu updates.
This becomes especially critical during high-traffic periods when menu changes must reflect instantly, such as limited-time promotions or price adjustments. My application logic assumes that once the Kinsta API confirms a purge request, the new content is immediately available to users. Because this assumption appears unreliable, customers sometimes place orders based on outdated information, which directly affects user trust and operational accuracy. From a development perspective, the unpredictability of the cache purge timing makes it nearly impossible to guarantee data consistency between the backend system and what users see on the frontend.
I have verified that no additional caching layers (such as external CDNs or browser-level caching overrides) are interfering with the process. The only caching mechanism involved is Kinsta’s built-in server-level and edge caching system. I also tested both full-site purge and specific URL purge endpoints via the Kinsta API, and the inconsistency remains the same. The API call itself behaves normally, but the actual content refresh timing does not align with the confirmation response. This leads me to believe that there may be an undocumented delay, propagation window, or rate-limiting mechanism affecting how purge requests are processed internally.
I am seeking clarification from the Kinsta team or community members who may have encountered similar behavior when using the Kinsta API for cache management. Specifically, I would like to understand whether cache invalidation through the API is guaranteed to be immediate, whether there is an expected propagation delay across infrastructure layers, and if there are recommended best practices to ensure real-time content updates for dynamic websites like mine. Any insights into debugging cache headers more effectively, confirming true cache purge completion, or designing a more reliable invalidation workflow would be greatly appreciated. My goal is to ensure that whenever menu data changes, the updated information is reflected instantly and consistently across all user sessions without relying on unpredictable delays. Sorry for long post!