Kirby 3 Panel not updating - server caching or license key issue?

Hi all,

Weird scenario. Working with a client, we had a staging link up for several months (in which they updated all the time no problem) and recently went live with a smooth transition. We tore down / removed the staging site and have updated our license key and all that good stuff on the live site. It’s been working fine and they have been making changes in the panel for a couple weeks since the site went live back in January…

Now we have realized no changes have been updating in the panel for about 1-2 weeks (late February)…

I hopped in to their hosting site (SiteGround) and flushed the server cache. This worked once, I tested by making an update in the panel from the live site and it worked. Once. Ha. Now that is cached, I have to manually go flush the server cache again each time to get each new update / save from the panel…

This all happened out of the blue, or what I can tell, since Chrome recently updated. This never was an issue until just a week ago or so. I don’t think it was anything to do with Kirby or any .htaccess stuff we had in place (haven’t touched these files in quite awhile), so does anyone know how to stop this aggressive caching so the client can make changes?

Thanks for any quick tips!

Note: this all happened after we noticed our license key started saying that it was unregistered, even though it’s been registered and the client has been using the panel fairly since January.

I messaged support about this, so maybe this whole caching thing was a hiccup of a key that went bad somehow? Waiting to hear back, will update as soon as I hear back.

Just another thought in case this sparks any other ideas… thanks!

Just to get this right: Changes made via the Panel are not reflected in the Panel, or are not reflected on the frontend?

Hi @texnixe, thanks for the link…

Based on the 4 tips on the link above:

#1 Trying this php_value opcache.revalidate_freq 0 in the .htaccess file resulted in an error 500 page, so that didn’t work hah (removed this line and the site is running agin)

#2 No panel errors, this isn’t the issue…

#3 Refreshing the page / clearing browser cache isn’t the issue, that is why we went all the way to clearing our server cache. (But doing this, we have to manually clear the server cache each time we make a save in the panel now to see the site update. Not ideal haha)

#4 Didn’t see anything about mod_expires in our .htaccess file… here is what our file looks like:

AddType video/mp4 .mp4

# Kirby .htaccess

# rewrite rules
<IfModule mod_rewrite.c>

# enable awesome urls. i.e.:
# http://yourdomain.com/about-us/team
RewriteEngine on

# make sure to set the RewriteBase correctly
# if you are running the site in a subfolder.
# Otherwise links or the entire site will break.
#
# If your homepage is http://yourdomain.com/mysite
# Set the RewriteBase to:
#
# RewriteBase /mysite

# In some environments it's necessary to
# set the RewriteBase to:
#
# RewriteBase /

RewriteCond %{HTTP_HOST} ^www.hovercraftstudio.com$ [NC]
RewriteRule ^(.*)$ https://hovercraftstudio.com/$1 [R=301,L]

# block files and folders beginning with a dot, such as .git
# except for the .well-known folder, which is used for Let's Encrypt and security.txt
RewriteRule (^|/)\.(?!well-known\/) index.php [L]

# block text files in the content folder from being accessed directly
RewriteRule ^content/(.*)\.(txt|md|mdown)$ index.php [L]

# block all files in the site folder from being accessed directly
# except for requests to plugin assets files
RewriteRule ^site/(.*) index.php [L]

# Enable authentication header
SetEnvIf Authorization "(.*)" HTTP_AUTHORIZATION=$1

# block direct access to kirby and the panel sources
RewriteRule ^kirby/(.*) index.php [L]

# make site links work
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*) index.php [L]

</IfModule>

# compress text file responses
<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE text/javascript
AddOutputFilterByType DEFLATE application/json
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE application/x-javascript
</IfModule>

To rephrase the issue, the client (and I) have been successfully saving changes to the panel, in which would update to the live site with no issues at all since January, 2021.

We have had zero issues with the panel or the site until about 1 week ago, where we noticed no saves in the panel were being reflected…

When we refresh the panel, the saves were lost and reverting back to prior states. Until we flush the server cache, in which we would refresh the panel and see the desired changes come through.

Other weird thing to note, about 1 week ago when this all started happening, our header bar message was saying our license key was unregistered. We registered back in July of 2020. It was working fine, header bar / settings showed the key was registered and again, we have been using this on the live site since January.

When we flush the server cache, our license validates and says it is registered, but after we make a save, it randomly flips back to saying it is unregistered again. Wait for it… hah until we clear the server cache again!

The .license file is correct pointing to the correct domain, key, (my email / I registered this) etc:

{"license":"K3-PRO-...","order": "98d...","email":"howl@something-strange.com","domain":"hovercraftstudio.com","date":"2020-07-01","signature":"0d70..."}

Any other ideas? Haha…

Can’t you disable caching on the server?

I think so, I’ll look into SiteGround’s settings (I’m not too familiar with that stuff).

But then wouldn’t that mean the site would always be loading CSS, JS, and other “cached” files each time the site is loaded without caching them? Before this issue, the site was blazing fast, performance is big for this site. We are trying to understand why this is happening, site has been running fine for nearly 2 months…

Thanks @texnixe

Hey @texnixe,

I went ahead and turned off SiteGround’s “SuperCacher”… the site and panel seem good so far! I clear my browser’s cache too, logged into the panel and made a simple save or two. Site updated fine and the license key says it’s registered :sunglasses: :+1:

I’m not familiar with site hosting / serve caching stuff - does anyone know it this “SuperCacher” is some new add-on? I don’t recall ever seeing this on any other site in the past, maybe this tool / feature is too “super” haha?

Thanks a million @texnixe!

Guess I’m just wondering (typing out loud), now that we disabled this “SuperCacher” thing, do we need to custom cache other files in our .htaccess file so the site will load fast? I mean, it seems fast / fine for now, I’m just curious…

Thanks!

Hey all, bad news, sorry…

Not sure why / how I was able to make changes, but of course the client can’t now…

Client just went in to make changes, here’s what’s happening now that we disabled our “SuperCacher” in SiteGround:

  1. Client (two different editors on the team) both cleared browser cache.
  2. They tried Chrome and Safari, same issues now…
  3. When they login and go to change any field, literally any field. A simple text field, as soon as they type a letter, spacebar etc. the page tries to auto-save, so they are caught in the recursive saving loop, but it isn’t actually saving each change, it keeps reverting back to what was in before the new change in the input field. It’s like a strobe-effect page refresh so they have to close the tab.
  4. They also can’t even log out now, when they hit log out it refreshes the page immediately and says they are logged in.

So here’s where we stand. If we enable “SuperCacher” the site won’t budge, won’t show any changes until you force a cache flush. Disable that thing, and it’s as loose as a goose!

Any tips or tricks will be much appreciated! Thank you all.

This whole things sounds as if the hosting service made any changes and it’s probably worth while to contact their support to find out. After all, if you didn’t make any changes to the site and it worked for two month, then it must be some problem on their side.

1 Like

Thanks @texnixe! Yeah, I already contacted them, haven’t heard back.

If they provide a solution, I’ll update this thread in case anyone else stumbles across this…

1 Like

Hey @texnixe!

SiteGround support got back to us and we have a solution :sunglasses:

And yes, turns out ~1 week ago, SiteGround silently enabled this dynamic caching tool to all users, all sites hosted with SiteGround…

If anyone else runs into this, here what to do:

  1. Keep your server cache enabled (in this case, “SuperCacher” NGINX, blue switch to ‘ON’ mode)
  2. Add this to your .htaccess file at the very top / 1st line:
    Header set Cache-Control "no-cache, private"
  3. Flush your serve cache (Dynamic Cache, 2nd tab in SG “SuperCacher”)
  4. PARTY!

Thanks, hope this may help anyone else running into this!

1 Like

Thank you for this!!! I’ve been tearing my hair out trying to figure this out. This should be included in documentation somewhere on the kirby docs as I imagine this might become an issue on other hosts as well

1 Like

Hey @Alfredo_Gonzalez!

Glad I wasn’t the only one running into this haha, and I’m glad you found this answer helpful already :+1:

@something-strange I’m really glad that you were able to fix this.

@Alfredo_Gonzalez We mention opcache settings in the Panel trouble shooting guide: Panel issues | Kirby but I think it’s a good idea to state more clearly that any form of aggressive caching can cause such issues.

1 Like

Hi @texnixe, I’m having this issue with the license key not saving in the panel. The client is using atof.net as their server. I will input the license key, it reads successful, but once I refresh the page it reverts back to the unregistered version. Any tips? Thank you.

You can put the license key into the config folder manually. But this sounds either like a problem with folder/file permissions or with a server caching issue.